aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | fix `slice bounds out of range`/maxAllocSize bugssasha-s2015-04-164-12/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #366 from benbjohnson/syncBen Johnson2015-05-101-0/+6
|\ \ \ | | |/ | |/| Add DB.Sync()
| * | Add DB.Sync().Ben Johnson2015-05-081-0/+6
|/ / | | | | | | This commit adds DB.Sync() for users who set DB.NoSync to true.
* | Add caveat regarding endianness of data files as suggested by Raphael Geronimi.Ben Johnson2015-05-061-0/+5
| |
* | Merge pull request #363 from benbjohnson/no-truncateBen Johnson2015-05-062-6/+21
|\ \ | | | | | | Add DB.NoTruncate flag.
| * | Add DB.NoGrowSync flag.Ben Johnson2015-05-062-6/+21
|/ / | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the DB.NoGrowSync flag to optionally revert mmap() calls to how they were implemented before the ext3/ext4 fix. When NoGrowSync is true, remapping the data file will not force the file system to resize it immediately. This works for non-ext3/4 file systems. The default value of NoGrowSync is false so it is still safe for ext3/ext4 file systems by default. See also: https://github.com/boltdb/bolt/issues/284
* | Merge pull request #354 from xiang90/cmdBen Johnson2015-04-281-1/+0
|\ \ | | | | | | cmd/bolt: remove duplicate blockProfile flag
| * | cmd/bolt: remove duplicate blockProfile flagXiang Li2015-04-221-1/+0
| | |
* | | Merge pull request #356 from timshannon/masterBen Johnson2015-04-232-2/+5
|\ \ \ | |/ / |/| | Added Freehold to the projects list in README + Transaction Documentation change
| * | Added Freehold to the projects list in README.Tim Shannon2015-04-232-2/+5
|/ / | | | | | | | | | | Added a few lines of documentation to clarify that read-only transactions need to be rolled back and not committed, as per the discussion in issue #344
* | Merge pull request #352 from benbjohnson/cliBen Johnson2015-04-1915-1173/+1609
|\ \ | |/ |/| Refactor CLI
| * Add 'bolt page' command.Ben Johnson2015-04-171-7/+466
| |
| * Add 'bolt dump' command.Ben Johnson2015-04-161-0/+117
| |
| * Add improved CLI documentation.Ben Johnson2015-04-151-4/+123
| |
| * Refactor bolt CLI.Ben Johnson2015-04-1415-1173/+914
|/
* Add --path to bolt bench.Ben Johnson2015-04-122-2/+8
|
* Merge pull request #347 from mike-marcacci/patch-1Ben Johnson2015-04-111-0/+1
|\ | | | | Added InfluxDB to list of projects using bolt
| * Added InfluxDB to list of projects using boltMike Marcacci2015-04-111-0/+1
|/
* Merge pull request #342 from chrislusf/masterBen Johnson2015-03-291-0/+1
|\ | | | | Adding used by Seaweed File System
| * Update README.mdchrislusf2015-03-291-1/+1
| |
| * Update README.mdchrislusf2015-03-291-0/+1
|/
* Merge pull request #340 from DSpeichert/masterBen Johnson2015-03-281-1/+1
|\ | | | | Update README.md: fixed type mismatch
| * Update README.md: fixed type mismatchDaniel Speichert2015-03-281-1/+1
|/
* Merge pull request #336 from boltdb/reclamation-docsBen Johnson2015-03-271-0/+11
|\ | | | | README
| * Add link to page reclamation comment.Ben Johnson2015-03-271-0/+5
| |
| * READMEBen Johnson2015-03-271-0/+6
|/ | | Document use of free pages and page reclamation works.
* Merge pull request #334 from funkygao/masterBen Johnson2015-03-251-2/+2
|\ | | | | fix doc bug and add comment for db.dataref
| * add comment: db.dataref is readonlyfunkygao2015-03-251-1/+1
| |
| * fix comment bug: minium db mmapSize is 1MB instead of 4MBfunkygao2015-03-251-1/+1
| |
* | Merge pull request #333 from benbjohnson/document-key-value-safetyBen Johnson2015-03-243-0/+12
|\ \ | | | | | | Document key/value safety.
| * | Document key/value safety.Ben Johnson2015-03-243-0/+12
|/ / | | | | | | | | | | This commit adds safety documentation to the data accessor functions in Bolt as well as the README. This was documented once in the package level godoc but it's important enough that it should be more clear.
* | Merge pull request #330 from benbjohnson/tx-writer-toBen Johnson2015-03-222-13/+19
|\ \ | |/ |/| Implement io.WriterTo interface on Tx.
| * Implement io.WriterTo interface on Tx.Ben Johnson2015-03-182-13/+19
| | | | | | | | | | | | | | | | This commit moves the functionality in Tx.Copy() to Tx.WriteTo(). This allows Tx to be used as an io.WriterTo which makes it easier to mock. The Tx.Copy() function still exists but it's simply a wrapper around Tx.WriteTo().
* | Merge pull request #285 from tv42/batchBen Johnson2015-03-187-0/+719
|\ \ | |/ |/| Add transaction batching
| * Add transaction batchingTommi Virtanen2015-02-187-0/+719
| | | | | | | | | | | | DB.Batch makes it easy to make lots of small transactions with significantly better performance. Batch combines multiple concurrent Update calls into a single disk transaction, managing errors smartly.
* | Merge pull request #328 from baijum/bolt-articleBen Johnson2015-03-131-1/+1
|\ \ | | | | | | link to Bolt article
| * | link to Bolt articleBaiju Muthukadan2015-03-121-1/+1
|/ /
* | Merge pull request #318 from baijum/newline-infoBen Johnson2015-03-011-1/+1
|\ \ | | | | | | new line after page size info print
| * | new line after page size info printBaiju Muthukadan2015-02-281-1/+1
| | |
* | | Merge pull request #319 from skirmish/bolt-arm-fixBen Johnson2015-03-011-0/+3
|\ \ \ | |/ / |/| | Added max alloc size to arm.
| * | Added max alloc size to arm.Adam Polanski2015-02-281-0/+3
|/ /
* | Merge pull request #317 from benbjohnson/32bit-max-allocBen Johnson2015-02-273-1/+6
|\ \ | | | | | | Update max alloc size on 386 arch
| * | Update max alloc size on 386 arch.Ben Johnson2015-02-273-1/+6
|/ /
* | Merge pull request #315 from benbjohnson/max-allocBen Johnson2015-02-261-1/+1
|\ \ | | | | | | Increase max array pointer size to 2GB.
| * | Increase max array size to 2GB.Ben Johnson2015-02-261-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #314 from vdemario/fix_typo_readmeBen Johnson2015-02-231-1/+1
|\ \ | |/ |/| Fixed missing parenthesis on the readme
| * Fixed missing parenthesis on the readmeVitor De Mario2015-02-231-1/+1
|/
* Merge pull request #309 from everdev/operation-goBen Johnson2015-02-171-4/+4
|\ | | | | added gocode.io to list of projects using bolt
| * added gocode.io to list of projects using bolteverdev2015-02-171-4/+4
|/
* Merge pull request #304 from benbjohnson/fix-large-resizeBen Johnson2015-02-162-2/+63
|\ | | | | Fix large mmap resize