418 Commits

Author SHA1 Message Date
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
Ben Johnson
50e04a29ae Add 'bolt info'. 2014-05-08 08:43:18 -06:00
Ben Johnson
3d2e092a5d Merge pull request #154 from benbjohnson/inline-buckets
(wip) Add inline bucket support.
2014-05-07 12:09:36 -06:00
Ben Johnson
d52d142275 Minor fixes. 2014-05-07 12:06:22 -06:00
Ben Johnson
e99a24eb44 Improve bucket code documentation. 2014-05-07 11:23:30 -06:00
Ben Johnson
0966dde0d4 Fix bucket free. 2014-05-07 10:37:50 -06:00
Ben Johnson
55e71b0902 Add inline bucket support.
This commit adds support for writing small buckets directly inline to their value in
their parent's leaf node. Previously, subbuckets would simply have a bucket header
stored in their parent bucket which pointed to the root page. This required that
every bucket use at least a single page. This has a high overhead for buckets with
only one or two small items.

Inline buckets checks subbuckets to see if they only have a small amount of data
(about 1kb) and no subbuckets. If these conditions are met then the bucket's root
node is written to a fake page which is simply a pointer to the end of the bucket's
header.

Fixes #124.
2014-05-05 16:39:55 -06:00
Ben Johnson
6133ecb878 Merge pull request #153 from benbjohnson/consolidate
Consolidate code for clarity.
2014-05-05 07:58:53 -06:00
Ben Johnson
c3903d38a1 Consolidate code for clarity.
This commit consolidates some of the smaller files into some of the larger files.
The smaller files cluttered the file tree and made it harder to see the logical
groupings of structs.
2014-05-05 07:56:54 -06:00
Ben Johnson
383ddb246a Merge pull request #152 from benbjohnson/remove-bolt-set
Remove 'bolt set'.
2014-05-05 07:50:00 -06:00
Ben Johnson
c22d2e03bc Remove 'bolt set'.
This commit removes the 'set' command in the Bolt CLI. It proved to not be very useful
so there's no point in keeping the extra code around.
2014-05-05 07:48:45 -06:00
Ben Johnson
f860b35c4e Merge pull request #151 from benbjohnson/remove-c
Remove the c package
2014-05-05 07:44:54 -06:00
Ben Johnson
376ce6858a Remove the c package.
The CGO binding from an external package did not work as well as hoped. The C code
has been moved to the project which uses it.
2014-05-05 07:43:10 -06:00
Ben Johnson
84570ee67e Merge pull request #150 from tv42/typo-seek
Fix Cursor.Seek to say caller should test key==nil not value==nil, explain what value==nil really means these days
2014-05-04 21:46:50 -06:00
Tommi Virtanen
eaa47b6468 Document cursors seeing nested buckets 2014-05-04 18:32:59 -07:00
Tommi Virtanen
458400eb82 Cursor.Seek validity is indicated by key being nil 2014-05-04 18:30:30 -07:00
Ben Johnson
60624c4c19 Merge pull request #148 from benbjohnson/split-spill
Refactor split/spill
2014-05-03 16:21:45 -06:00
Ben Johnson
25fea2fd9f Refactor split/spill. 2014-05-03 16:21:28 -06:00
Ben Johnson
a18135e055 Merge pull request #147 from benbjohnson/stats
Add streaming stats to bolt bench.
2014-05-01 15:13:05 -06:00
Ben Johnson
d48c4a20be Add streaming stats to bolt bench.
This commit adds -stats-interval to the 'bolt bench' utility. By setting this argument
to an interval greater than 0s, the benchmark tool will output stats as streaming JSON.
This data can, in turn, be graphed to understand performance over time.
2014-04-30 12:27:54 -06:00
Ben Johnson
09914968ba Merge pull request #146 from benbjohnson/bench-batch
Add --batch-size to 'bolt bench'
2014-04-30 12:01:56 -06:00
Ben Johnson
2bfb1b3db5 Merge branch 'bench-batch' into moar_bench
Conflicts:
	cmd/bolt/bench.go
2014-04-30 12:00:39 -06:00
Ben Johnson
6854ca415f Remove bolt bench -stat. 2014-04-30 11:55:08 -06:00
Ben Johnson
cabb44e01f Add --batch-size to 'bolt bench'.
This commit adds a --batch-size CLI argument to the 'bolt bench' tool.
This argument will insert into Bolt in smaller batches which is a more
typical use case.

/cc @snormore
2014-04-29 12:36:42 -06:00
Ben Johnson
b6135c2c95 Merge pull request #145 from benbjohnson/tx-cursor
Add Tx.Cursor().
2014-04-29 09:56:10 -06:00
Ben Johnson
0dfb71267c Merge pull request #144 from benbjohnson/copy-key
Copy key on Put() and CreateBucket().
2014-04-29 09:34:38 -06:00
Ben Johnson
e3957cd0de Add Tx.Cursor().
This commit adds the Cursor() function to Tx. This allows iteration on the root bucket
in a similar way to iteration on other buckets.

Fixes #141.
2014-04-29 07:25:14 -06:00
Ben Johnson
e3ed193646 Copy key on Put() and CreateBucket().
This commit makes a copy of the key byte slice before inserting into the database.
This fixes the issue where users may reuse byte buffers which can corrupt the database.

Fixes #143.
2014-04-29 06:54:01 -06:00
Ben Johnson
46d83eb140 Merge pull request #142 from extemporalgenome/Printf-byteslice
Printf's %s and %q already do the right thing with []byte
2014-04-25 16:13:24 -06:00
Kevin Gillette
1879d88c43 Printf's %s and %q do the right thing with []byte; removed string conversion. 2014-04-25 15:38:42 -06:00