aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * Fix last element seek.Ben Johnson2014-06-091-7/+42
|/ | | | | | | | | | | | | This commit fixes a bug with seeks where seeking to a key between the end of a page and the beginning of the next page causes it to return nil. This was fixed by calling Cursor.next() when the cursor ends up between pages. This also changes Cursor.Next() so that calling Next() at the end of a bucket leaves the cursor at the end instead of zeroing out the stack. Fixes #186. /cc @PreetamJinka
* Merge pull request #185 from benbjohnson/fix-bulk-deleteBen Johnson2014-06-062-1/+45
|\ | | | | Fix double free in merge-left rebalance.
| * Fix double free in merge-left rebalance.Ben Johnson2014-06-062-1/+45
|/ | | | | | | | | This commit fixes a bug where deletions that caused merge-left rebalances were updating the parent node which caused a node to "reappear" even after it had been deleted. This was fixed in merge-right rebalances a while ago but merge-left is less frequent so it was missed until now. Many thanks to Jordan Sherer (@jsherer) for finding and reporting the bug.
* Merge pull request #183 from benbjohnson/copy-fallbackBen Johnson2014-06-051-4/+9
|\ | | | | Add fallback for O_DIRECT in Tx.Copy().
| * Add fallback for O_DIRECT in Tx.Copy().Ben Johnson2014-06-051-4/+9
|/ | | | | This commit adds the ability for Bolt to fallback to using a regular file open if Tx.Copy() errors while opening with O_DIRECT. This only affects Linux.
* Merge pull request #181 from benbjohnson/split-mergeBen Johnson2014-06-034-66/+179
|\ | | | | Allow split nodes to be merged with the next node.
| * Fix merge-split spill issues.Ben Johnson2014-06-035-25/+74
| |
| * Allow split nodes to be merged with the next node.Ben Johnson2014-06-023-51/+115
|/ | | | | | | | | This commit changes the node.split() functionality to check if the next node has available space and, if so, it will merge the newly split keys into the next node. Previously, keys could be continually put into the left side of a split causing that first half to split off small right side nodes. This was especially problematic with databases with a high fill percent.
* Add ipxed to README.Ben Johnson2014-06-021-0/+1
|
* Add event-shuttle to README.Ben Johnson2014-06-021-0/+1
|
* Merge pull request #180 from yosssi/fix-example-bucket-putBen Johnson2014-06-021-1/+1
|\ | | | | Fix `ExampleBucket_Put` to use `db.View` instead of `db.Update`.
| * Fix `ExampleBucket_Put` to use `db.View` instead of `db.Update`.yosssi2014-05-311-1/+1
|/
* Merge pull request #179 from benbjohnson/freelist-assertionBen Johnson2014-05-293-51/+66
|\ | | | | Add freelist assertion on every free().
| * Add freelist assertion on every free().Ben Johnson2014-05-293-51/+66
|/ | | | This commit performs a check on the freelist pages to ensure that a double free can never happen.
* Merge pull request #177 from tv42/tx-copy-rollbackBen Johnson2014-05-282-3/+51
|\ | | | | Do not attempt manual transaction rollback in Tx.Copy
| * Do not attempt manual transaction rollback in Tx.CopyTommi Virtanen2014-05-282-3/+51
| | | | | | | | | | | | | | The typical use these days is with a managed transaction, via db.View. The first case (error when re-opening database file) is not tested; it is harder to instrument, and I have other plans for it.
* | Merge pull request #178 from benbjohnson/optimize-checkBen Johnson2014-05-283-14/+15
|\ \ | |/ |/| Optimize Tx.Check().
| * Optimize Tx.Check().Ben Johnson2014-05-283-14/+15
| | | | | | | | This commit removes several memory allocations occurring on every page and also caches the freelist map used when iterating over the pages. This results in significantly better performance.
* | Merge pull request #176 from benbjohnson/streaming-checkBen Johnson2014-05-285-62/+46
|\| | | | | Add streaming check.
| * Add streaming check.Ben Johnson2014-05-285-62/+46
|/ | | | | This commit changes Tx.Check() to return a channel through which check errors are returned. This allows errors to be found before checking the entire data file.
* Merge pull request #175 from benbjohnson/check-loopBen Johnson2014-05-281-0/+1
|\ | | | | Add circular dependency integrity check.
| * Add circular dependency integrity check.Ben Johnson2014-05-281-0/+1
|/ | | | | | This commit adds a check to prevent circular dependencies in branch nodes. If a circular dependency occurs then a panic will be called and the commit will be prevented. This only works for a single branch level and will not recursively search the tree.
* Merge pull request #174 from benbjohnson/remove-db-checkBen Johnson2014-05-274-20/+20
|\ | | | | Remove DB.Check(). Allow read-only Tx.Check().
| * Remove DB.Check(). Allow read-only Tx.Check().Ben Johnson2014-05-274-20/+20
|/ | | | | | | This commit removes the DB.Check() function and instead makes the user decide whether a transaction should be writable or read-only. Tx.Check() is not safe to use concurrently on a read-only transaction, however, it significantly improves the performance of it.
* Merge branch 'master' of https://github.com/boltdb/boltBen Johnson2014-05-273-7/+101
|\
| * Merge pull request #172 from benbjohnson/allocationBen Johnson2014-05-233-7/+101
| |\ | | | | | | Remove allocations from read-only buckets.
| | * Remove allocations from read-only buckets.Ben Johnson2014-05-233-7/+101
| | |
* | | Avoid trashing page cache on Tx.Copy().Ben Johnson2014-05-233-2/+8
|/ / | | | | | | | | This commit change the database copy to use O_DIRECT so that the Linux page cache is not trashed during a backup. This is only available on Linux.
* | Merge pull request #169 from benbjohnson/allocationBen Johnson2014-05-219-56/+78
|\| | | | | Fix freelist allocation direction.
| * Fix freelist allocate().Ben Johnson2014-05-195-12/+16
| |
| * Fix freelist allocation direction.Ben Johnson2014-05-197-47/+65
| | | | | | | | | | | | 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.
* | Merge pull request #171 from Shopify/tx_copyBen Johnson2014-05-214-119/+116
|\ \ | | | | | | Move Copy/CopyFile from DB to Tx and make sure it copies exactly Tx.Size() bytes
| * | review commentsMartin Kobetic2014-05-211-2/+1
| | |
| * | add tx.Size() and ensure tx.Copy() copies exactly that many bytesMartin Kobetic2014-05-211-1/+7
| | |
| * | move Copy and CopyFile from DB to TxMartin Kobetic2014-05-214-119/+111
|/ /
* | READMEBen Johnson2014-05-191-0/+1
| |
* | Added new projects.Ben Johnson2014-05-191-1/+7
|/
* Merge pull request #166 from benbjohnson/fill-percentBen Johnson2014-05-155-7/+32
|\ | | | | Add option to adjust fill percentage.
| * Change verbiage, fix node test.Ben Johnson2014-05-152-6/+6
| |
| * Add option to adjust fill percentage.Ben Johnson2014-05-154-3/+28
|/ | | | | | | | | | This commit adds the ability to adjust the fill percentage for splitting nodes. This works by setting a threshold that is a percentage of a total page size. When that threshold is crossed during a split then a new node is created. This is primarily beneficial for append-only workloads. Fixes #163.
* Merge pull request #165 from benbjohnson/strict-modeBen Johnson2014-05-153-63/+134
|\ | | | | Add strict mode.
| * Add strict mode.Ben Johnson2014-05-143-63/+134
|/
* Merge pull request #162 from Shopify/nested_stats2Ben Johnson2014-05-145-48/+395
|\ | | | | Recursive/aggregate bucket stats
| * Minor stats fixes.Ben Johnson2014-05-142-12/+42
| |
| * address review commentsMartin Kobetic2014-05-133-16/+70
| |
| * undo page.go changesMartin Kobetic2014-05-121-2/+2
| |
| * add inline stats to cmdMartin Kobetic2014-05-121-0/+8
| |
| * tweaksMartin Kobetic2014-05-122-9/+15
| |
| * merge inline branch into leaf branchMartin Kobetic2014-05-122-23/+54
| |
| * fix inline bucket statsMartin Kobetic2014-05-122-51/+83
| |