| Commit message (Expand) | Author | Age | Files | Lines |
| * | src/dedo.go: Remove DB.ReadOnly option | EuAndreh | 2024-12-30 | 2 | -50/+91 |
| * | src/dedo.go: Move type definitions to the beginning of the file | EuAndreh | 2024-12-30 | 1 | -672/+682 |
| * | src/dedo.go: Remove DB.NoGrowSync option | EuAndreh | 2024-12-30 | 1 | -14/+1 |
| * | src/dedo.go: Remove DB.NoSync option | EuAndreh | 2024-12-30 | 2 | -38/+6 |
| * | tests/dedo.go: Normalize tests•••- hack extra `os.Remove()` calls to avoid leaving temporary files around;
- try using temporary directories that usually live in RAM;
- disable broken tests;
- stop printing to stdout/stderr;
- decrease test constants to make slow tests bearable*.
(*): tests are bearable in RAM (~5s) or on SSDs (~10s). HDDs are still too slow
for them (~2m).
| EuAndreh | 2024-12-30 | 2 | -57/+409 |
| * | rm appveyor.yml | EuAndreh | 2024-11-01 | 1 | -18/+0 |
| * | Rename "gkv" -> "dedo" | EuAndreh | 2024-10-30 | 9 | -23/+23 |
| * | .gitignore: Include pattern for cgo | EuAndreh | 2024-10-29 | 1 | -0/+1 |
| * | mkdeps.sh: Fix typo on varlist name | EuAndreh | 2024-10-29 | 2 | -2/+2 |
| * | Makefile: Simplify time file generation on bench taget dependencies | EuAndreh | 2024-10-29 | 1 | -2/+1 |
| * | Makefile: Prioritize local version when building and linking | EuAndreh | 2024-10-29 | 1 | -2/+2 |
| * | Normalize structure following other projects | EuAndreh | 2024-10-26 | 50 | -12443/+12121 |
| * | Move code to src/ and tests/ | EuAndreh | 2024-10-25 | 32 | -0/+0 |
| * | Merge pull request #748 from Chyroc/add/tx-copy-deprecated•••add tx-copy-deprecated | Ben Johnson | 2018-03-02 | 1 | -1/+3 |
| |\ |
|
| | * | add tx-copy-deprecated | Chyroc | 2018-03-01 | 1 | -1/+3 |
| |/ |
|
| * | Merge pull request #736 from tv42/silly-if•••Remove unnecessary if in batch handling | Ben Johnson | 2017-11-19 | 1 | -3/+1 |
| |\ |
|
| | * | Remove unnecessary if in batch handling•••This is safe, as the only place that creates call values always
explicitly sets err. It's a leftover from an earlier iteration of the
code.
| Tommi Virtanen | 2017-11-17 | 1 | -3/+1 |
| |/ |
|
| * | README | Ben Johnson | 2017-09-07 | 1 | -0/+19 |
| * | Merge pull request #703 from nilslice/patch-1•••Add Ponzu CMS to list of projects using Bolt | Ben Johnson | 2017-07-17 | 1 | -0/+1 |
| |\ |
|
| | * | Add Ponzu CMS to list of projects using Bolt | Steve Manuel | 2017-07-10 | 1 | -0/+1 |
| |/ |
|
| * | Merge pull request #654 from benbjohnson/revert-ca9f208•••Revert "replace unix implementation to be the same as solaris to fix …" | Ben Johnson | 2017-01-31 | 1 | -17/+7 |
| |\ |
|
| | * | Revert "replace unix implementation to be the same as solaris to fix an issue...•••This reverts commit ca9f2088aab4fc9832e587655f0026875bddbf9b.
| Ben Johnson | 2017-01-31 | 1 | -17/+7 |
| |/ |
|
| * | Merge pull request #651 from zweizeichen/master•••hexidecimal -> hexadecimal | Ben Johnson | 2017-01-30 | 1 | -3/+3 |
| |\ |
|
| | * | hexidecimal -> hexadecimal•••Small spelling fix :) | Sebastian | 2017-01-28 | 1 | -3/+3 |
| |/ |
|
| * | Merge pull request #642 from josharian/fix629•••Ensure that keys generated by testing/quick are unique | Ben Johnson | 2016-12-28 | 1 | -1/+9 |
| |\ |
|
| | * | Ensure that keys generated by testing/quick are unique•••Quick seed 21691 used to generate duplicate keys,
which caused some Puts of values to overwrite other values,
causing spurious test failures.
Fixes #629.
| Josh Bleecher Snyder | 2016-12-28 | 1 | -1/+9 |
| |/ |
|
| * | Clean up timeout tests.•••The new FCTNL locking does not support multiple locks from the
same process which makes those tests fail. The lock tests have
been removed.
| Ben Johnson | 2016-12-27 | 1 | -161/+0 |
| * | Merge pull request #616 from sinwav/idiomatic•••Fix return statement inside else block at the end of function | Ben Johnson | 2016-12-27 | 2 | -3/+2 |
| |\ |
|
| | * | Fix return statement inside else block at the end of function and gofmt windo...•••Signed-off-by: nick <nicholasjamesrusso@gmail.com>
| nick | 2016-10-31 | 2 | -3/+2 |
| * | | Merge pull request #625 from vrecan/FcntlFlock•••replace unix implementation to be the same as solaris to fix an issue with glusterfs | Ben Johnson | 2016-12-27 | 1 | -7/+17 |
| |\ \ |
|
| | * | | replace unix implementation to be the same as solaris to fix an issue with gl... | Ben Aldrich | 2016-11-16 | 1 | -7/+17 |
| * | | | Merge pull request #628 from bep/patch-1•••Fix prefix scan example | Ben Johnson | 2016-12-27 | 1 | -1/+1 |
| |\ \ \ |
|
| | * | | | Fix prefix scan example•••The example is correct in isolation, but if people just copy the loop, it will go into infinite loop when given an empty byte slice. | Bjørn Erik Pedersen | 2016-12-06 | 1 | -1/+1 |
| * | | | | Merge pull request #641 from josharian/cleanup•••Minor cleanup and bug fixes | Ben Johnson | 2016-12-23 | 4 | -17/+16 |
| |\ \ \ \ |
|
| | * | | | | Allow GC to reclaim completed transactions•••The existing append-based implementation left a hanging reference to
the last tx.
For example, if db.txs was:
[]*Tx{0x1, 0x2, 0x3, 0x4, 0x5}
and we removed the second element, db.txs would now be:
[]*Tx{0x1, 0x3, 0x4, 0x5, 0x5}[:4]
The garbage collector cannot reclaim anything anywhere in a slice,
even pointers between its len and cap, because the len can always
be extended up to the cap.
This hanging reference to the Tx could last indefinitely,
and since the Tx has a reference to user-provided functions,
which could be closures, this bug could prevent arbitrary
amounts of user garbage from being collected.
Since db.txs is unordered anyway, switch to a simpler--and O(1) instead
of O(n)--implementation. Swap the last element into the spot to be
deleted, nil out the original last element, and shrink the slice.
| Josh Bleecher Snyder | 2016-12-23 | 1 | -1/+4 |
| | * | | | | Fix freelist.size calculation for large freelists•••freelist.size did not account for the extra
fake freelist item used to hold the number of
elements when the freelist is large.
| Josh Bleecher Snyder | 2016-12-23 | 1 | -1/+6 |
| | * | | | | Precalculate size of pending pgids in freelist.copyall•••This recovers the slight alloc regression in #636.
| Josh Bleecher Snyder | 2016-12-23 | 1 | -1/+1 |
| | * | | | | Clean up after #636•••freelist.lenall duplicated freelist.count.
freelist.copyall and mergepgids docs had typos.
| Josh Bleecher Snyder | 2016-12-23 | 3 | -14/+5 |
| |/ / / / |
|
| * | | | | Merge pull request #636 from josharian/perf•••Don't allocate huge slices to merge pgids in freelist.write | Ben Johnson | 2016-12-21 | 3 | -20/+49 |
| |\ \ \ \ |
|
| | * | | | | Don't allocate huge slices to merge pgids in freelist.write•••Using a large (50gb) database with a read-write-delete heavy load,
nearly 100% of allocated space came from freelists.
1/3 came from freelist.release, 1/3 from freelist.write,
and 1/3 came from tx.allocate to make space for freelist.write.
In the case of freelist.write, the newly allocated giant slice gets
copied to the space prepared by tx.allocate and then discarded.
To avoid this, add func mergepgids that accepts a destination slice,
and use it in freelist.write.
This has a mild negative impact on the existing benchmarks,
but cuts allocated space in my real world db by over 30%.
name old time/op new time/op delta
_FreelistRelease10K-8 18.7µs ±10% 18.2µs ± 4% ~ (p=0.548 n=5+5)
_FreelistRelease100K-8 233µs ± 5% 258µs ±20% ~ (p=0.151 n=5+5)
_FreelistRelease1000K-8 3.34ms ± 8% 3.13ms ± 8% ~ (p=0.151 n=5+5)
_FreelistRelease10000K-8 32.3ms ± 1% 32.2ms ± 7% ~ (p=0.690 n=5+5)
DBBatchAutomatic-8 2.18ms ± 3% 2.19ms ± 4% ~ (p=0.421 n=5+5)
DBBatchSingle-8 140ms ± 6% 140ms ± 4% ~ (p=0.841 n=5+5)
DBBatchManual10x100-8 4.41ms ± 2% 4.37ms ± 3% ~ (p=0.548 n=5+5)
name old alloc/op new alloc/op delta
_FreelistRelease10K-8 82.5kB ± 0% 82.5kB ± 0% ~ (all samples are equal)
_FreelistRelease100K-8 805kB ± 0% 805kB ± 0% ~ (all samples are equal)
_FreelistRelease1000K-8 8.05MB ± 0% 8.05MB ± 0% ~ (all samples are equal)
_FreelistRelease10000K-8 80.4MB ± 0% 80.4MB ± 0% ~ (p=1.000 n=5+5)
DBBatchAutomatic-8 384kB ± 0% 384kB ± 0% ~ (p=0.095 n=5+5)
DBBatchSingle-8 17.2MB ± 1% 17.2MB ± 1% ~ (p=0.310 n=5+5)
DBBatchManual10x100-8 908kB ± 0% 902kB ± 1% ~ (p=0.730 n=4+5)
name old allocs/op new allocs/op delta
_FreelistRelease10K-8 5.00 ± 0% 5.00 ± 0% ~ (all samples are equal)
_FreelistRelease100K-8 5.00 ± 0% 5.00 ± 0% ~ (all samples are equal)
_FreelistRelease1000K-8 5.00 ± 0% 5.00 ± 0% ~ (all samples are equal)
_FreelistRelease10000K-8 5.00 ± 0% 5.00 ± 0% ~ (all samples are equal)
DBBatchAutomatic-8 10.2k ± 0% 10.2k ± 0% +0.07% (p=0.032 n=5+5)
DBBatchSingle-8 58.6k ± 0% 59.6k ± 0% +1.70% (p=0.008 n=5+5)
DBBatchManual10x100-8 6.02k ± 0% 6.03k ± 0% +0.17% (p=0.029 n=4+4) | Josh Bleecher Snyder | 2016-12-20 | 3 | -20/+49 |
| | |/ / / |
|
| * | | | | Merge pull request #638 from boltdb/fix-634•••Document multi-process limitation in README | Ben Johnson | 2016-12-21 | 1 | -0/+3 |
| |\ \ \ \ |
|
| | * | | | | README•••Add limitation about multiple processes opening databases concurrently. | Ben Johnson | 2016-12-21 | 1 | -0/+3 |
| |/ / / / |
|
| * | | | | Merge pull request #618 from tbe/master•••[ppc64] added missing variable | Ben Johnson | 2016-12-20 | 1 | -0/+3 |
| |\ \ \ \
| |/ / /
|/| | | |
|
| | * | | | [ppc64] added missing variable•••The variable `brokenUnaligned` was missing for ppc64. | tbe | 2016-11-04 | 1 | -0/+3 |
| | | |/
| |/| |
|
| * | | | Merge pull request #626 from timshannon/patch-1•••Added BoltHold and Ironsmith to the projects list | Ben Johnson | 2016-11-21 | 1 | -0/+2 |
| |\ \ \
| |_|/
|/| | |
|
| | * | | Added BoltHold and Ironsmith to the projects list | Tim Shannon | 2016-11-20 | 1 | -0/+2 |
| |/ / |
|
| * | | Merge pull request #621 from jcvernaleo/jcv_readme•••Add btcwallet and dcrwallet to projects using bolt. | Ben Johnson | 2016-11-09 | 1 | -0/+2 |
| |\ \
| |/
|/| |
|
| | * | Make wording a little less redundant. | John C. Vernaleo | 2016-11-09 | 1 | -2/+2 |
| | * | Add btcwallet and dcrwallet to projects using bolt. | John C. Vernaleo | 2016-11-08 | 1 | -0/+2 |
| |/ |
|
| * | Merge pull request #611 from jaredfolkins/master•••enhc: update example for nested buckets | Ben Johnson | 2016-10-28 | 1 | -0/+49 |
| |\ |
|