Commit Graph

732 Commits (58adb4c087fa9198c529dfa0b685df0cf44ad6c8)

Author SHA1 Message Date
Alexander F Rødseth 58adb4c087 Add SimpleBolt and Algernon 2016-05-04 10:19:01 +02:00
Ben Johnson d97499360d
Merge branch 'cyphar-548-fix-errors-with-unsynced-metadata' 2016-04-24 14:11:19 -06:00
Ben Johnson a5aec31dc3
add additional meta page tests 2016-04-24 14:09:45 -06:00
Ben Johnson 5e55b6cc1e
Merge branch '548-fix-errors-with-unsynced-metadata' of https://github.com/cyphar/boltdb into cyphar-548-fix-errors-with-unsynced-metadata 2016-04-24 13:23:29 -06:00
Ben Johnson e8ca7db0e7
Merge branch 'LK4D4-pool_allocate' 2016-04-22 14:33:50 -06:00
Ben Johnson f5f0f7af77
move page pool to db 2016-04-22 14:24:11 -06:00
Ben Johnson 9145d586f2
Merge branch 'pool_allocate' of https://github.com/LK4D4/bolt into LK4D4-pool_allocate 2016-04-22 14:16:02 -06:00
Aleksa Sarai ef2f3abff7 db: fix recovery from unsynced metadata
Bolt stores the two latest transactions' metadata, but previously did
not recover from validation failures in the latest by using the second
latest. Fix this by correctly handling validation failures in db.go, as
well as returning the metadata with highest txid which is also valid in
DB.meta().

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2016-04-20 08:17:28 +10:00
Ben Johnson 144418e147 Merge pull request #550 from ChrisHines/windows-remove-lock
Delay clearing db.path until just before db.close returns.
2016-04-07 08:34:38 -06:00
Chris Hines 5816124570 Wait to clear db.path until just before db.close returns.
The Windows version of funlock needs the db.path to delete the
corresponding .lock file.
2016-04-07 10:21:00 -04:00
Ben Johnson 831b652a7f Merge pull request #546 from josephspurrier/master
Add GoWebApp as a project that uses Bolt.
2016-03-25 21:18:27 -06:00
Ben Johnson b35bb5db2e Merge pull request #545 from benbjohnson/slice-capacity
Set slice capacity
2016-03-25 21:17:42 -06:00
Joseph Spurrier e90f18ec47 Update README.md
Added GoWebApp as a project that uses Bolt.
2016-03-25 16:25:51 -04:00
Ben Johnson 2b4a0e2894 set slice capacity
This commit sets the capacity on slices returned from
`Bucket.Get()` to match the slice length. Previously
the capacity would be the size of the mmap max size.

This does not cause any backwards compatibility issues,
however, it does allow users to `append()` to the returned
slice since that will cause Go to realloc a new slice on the
heap.

Fixes #544
2016-03-25 10:53:30 -06:00
Ben Johnson c2610ee091 Merge pull request #542 from boltdb/remove-drone-badge
Remove badge
2016-03-23 11:13:08 -06:00
Ben Johnson afb77b930b remove badge
Remove the Drone.IO badge while setting up new test infrastructure.
2016-03-23 11:12:00 -06:00
Ben Johnson 5d3cf80147 Merge pull request #540 from erock2112/patch-1
Add note about Go RFC3339Nano sortability to README
2016-03-22 11:34:05 -06:00
Eric Boren 40cff7a0e5 Add note about Go RFC3339Nano sortability to README
RFC3339 is sortable, but RFC3339Nano is not, because it does not use a fixed number of digits after the decimal.
2016-03-22 13:10:49 -04:00
Ben Johnson 08b033d921 Merge pull request #532 from asdine/project-list
Update README.md
2016-03-22 09:03:09 -06:00
Asdine El Hrychy 8192480115 Merge remote-tracking branch 'boltdb/master' into project-list
# Conflicts:
#	README.md
2016-03-22 15:51:53 +01:00
Ben Johnson c6ba97b89e v1.2.0 2016-03-21 21:43:21 -06:00
Ben Johnson 47b11621fb Merge pull request #537 from crowdriff/master
Adding "lru" to list of projects using Bolt.
2016-03-21 21:41:17 -06:00
Ben Johnson 6204c540b5 Merge pull request #539 from benbjohnson/rebalance-fix
Fix rebalance bug
2016-03-21 21:40:46 -06:00
Ben Johnson c0934840fd fix rebalance bug
This commit fixes a rare issue where a page can become accessible
when it has already been freed. This occurs when the first two
child pages of a parent both have deletions and the first page
has 1 remaining children and the second page has 2 remaining
children. During rebalancing the first page pulls an element from
the second page and then the second page pulls the same element
back from the first. The child page was not being freed properly.

I resolved this issue by removing this part of the rebalancing.
I made this choice for two reasons:

1. Moving a single item between pages has negligible benefit. The
   page will eventually be cleaned up when it reaches zero elements.

2. This is an infrequently executed branch of code which increases
   the likelihood of bugs occurring and it makes it more difficult
   to test properly.

