aboutsummaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* src/dedo.go: Remove DB.ReadOnly optionEuAndreh2024-12-302-50/+91
* src/dedo.go: Move type definitions to the beginning of the fileEuAndreh2024-12-301-672/+682
* src/dedo.go: Remove DB.NoGrowSync optionEuAndreh2024-12-301-14/+1
* src/dedo.go: Remove DB.NoSync optionEuAndreh2024-12-302-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). EuAndreh2024-12-302-57/+409
* rm appveyor.ymlEuAndreh2024-11-011-18/+0
* Rename "gkv" -> "dedo"EuAndreh2024-10-309-23/+23
* .gitignore: Include pattern for cgoEuAndreh2024-10-291-0/+1
* mkdeps.sh: Fix typo on varlist nameEuAndreh2024-10-292-2/+2
* Makefile: Simplify time file generation on bench taget dependenciesEuAndreh2024-10-291-2/+1
* Makefile: Prioritize local version when building and linkingEuAndreh2024-10-291-2/+2
* Normalize structure following other projectsEuAndreh2024-10-2650-12443/+12121
* Move code to src/ and tests/EuAndreh2024-10-2532-0/+0
* Merge pull request #748 from Chyroc/add/tx-copy-deprecated•••add tx-copy-deprecatedBen Johnson2018-03-021-1/+3
|\
| * add tx-copy-deprecatedChyroc2018-03-011-1/+3
|/
* Merge pull request #736 from tv42/silly-if•••Remove unnecessary if in batch handlingBen Johnson2017-11-191-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 Virtanen2017-11-171-3/+1
|/
* READMEBen Johnson2017-09-071-0/+19
* Merge pull request #703 from nilslice/patch-1•••Add Ponzu CMS to list of projects using BoltBen Johnson2017-07-171-0/+1
|\
| * Add Ponzu CMS to list of projects using BoltSteve Manuel2017-07-101-0/+1
|/
* Merge pull request #654 from benbjohnson/revert-ca9f208•••Revert "replace unix implementation to be the same as solaris to fix …"Ben Johnson2017-01-311-17/+7
|\
| * Revert "replace unix implementation to be the same as solaris to fix an issue...•••This reverts commit ca9f2088aab4fc9832e587655f0026875bddbf9b. Ben Johnson2017-01-311-17/+7
|/
* Merge pull request #651 from zweizeichen/master•••hexidecimal -> hexadecimalBen Johnson2017-01-301-3/+3
|\
| * hexidecimal -> hexadecimal•••Small spelling fix :)Sebastian2017-01-281-3/+3
|/
* Merge pull request #642 from josharian/fix629•••Ensure that keys generated by testing/quick are uniqueBen Johnson2016-12-281-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 Snyder2016-12-281-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 Johnson2016-12-271-161/+0
* Merge pull request #616 from sinwav/idiomatic•••Fix return statement inside else block at the end of functionBen Johnson2016-12-272-3/+2
|\
| * Fix return statement inside else block at the end of function and gofmt windo...•••Signed-off-by: nick <nicholasjamesrusso@gmail.com> nick2016-10-312-3/+2
* | Merge pull request #625 from vrecan/FcntlFlock•••replace unix implementation to be the same as solaris to fix an issue with glusterfsBen Johnson2016-12-271-7/+17
|\ \
| * | replace unix implementation to be the same as solaris to fix an issue with gl...Ben Aldrich2016-11-161-7/+17
* | | Merge pull request #628 from bep/patch-1•••Fix prefix scan exampleBen Johnson2016-12-271-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 Pedersen2016-12-061-1/+1
* | | | Merge pull request #641 from josharian/cleanup•••Minor cleanup and bug fixesBen Johnson2016-12-234-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 Snyder2016-12-231-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 Snyder2016-12-231-1/+6
| * | | | Precalculate size of pending pgids in freelist.copyall•••This recovers the slight alloc regression in #636. Josh Bleecher Snyder2016-12-231-1/+1
| * | | | Clean up after #636•••freelist.lenall duplicated freelist.count. freelist.copyall and mergepgids docs had typos. Josh Bleecher Snyder2016-12-233-14/+5
|/ / / /
* | | | Merge pull request #636 from josharian/perf•••Don't allocate huge slices to merge pgids in freelist.writeBen Johnson2016-12-213-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 Snyder2016-12-203-20/+49
| |/ / /
* | | | Merge pull request #638 from boltdb/fix-634•••Document multi-process limitation in READMEBen Johnson2016-12-211-0/+3
|\ \ \ \
| * | | | README•••Add limitation about multiple processes opening databases concurrently.Ben Johnson2016-12-211-0/+3
|/ / / /
* | | | Merge pull request #618 from tbe/master•••[ppc64] added missing variableBen Johnson2016-12-201-0/+3
|\ \ \ \ | |/ / / |/| | |
| * | | [ppc64] added missing variable•••The variable `brokenUnaligned` was missing for ppc64.tbe2016-11-041-0/+3
| | |/ | |/|
* | | Merge pull request #626 from timshannon/patch-1•••Added BoltHold and Ironsmith to the projects listBen Johnson2016-11-211-0/+2
|\ \ \ | |_|/ |/| |
| * | Added BoltHold and Ironsmith to the projects listTim Shannon2016-11-201-0/+2
|/ /
* | Merge pull request #621 from jcvernaleo/jcv_readme•••Add btcwallet and dcrwallet to projects using bolt.Ben Johnson2016-11-091-0/+2
|\ \ | |/ |/|
| * Make wording a little less redundant.John C. Vernaleo2016-11-091-2/+2
| * Add btcwallet and dcrwallet to projects using bolt.John C. Vernaleo2016-11-081-0/+2
|/
* Merge pull request #611 from jaredfolkins/master•••enhc: update example for nested bucketsBen Johnson2016-10-281-0/+49
|\