Commit Graph

447 Commits (8fb50d5ee57110936b904a7539d4c5f2bf2359db)

Author SHA1 Message Date
Ben Johnson 2ee5806031 Merge pull request #179 from benbjohnson/freelist-assertion
Add freelist assertion on every free().
2014-05-29 08:17:54 -06:00
Ben Johnson 2eaf8f7ce0 Add freelist assertion on every free().
This commit performs a check on the freelist pages to ensure that a double free can never happen.
2014-05-29 08:02:15 -06:00
Ben Johnson 4e31e9d8f9 Merge pull request #177 from tv42/tx-copy-rollback
Do not attempt manual transaction rollback in Tx.Copy
2014-05-28 13:31:41 -06:00
Ben Johnson 2652bec51e Merge pull request #178 from benbjohnson/optimize-check
Optimize Tx.Check().
2014-05-28 13:10:20 -06:00
Ben Johnson 754966bea0 Optimize Tx.Check().
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.
2014-05-28 12:50:48 -06:00
Tommi Virtanen 394862d541 Do not attempt manual transaction rollback in Tx.Copy
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.
2014-05-28 10:15:49 -07:00
Ben Johnson b9b1bb5b29 Merge pull request #176 from benbjohnson/streaming-check
Add streaming check.
2014-05-28 10:46:21 -06:00
Ben Johnson b789691976 Add streaming check.
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.
2014-05-28 10:31:22 -06:00
Ben Johnson 4508a00891 Merge pull request #175 from benbjohnson/check-loop
Add circular dependency integrity check.
2014-05-28 09:00:19 -06:00
Ben Johnson cefc3c5ebd Add circular dependency integrity check.
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.
2014-05-28 08:02:55 -06:00
Ben Johnson 93338e17ec Merge pull request #174 from benbjohnson/remove-db-check
Remove DB.Check(). Allow read-only Tx.Check().
2014-05-27 12:08:33 -06:00
Ben Johnson 92a9f2e200 Remove DB.Check(). Allow read-only Tx.Check().
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.
2014-05-27 11:31:55 -06:00
Ben Johnson 746dbb3566 Merge branch 'master' of https://github.com/boltdb/bolt 2014-05-27 08:28:06 -06:00
Ben Johnson 271129e40c Merge pull request #172 from benbjohnson/allocation
Remove allocations from read-only buckets.
2014-05-23 13:04:18 -06:00
Ben Johnson bfccbb2cb5 Avoid trashing page cache on Tx.Copy().
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.
2014-05-23 11:40:05 -06:00
Ben Johnson 06b01dbb67 Remove allocations from read-only buckets. 2014-05-23 10:40:09 -06:00
Ben Johnson 7432bc341f Merge pull request #169 from benbjohnson/allocation
Fix freelist allocation direction.
2014-05-21 13:46:12 -06:00
Ben Johnson 6fcc7fdb3d Merge pull request #171 from Shopify/tx_copy
Move Copy/CopyFile from DB to Tx and make sure it copies exactly Tx.Size() bytes
2014-05-21 11:04:08 -06:00
Martin Kobetic 8cd1c60f7c review comments 2014-05-21 16:57:29 +00:00
Martin Kobetic 0eda6c9f15 add tx.Size() and ensure tx.Copy() copies exactly that many bytes 2014-05-21 15:43:11 +00:00
Martin Kobetic 519d65228e move Copy and CopyFile from DB to Tx 2014-05-21 15:08:37 +00:00
Ben Johnson 644a949855 README 2014-05-19 16:16:36 -06:00
Ben Johnson a0963d8f22 Added new projects. 2014-05-19 15:33:52 -06:00
Ben Johnson 12b36fe70c Fix freelist allocate(). 2014-05-19 14:11:32 -06:00
Ben Johnson 782ead0dbf 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.
2014-05-19 12:08:33 -06:00
Ben Johnson cc6302194b Merge pull request #166 from benbjohnson/fill-percent
Add option to adjust fill percentage.
2014-05-15 14:25:29 -06:00
Ben Johnson 6840e4f3dc Change verbiage, fix node test. 2014-05-15 14:21:17 -06:00
Ben Johnson a1873dd6f6 Add option to adjust fill percentage.
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.
2014-05-15 14:04:57 -06:00
Ben Johnson 7b96ede8b6 Merge pull request #165 from benbjohnson/strict-mode
Add strict mode.
2014-05-15 07:59:37 -06:00
Ben Johnson 1f5fb0208b Add strict mode. 2014-05-14 18:08:55 -06:00
Ben Johnson a6d6d964b6 Merge pull request #162 from Shopify/nested_stats2
Recursive/aggregate bucket stats
2014-05-14 12:20:46 -06:00
Ben Johnson e728eb90da Minor stats fixes. 2014-05-14 12:06:31 -06:00
Martin Kobetic 6eaeb31424 address review comments 2014-05-13 17:28:17 +00:00
Ben Johnson 417b0b7bf6 Merge pull request #161 from benbjohnson/work
Add -work flag to 'bolt bench'.
2014-05-12 15:36:10 -06:00
Ben Johnson b5ae095a87 Add -work flag to 'bolt bench'.
This commit adds a 'work' flag to the bolt bench utility so that databases
generated by the bench CLI can be saved for analysis.
2014-05-12 15:34:07 -06:00
Martin Kobetic 51568b52df undo page.go changes 2014-05-12 20:47:03 +00:00
Martin Kobetic 4dbd354a8d add inline stats to cmd 2014-05-12 20:46:01 +00:00
Martin Kobetic 0716cdaec8 tweaks 2014-05-12 19:33:53 +00:00
Martin Kobetic 0dbfa3f08a merge inline branch into leaf branch 2014-05-12 18:22:45 +00:00
Martin Kobetic deffc06a05 fix inline bucket stats 2014-05-12 17:29:16 +00:00
Martin Kobetic c4ad027df7 aggregate bucket stats recursively and add stats to cmd 2014-05-09 20:50:58 +00:00
Martin Kobetic b9899d09ab first part 2014-05-09 20:50:55 +00:00
Ben Johnson 4b56f820bc Merge pull request #160 from benbjohnson/fix-deletion
Fix deletion & dereferencing.
2014-05-09 10:02:13 -06:00
Ben Johnson d1b21e619d Merge branch 'master' of https://github.com/boltdb/bolt into fix-deletion
Conflicts:
	node.go
2014-05-09 09:38:08 -06:00
Ben Johnson a5cb717fc7 Fix deletion reclamation. 2014-05-09 09:26:34 -06:00
Ben Johnson c595561faa Fix node unit tests. 2014-05-09 07:55:01 -06:00
Ben Johnson 5f13a416ce Merge pull request #159 from Shopify/pgid_overflow_checks
add asserts for detecting pgid high watermark overflow
2014-05-09 07:45:19 -06:00
Martin Kobetic 3ffcee742c remove stray file 2014-05-09 13:38:11 +00:00
Martin Kobetic d279ea44ce add asserts for detecting pgid high watermark overflow 2014-05-09 13:35:00 +00:00
Ben Johnson 8da0a92637 Merge pull request #158 from benbjohnson/bolt-info
Add 'bolt info'.
2014-05-08 08:44:41 -06:00