aboutsummaryrefslogtreecommitdiff
path: root/page.go (follow)
Commit message (Expand)AuthorAgeFilesLines
* Merge sorted pgids rather than resorting everythingMartin Kobetic2015-06-161-0/+38
* fix `slice bounds out of range`/maxAllocSize bugs•••when accessing the node data we used to use cast to *[maxAllocSize]byte, which breaks if we try to go across maxAllocSize boundary. This leads to occasional panics. Sample stacktrace: ``` panic: runtime error: slice bounds out of range goroutine 1 [running]: github.com/boltdb/bolt.(*node).write(0xc208010f50, 0xc27452a000) $GOPATH/src/github.com/boltdb/bolt/node.go:228 +0x5a5 github.com/boltdb/bolt.(*node).spill(0xc208010f50, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/node.go:364 +0x506 github.com/boltdb/bolt.(*node).spill(0xc208010700, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/node.go:336 +0x12d github.com/boltdb/bolt.(*node).spill(0xc208010620, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/node.go:336 +0x12d github.com/boltdb/bolt.(*Bucket).spill(0xc22b6ae880, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/bucket.go:535 +0x1c4 github.com/boltdb/bolt.(*Bucket).spill(0xc22b6ae840, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/bucket.go:502 +0xac2 github.com/boltdb/bolt.(*Bucket).spill(0xc22f4e2018, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/bucket.go:502 +0xac2 github.com/boltdb/bolt.(*Tx).Commit(0xc22f4e2000, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/tx.go:150 +0x1ee github.com/boltdb/bolt.(*DB).Update(0xc2080e4000, 0xc24d077508, 0x0, 0x0) $GOPATH/src/github.com/boltdb/bolt/db.go:483 +0x169 ``` It usually happens when working with large (50M/100M) values. One way to reproduce it is to change maxAllocSize in bolt_amd64.go to 70000 and run the tests. TestBucket_Put_Large crashes. sasha-s2015-04-161-3/+3
* Update max alloc size on 386 arch.Ben Johnson2015-02-271-1/+0
* Increase max array size to 2GB.•••This commit changes the maxAllocSize from 256GB to 2GB to handle large values. It was previously 0xFFFFFFF and I tried adding one more "F" but it caused an "array too large" error. I played around with the value some more and found that 0x7FFFFFFF (2GB) is the highest allowed value. This does not affect how the data is stored. It is simply used for type converting pointers to array pointers in order to utilize zero copy from the mmap. Ben Johnson2015-02-261-1/+1
* Fix i686 build error.Ben Johnson2014-06-181-4/+4
* Increase max nodes per page.•••This commit changes the maxNodesPerPage constant so that it is essentially unlimited. Previously, a single large transaction could create more nodes than the mock array could handle. Fixes #188. Ben Johnson2014-06-101-5/+4
* Fix freelist allocate().Ben Johnson2014-05-191-1/+1
* Fix freelist allocation direction.•••This commit fixes the freelist so that it frees from the beginning of the data file instead of the end. It also adds a fast path for pages which can be allocated from the first free pages and it includes read transaction stats. Ben Johnson2014-05-191-0/+6
* Add nested buckets.•••This commit adds the ability to create buckets inside of other buckets. It also replaces the buckets page with a root bucket. Fixes #56. Ben Johnson2014-04-111-3/+4
* Add 'bolt pages'.Ben Johnson2014-03-211-0/+8
* Allow reads of unflushed nodes.•••This commit allows cursors to read updated values from within the RWTransaction. Ben Johnson2014-03-011-6/+0
* API Documentation.Ben Johnson2014-02-131-10/+10
* Add freelist.Ben Johnson2014-02-101-5/+0
* Refactor node lookup.Ben Johnson2014-02-071-0/+6
* Rename sys ☞ buckets.Ben Johnson2014-02-051-3/+3
* Add RWTransaction.Put().Ben Johnson2014-02-011-12/+73
* Add RWTransaction.write().Ben Johnson2014-01-301-1/+8
* Fix leaf/branch deserialization.Ben Johnson2014-01-301-0/+10
* Add freelist page type.Ben Johnson2014-01-291-3/+9
* Refactor meta.copy() and page.init().Ben Johnson2014-01-291-23/+7
* Add tpage.read() test.Ben Johnson2014-01-281-1/+1
* lpageBen Johnson2014-01-271-2/+1
* Intermediate.Ben Johnson2014-01-271-12/+15
* Initialize transaction/rwtransaction.Ben Johnson2014-01-261-1/+0
* TODOBen Johnson2014-01-241-108/+14
* TODOBen Johnson2014-01-241-2/+1
* Intermediate commit.Ben Johnson2014-01-211-7/+6
* Refactoring to RWCursor, RWTxn, and branch/leaf nodes and pages.Ben Johnson2014-01-171-11/+61
* Add system buckets.Ben Johnson2014-01-141-1/+1
* Begin Transaction.Cursor().Ben Johnson2014-01-131-5/+7
* Finish open coverage.Ben Johnson2014-01-131-2/+2
* Initial db.open.Ben Johnson2014-01-111-21/+27
* DB.Open(), pages, and meta.Ben Johnson2014-01-101-18/+43
* Move all C code into repo.Ben Johnson2014-01-091-0/+26
* Basic types.Ben Johnson2014-01-081-0/+44