aboutsummaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* Add DB.NoSync option for bulk loading.•••This commit adds the DB.NoSync flag to skip fsync() calls on each commit. This should only be used for bulk loading as it can corrupt your database in the event of a system failure. Initial tests show it can provide a 2x speed up for sequential inserts. Ben Johnson2014-07-154-4/+21
* Merge pull request #224 from benbjohnson/rebalance-time•••Only update rebalance time if nodes are rebalancedBen Johnson2014-07-151-1/+3
|\
| * Only update rebalance time if nodes are rebalanced.•••This commit changes TxStats.RebalanceTime to only update if there are nodes that have been rebalanced. Previously, the RebalanceTime would include a small amount of time to check if there were nodes to rebalance but this is confusing to users and not terribly helpful. Ben Johnson2014-07-151-1/+3
|/
* Remove unreachable test code.Ben Johnson2014-07-111-2/+0
* Merge pull request #220 from benbjohnson/handle-panic•••Recover from panics appropriately.Ben Johnson2014-07-113-0/+80
|\
| * Recover from panics appropriately.•••This commit adds a defer handler to ensure that transactions are always closed out - even in the event of a panic within user code. It's recommended that applications always fail in the event of a panic but some packages such as net/http will automatically recover which is a problem (IHMO). Ben Johnson2014-07-113-0/+80
|/
* Merge pull request #219 from benbjohnson/freelist-overflow•••Allow freelist overflow.Ben Johnson2014-07-103-17/+29
|\
| * Remove ErrFreelistOverflow error.Ben Johnson2014-07-101-4/+0
| * Allow freelist overflow.•••This commit is a backwards compatible change that allows the freelist to overflow the page.count (uint16). It works by checking if the overflow will occur and marking the page.count as 0xFFFF and setting the actual count to the first element of the freelist. This approach was used because it's backwards compatible and it doesn't make sense to change the data type of all page counts when only the freelist's page can overflow. Fixes #192. Ben Johnson2014-07-102-13/+29
|/
* Merge pull request #215 from benbjohnson/free-cache•••Add freelist cache.Ben Johnson2014-07-105-48/+72
|\
| * Clean up freelist reindex.Ben Johnson2014-07-101-11/+13
| * Merge branch 'master' of https://github.com/boltdb/bolt into free-cacheBen Johnson2014-07-103-3/+10
| |\ | |/ |/|
* | Fix test for path errors.Ben Johnson2014-07-101-1/+1
* | Merge pull request #218 from benbjohnson/fix-win•••Fix Windows mmap sizing.Ben Johnson2014-07-102-2/+3
|\ \
| * | Fix Windows mmap sizing.•••This commit fixes an issue on Windows where the database was doubling when it was re-opened. This occurred because Windows has to truncate the file to the mmap size and the mmap resizing code was doubling the size whenever the DB size was at the next threshold. This has been changed so that the DB size will double only when the DB size is above the next threshold. Ben Johnson2014-07-102-2/+3
|/ /
* | Add 'Intro to BoltDB' link.Ben Johnson2014-07-071-0/+6
| * Add freelist cache.•••This commit adds a cache to the freelist which combines the available free pages and pending free pages in a single map. This was added to improve performance where freelist.isFree() was consuming 70% of CPU time for large freelists. Ben Johnson2014-06-305-45/+67
|/
* Merge pull request #214 from Shopify/fix_stats_sub•••Copy the free pages stats from the receiverBen Johnson2014-06-272-0/+8
|\
| * Copy the free pages stats from the receiverMartin Kobetic2014-06-272-0/+8
|/
* Minor fix.Ben Johnson2014-06-241-1/+1
* Merge pull request #213 from Shopify/stats_sub2•••Drop the *s guard in Stats.Sub()Ben Johnson2014-06-241-11/+3
|\
| * review tweaksMartin Kobetic2014-06-241-3/+3
| * drop the *s guardMartin Kobetic2014-06-241-9/+1
|/
* Merge pull request #212 from Shopify/stats_sub•••Improve Stats.Sub()Ben Johnson2014-06-241-0/+12
|\
| * review tweaksMartin Kobetic2014-06-241-1/+5
| * add some guards for nil pointersMartin Kobetic2014-06-241-2/+9
| * copy receiver stats in Stats.Sub()Martin Kobetic2014-06-241-1/+2
|/
* Merge pull request #210 from benbjohnson/default-options•••Add DefaultOptions variable.Ben Johnson2014-06-225-72/+78
|\
| * Add DefaultOptions variable.•••This commit adds an explicit DefaultOptions variable for additional documentation. Open() can still be passed a nil options which will cause options to be change to the DefaultOptions variable. This change also allows options to be set globally for an application if more than one database is being opened in a process. This commit also moves all errors to errors.go so that the godoc groups them together. Ben Johnson2014-06-225-72/+78
|/
* Merge pull request #208 from benbjohnson/open-timeout•••Add Open() options, flock timeout.Ben Johnson2014-06-2220-132/+172
|\
| * Add Open() options, flock timeout.•••This commit changes Open() to provide an additional Options argument. The options argument currently only has a Timeout which will cause the Open() to return ErrTimeout if a file lock cannot be obtained in time. Fixes #207. Ben Johnson2014-06-2120-132/+172
* | Merge pull request #209 from benbjohnson/next-seq-uint64•••Change Bucket.NextSequence() to return uint64Ben Johnson2014-06-222-35/+6
|\ \ | |/ |/|
| * Change Bucket.NextSequence() to return uint64.•••This commit changes NextSequence() to return a uint64 instead of an int. This also removes the ErrSequenceOverflow error condition since overflowing a uint64 is unlikely. Fixes #39. Ben Johnson2014-06-222-35/+6
|/
* Merge pull request #206 from Shopify/pending_page_stats•••Split the freelist page count stats to free and pendingBen Johnson2014-06-204-6/+20
|\
| * split the freelist page count stats to free and pendingMartin Kobetic2014-06-204-6/+20
|/
* Merge pull request #202 from benbjohnson/refactor-split•••Fix split-merge regression.Ben Johnson2014-06-194-30/+52
|\
| * Fix merge-split regression.•••This commit reverts merge-split and fixes the node.split() to do a multi-page split. This issue caused problems with bulk loading because it would split into a small page and a very large page. The very large page, in turn, would be an arbitrary size so when it was freed later it would be difficult to reuse and would cause serious fragmentation issues. Ben Johnson2014-06-184-30/+52
* | Merge pull request #200 from benbjohnson/fix-i686•••Fix i686 build error.Ben Johnson2014-06-181-4/+4
|\ \ | |/ |/|
| * Fix i686 build error.Ben Johnson2014-06-181-4/+4
* | Merge pull request #201 from Shopify/freelist_stats_cleanup•••Fix up freelist stats naming and add FreeAllocBen Johnson2014-06-183-5/+7
|\ \ | |/ |/|
| * fix up freelist stats naming and add FreeAllocMartin Kobetic2014-06-183-5/+7
|/
* Merge pull request #199 from kardianos/patch-1•••Update README.mdBen Johnson2014-06-181-0/+1
|\
| * Update README.mdDaniel Theophanes2014-06-181-0/+1
|/
* Merge pull request #198 from yosssi/patch-1•••Add "BoltStore" link on README.mdBen Johnson2014-06-181-0/+1
|\
| * Add "BoltStore" link on README.md•••I completed creating [BoltStore](https://github.com/yosssi/boltstore) and added its link on README.md.Keiji Yoshida2014-06-181-0/+1
|/
* Merge pull request #197 from Shopify/freelist_stats•••Add freelist stats to db statsBen Johnson2014-06-174-3/+23
|\
| * drop mergeStats and move freelist stats update to TxMartin Kobetic2014-06-172-12/+14
| * add freelist stats to db statsMartin Kobetic2014-06-174-11/+29
|/
* Document key/value lifecycle.•••This commit adds a caveat to the godoc that explains how key and value byte slices will only be valid for the life of the transaction.Ben Johnson2014-06-161-2/+6
* Merge pull request #193 from benbjohnson/check-freelist-overflow•••Check for freelist overflowBen Johnson2014-06-133-11/+64
|\