Commit Graph

533 Commits (63ec32ef321972daedc5f45f3b799adac9dda110)

Author SHA1 Message Date
Ben Johnson 63ec32ef32 Merge pull request #334 from funkygao/master
fix doc bug and add comment for db.dataref
2015-03-25 09:32:52 -06:00
funkygao 6d043164a9 add comment: db.dataref is readonly 2015-03-25 22:05:58 +08:00
funkygao 20852b29c4 fix comment bug: minium db mmapSize is 1MB instead of 4MB 2015-03-25 22:04:41 +08:00
Ben Johnson 837170ea29 Merge pull request #333 from benbjohnson/document-key-value-safety
Document key/value safety.
2015-03-24 12:28:40 -06:00
Ben Johnson 112f143631 Document key/value safety.
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.
2015-03-24 11:06:28 -06:00
Ben Johnson a9651995e1 Merge pull request #330 from benbjohnson/tx-writer-to
Implement io.WriterTo interface on Tx.
2015-03-22 15:26:13 -06:00
Ben Johnson 4d30731e91 Merge pull request #285 from tv42/batch
Add transaction batching
2015-03-18 10:11:07 -06:00
Ben Johnson 8c6af54aec Implement io.WriterTo interface on Tx.
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().
2015-03-18 08:23:55 -06:00
Ben Johnson 97a71126e7 Merge pull request #328 from baijum/bolt-article
link to Bolt article
2015-03-13 08:47:51 -06:00
Baiju Muthukadan ec2610abdb link to Bolt article 2015-03-12 17:54:06 +05:30
Ben Johnson cf33c9e0ca Merge pull request #318 from baijum/newline-info
new line after page size info print
2015-03-01 06:48:40 -07:00
Ben Johnson 4bed58d78d Merge pull request #319 from skirmish/bolt-arm-fix
Added max alloc size to arm.
2015-03-01 06:46:19 -07:00
Adam Polanski 0e91fffcbe Added max alloc size to arm. 2015-02-28 11:12:16 -05:00
Baiju Muthukadan 4ff9f866c5 new line after page size info print 2015-02-28 09:01:57 +05:30
Ben Johnson fba9b58d1e Merge pull request #317 from benbjohnson/32bit-max-alloc
Update max alloc size on 386 arch
2015-02-27 09:10:07 -07:00
Ben Johnson 349dacfd44 Update max alloc size on 386 arch. 2015-02-27 08:45:05 -07:00
Ben Johnson 1d9315e35b Merge pull request #315 from benbjohnson/max-alloc
Increase max array pointer size to 2GB.
2015-02-26 21:15:20 -07:00
Ben Johnson b9c28b721a Increase max array size to 2GB.
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.
2015-02-26 16:01:58 -07:00
Ben Johnson a7d19d8cd5 Merge pull request #314 from vdemario/fix_typo_readme
Fixed missing parenthesis on the readme
2015-02-23 12:57:44 -07:00
Vitor De Mario d6a67f7cce Fixed missing parenthesis on the readme 2015-02-23 16:35:38 -03:00
Tommi Virtanen adbb1a19c1 Add transaction batching
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.
2015-02-18 12:26:45 -08:00
Ben Johnson 8be3a28087 Merge pull request #309 from everdev/operation-go
added gocode.io to list of projects using bolt
2015-02-17 21:49:48 -07:00
everdev 656f479184 added gocode.io to list of projects using bolt 2015-02-17 17:10:32 -08:00
Ben Johnson c8ecb61df2 Merge pull request #304 from benbjohnson/fix-large-resize
Fix large mmap resize
2015-02-16 16:45:58 -07:00
Ben Johnson e7f5c931e2 Fix large mmap resize.
This commit fixes an issue where large databases were being resized to
larger sizes on every open.
2015-02-16 15:23:48 -07:00
Ben Johnson 75f70a1938 README
Removed reference to LMDB's append mode being unsafe.
2015-02-16 08:09:08 -07:00
Ben Johnson b8dbe1101d Merge pull request #297 from benbjohnson/seq
Persist sequence-only changes
2015-02-02 09:11:18 -07:00
Ben Johnson ac1149a3f5 Persist sequence-only changes.
This commit fixes a bug where only calling NextSequence() on a Bucket does not cause the Bucket to be
peristed. The simple fix is to simply materialize the root node so that the bucket is flushed out
during commit.

Thanks to Matthew Dawson (@MJDSys) for reporting.

