| Commit message (Expand) | Author | Age | Files | Lines |
| * | Merge sorted pgids rather than resorting everything | Martin Kobetic | 2015-06-16 | 1 | -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-s | 2015-04-16 | 1 | -3/+3 |
| * | Update max alloc size on 386 arch. | Ben Johnson | 2015-02-27 | 1 | -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 Johnson | 2015-02-26 | 1 | -1/+1 |
| * | Fix i686 build error. | Ben Johnson | 2014-06-18 | 1 | -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 Johnson | 2014-06-10 | 1 | -5/+4 |
| * | Fix freelist allocate(). | Ben Johnson | 2014-05-19 | 1 | -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 Johnson | 2014-05-19 | 1 | -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 Johnson | 2014-04-11 | 1 | -3/+4 |
| * | Add 'bolt pages'. | Ben Johnson | 2014-03-21 | 1 | -0/+8 |
| * | Allow reads of unflushed nodes.•••This commit allows cursors to read updated values from within the
RWTransaction.
| Ben Johnson | 2014-03-01 | 1 | -6/+0 |
| * | API Documentation. | Ben Johnson | 2014-02-13 | 1 | -10/+10 |
| * | Add freelist. | Ben Johnson | 2014-02-10 | 1 | -5/+0 |
| * | Refactor node lookup. | Ben Johnson | 2014-02-07 | 1 | -0/+6 |
| * | Rename sys ☞ buckets. | Ben Johnson | 2014-02-05 | 1 | -3/+3 |
| * | Add RWTransaction.Put(). | Ben Johnson | 2014-02-01 | 1 | -12/+73 |
| * | Add RWTransaction.write(). | Ben Johnson | 2014-01-30 | 1 | -1/+8 |
| * | Fix leaf/branch deserialization. | Ben Johnson | 2014-01-30 | 1 | -0/+10 |
| * | Add freelist page type. | Ben Johnson | 2014-01-29 | 1 | -3/+9 |
| * | Refactor meta.copy() and page.init(). | Ben Johnson | 2014-01-29 | 1 | -23/+7 |
| * | Add tpage.read() test. | Ben Johnson | 2014-01-28 | 1 | -1/+1 |
| * | lpage | Ben Johnson | 2014-01-27 | 1 | -2/+1 |
| * | Intermediate. | Ben Johnson | 2014-01-27 | 1 | -12/+15 |
| * | Initialize transaction/rwtransaction. | Ben Johnson | 2014-01-26 | 1 | -1/+0 |
| * | TODO | Ben Johnson | 2014-01-24 | 1 | -108/+14 |
| * | TODO | Ben Johnson | 2014-01-24 | 1 | -2/+1 |
| * | Intermediate commit. | Ben Johnson | 2014-01-21 | 1 | -7/+6 |
| * | Refactoring to RWCursor, RWTxn, and branch/leaf nodes and pages. | Ben Johnson | 2014-01-17 | 1 | -11/+61 |
| * | Add system buckets. | Ben Johnson | 2014-01-14 | 1 | -1/+1 |
| * | Begin Transaction.Cursor(). | Ben Johnson | 2014-01-13 | 1 | -5/+7 |
| * | Finish open coverage. | Ben Johnson | 2014-01-13 | 1 | -2/+2 |
| * | Initial db.open. | Ben Johnson | 2014-01-11 | 1 | -21/+27 |
| * | DB.Open(), pages, and meta. | Ben Johnson | 2014-01-10 | 1 | -18/+43 |
| * | Move all C code into repo. | Ben Johnson | 2014-01-09 | 1 | -0/+26 |
| * | Basic types. | Ben Johnson | 2014-01-08 | 1 | -0/+44 |