Fixes #348
2016-03-21 09:00:48 -06:00
Ben Johnson 7cb1534948 Merge pull request #538 from benbjohnson/strict-mode-fix
Fix strict mode
2016-03-21 09:00:23 -06:00
Ben Johnson 37e96de68d fix strict mode
This commits fixes a timing bug where `DB.StrictMode` can panic
before the goroutine reading the database can finish. If an error
is found in strict mode then it now finishes reading the entire
database before panicking.
2016-03-21 08:59:39 -06:00
Abhinav Ajgaonkar 7db0126c4b Adding "lru" to list of projects using Bolt. 2016-03-21 00:58:27 -04:00
Ben Johnson 0fd4c0547d Merge pull request #528 from boltdb/windows
Move to separate lock file on windows
2016-03-10 12:43:05 -07:00
Ben Johnson 871c8e43d8 Merge pull request #515 from benbjohnson/meta-write-to
Use tx.meta during Tx.WriteTo()
2016-03-10 12:42:47 -07:00
Ben Johnson 522043366c use tx.meta during Tx.WriteTo()
This commit changes `Tx.WriteTo()` to use the transaction's
in-memory meta page instead of copying from the disk. This is
needed because the transaction uses the size from its meta page
but writes the current meta page on disk which may have allocated
additional pages since the transaction started.

Fixes #513
2016-03-10 12:17:43 -07:00
Asdine El Hrychy 514ec57fe7 Update README.md 2016-03-05 00:22:18 +01:00
Ben Johnson b514920f8f Merge pull request #531 from michelmno/master
new bolt_ppc64.go similar to bolt_ppc64le.go
2016-03-04 11:33:41 -07:00
Michel Normand fb2396f544 new bolt_ppc64.go similar to bolt_ppc64le.go
version 4 of the patch
2016-03-04 08:20:31 +01:00
Ben Johnson a5ebf41fd5 Merge pull request #527 from peteheist/master
Add bolt_ppc.go to compile on 32-bit PPC platforms.
2016-03-02 07:08:50 -07:00
Ben Johnson 220b61e988 move to separate lock file on windows 2016-03-01 08:15:25 -07:00
Pete Heist d062b0e33c Add bolt_ppc.go to compile on 32-bit PPC platforms. 2016-02-29 21:43:51 +01:00
Ben Johnson 9af8da5df3 Merge pull request #525 from MJDSys/appveyor
Add appveyor.yml.
2016-02-28 13:35:43 -07:00
Ben Johnson ae7352740a Merge pull request #524 from abhigupta912/mbuckets
Add mbuckets to list of projects using Bolt
2016-02-28 13:31:34 -07:00
Matthew Dawson 8a783fcb7e Add appveyor.yml.
Add an initial appveryor.yml to test on AppVeyor's Windows CI.
2016-02-27 23:34:11 -05:00
Abhishek Gupta 620e49540e Add mbuckets to list of projects using Bolt 2016-02-27 14:22:38 +05:30
Ben Johnson 6fa1249006 Merge pull request #520 from bobintornado/project-list
Update README.md
2016-02-24 08:47:52 -07:00
Bob Cao add6474f61 Update README.md 2016-02-24 17:01:39 +08:00
Ben Johnson 2f846c3551 Merge pull request #508 from hermanschaaf/patch-1
Add Go Report Card to list of projects using Bolt
2016-02-06 08:59:41 -07:00
Herman Schaaf 187ee33aae Add Go Report Card to list of projects using Bolt 2016-02-06 16:33:50 +08:00
Alexander Morozov e1ffca3629 Use sync.Pool for small pages in db.allocate
Benchmark results:
benchmark                          old ns/op     new ns/op     delta
BenchmarkDBBatchAutomatic-4        2552625       2485200       -2.64%
BenchmarkDBBatchSingle-4           59632698      50757603      -14.88%
BenchmarkDBBatchManual10x100-4     2564789       2452735       -4.37%

benchmark                          old allocs     new allocs     delta
BenchmarkDBBatchAutomatic-4        10199          10202          +0.03%
BenchmarkDBBatchSingle-4           56642          56653          +0.02%
BenchmarkDBBatchManual10x100-4     5986           5995           +0.15%

benchmark                          old bytes     new bytes     delta
BenchmarkDBBatchAutomatic-4        433587        382462        -11.79%
BenchmarkDBBatchSingle-4           32504533      16308931      -49.83%
BenchmarkDBBatchManual10x100-4     1362370       881765        -35.28%

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-28 09:51:51 -08:00
Ben Johnson ee4a0888a9 Merge pull request #492 from boltdb/revert-491-arm64
Revert "Remove erroneous build constraint from arm64"
2016-01-19 17:55:44 -07:00
Ben Johnson ad7482f549 Revert "Remove erroneous build constraint from arm64" 2016-01-19 17:40:29 -07:00
Ben Johnson 209a181292 Merge pull request #491 from crawford/arm64
Remove erroneous build constraint from arm64
2016-01-19 16:37:15 -07:00
Alex Crawford 8fe5ed6b41 Remove erroneous build constraint from arm64
This was preventing ARM64 targets from building.
2016-01-19 15:15:53 -08:00
Ben Johnson 6465994716 Merge pull request #487 from darklynx/add_project
added Request Baskets to projects list
2016-01-14 13:11:52 -08:00