https://github.com/boltdb/bolt/issues/296
2015-02-02 08:27:34 -07:00
Ben Johnson b124606822 Merge pull request #294 from benbjohnson/assert
Expand assertion statements
2015-02-02 07:49:02 -07:00
Ben Johnson b4d00c394a Expand assertion statements.
This commit expands calls to _assert() that use variadic arguments. These calls require conversion to interface{} so there
was a large number of calls to Go's internal convT2E() function. In some profiling this was taking over 20% of total runtime.
I don't remember seeing this before Go 1.4 so perhaps something has changed.
2015-01-30 14:15:49 -05:00
Ben Johnson 681a5db8f6 Merge pull request #292 from benbjohnson/fix-size
Fix mmap resize calculation.
2015-01-28 16:58:01 -05:00
Ben Johnson 338d8e78e2 Fix max mmap check for 32-bit arch. 2015-01-28 16:27:06 -05:00
Ben Johnson dacc1873d1 Fix mmap step & max size check.
This commit adds fixes suggested by @tv42 for the mmap step fix in 834b38e:

* Check max size before calculating the new the mmap size.
* Fix mmap step loop to go to 1GB instead of 512MB.
2015-01-28 13:03:30 -05:00
Ben Johnson 4e3fb8d60b Add additional error checks in test suite. 2015-01-28 11:52:08 -05:00
Ben Johnson 834b38e3e7 Fix mmap resize calculation.
This commit fixes an issue where the database would grow whenever it was opened. This was caused by
a recent change that performed a truncation when the database grew. Now there are fixed growth sizes
for the database (1MB, 2MB, 4MB, 8MB, etc) up to 1GB and then the database will grow by 1GB when it
resizes.

See also: 6bb25854a1
2015-01-28 11:29:27 -05:00
Ben Johnson 00c635718f Merge pull request #290 from pmcgrath/deadcode
Removed redundant duplicate line of code
2015-01-22 13:48:36 -07:00
pmcgrath 2110587fdd Removed redundant duplicate line of code 2015-01-22 12:15:40 +00:00
Ben Johnson 359b138d73 Merge pull request #287 from justphil/master
fix 'range scans' example
2015-01-18 07:55:06 -08:00
Ben Johnson 4397537d1d Merge pull request #286 from benbjohnson/trunc-n-sync
Add truncate() and sync() on resize.
2015-01-18 07:49:58 -08:00
Philipp Tarasiewicz e238914be8 fix 'range scans' example
Due to the fact that you want to iterate over all keys that are before or equal to `max` starting from `min` the bytes.Compare() check should look like the commit suggests.
2015-01-18 16:39:15 +01:00
Ben Johnson 6bb25854a1 Add truncate() and sync() on resize.
This commit fixes an issue with ext3/ext4 filesystems where metadata file size is not synced
when resizing a file. It also resizes the entire resize instead of updating the size during
individual page writes.

Thanks to @tv42 for the fix.
2015-01-18 08:24:53 -07:00
Ben Johnson 15a58b04ae Merge pull request #283 from mbertschler/master
Fix syntax error in README stats example
2015-01-15 15:27:39 -07:00
mbertschler 565600c841 Fix syntax error in README stats example 2015-01-15 21:09:34 +01:00
Ben Johnson 1c6f04b302 Merge pull request #282 from benbjohnson/max-mmap-check
Add check for max mmap size.
2015-01-12 08:11:07 -07:00
Ben Johnson 8374d6adc5 Add check for max mmap size.
The max mmap size was previous unchecked which resulted in a panic once
the maximum size was reached. This commit adds a check for the max size
when re-mapping and returns an error if the new map will exceed the size.

Thanks to Tamás Gulácsi for testing out the change on i386.
2015-01-12 08:06:42 -07:00
Ben Johnson a12b668bf7 Merge pull request #281 from tgulacsi/master
Raise maxMapSize from 256MB to 2GB on 386, arm.
2015-01-12 08:02:20 -07:00
Tamás Gulácsi 51dd6b9ae3 Raise maxMapSize from 256MB to 2GB on 386, arm.
Fixes #260 and #277.
2015-01-12 15:01:25 +01:00
Ben Johnson ee986d7220 Merge pull request #279 from benbjohnson/remove-import-export
Remove 'import' and 'export' CLI commands.
2015-01-08 15:08:26 -07:00
Ben Johnson ea7ace2f62 Remove 'import' and 'export' CLI commands.
The import and export commands are a relic of early Bolt when the file
format was not stable. If the file format changed then users could export
their old data and import it into a new database with a new format.

The Bolt DB file format is stable and will not change so this command is no
longer needed.

Thanks to Alejandro Gaviria for pointing this out.
2015-01-08 15:03:55 -07:00
Ben Johnson 33e7a074e2 README
Add a section to the README for "Managing transactions manually".
2014-12-11 13:48:25 -07:00