James Mills
803b08949e
Fix setup target in Makefile to install mockery correctly
v0.3.5
2019-10-17 13:59:00 +10:00
James Mills
65e9317d26
Fix glfmt/golint issues
2019-10-14 16:55:47 +10:00
James Mills
c4e12e0019
Fix spelling mistake in README s/Sponser/Sponsor
2019-10-08 22:04:22 +10:00
Steve Mynott
029f901bb7
fix example ( #106 )
2019-09-28 08:08:45 +10:00
James Mills
af8bf54962
Add *.db to ignore future accidental commits of a bitcask db to the repo
2019-09-26 21:09:27 +10:00
James Mills
5ea05fb3c2
Add unit test for opening bad database with corrupted/invalid datafiles ( #105 )
2019-09-26 21:07:13 +10:00
James Mills
5fe19989d4
Update Drone CI test pipeline
2019-09-25 22:15:22 +10:00
Ignacio Hagopian
498ea4069c
codebeat: Code quality improvement ( #103 )
...
* codebeat: improve & bugfix
* codebeat: refactor to improve readability
* bugfix
* bugfix
* internal/data/codec: improve code coverage
2019-09-24 07:19:07 +10:00
James Mills
42c2b810bf
Update README.md
2019-09-22 21:26:52 +10:00
Ignacio Hagopian
16a7feb603
cmd/bitcask: add recovery tool for datafiles ( #102 )
...
* cmd/bitcask: refactor recovery index logic
* cmd/bitcask: first version of datafile recovery tool
* cmd/bitcask: finished recovery datafile tool
* cmd/bitcask: temporary script to test recovery tool
* cmd/bitcask: remove commited binary file
* cmd/bitcask: delete bash test
2019-09-21 18:33:36 -03:00
Ignacio Hagopian
f17187a5c7
Test for data corruption in datafile decoding ( #99 )
...
* internal/data: move codec to own subpackage
* internal/data/codec: check & test nil Entry Decode
* internal/data/decoder: test for short prefix error
* internal/data/codec: test invalid key & value sizes
* internal/data/codec: check & test for truncated data
* interna/data/codec: use assert for tests
2019-09-16 09:29:08 -03:00
Ignacio Hagopian
5be114adab
Makefile setup & key/value coherent datatypes & refactoring ( #98 )
...
* internal/data: comment exported functions
* internal/data: make smaller codec exported api surface
* make key and value sizes serializing bubble up to everything
* Makefile setup & go mod tidy
2019-09-12 10:44:26 -03:00
Ignacio Hagopian
7e0fa151f7
fix test compilation ( #97 )
2019-09-10 06:25:09 +10:00
James Mills
d59d5ad8c2
Improves Test Coverage by covering error cases ( #95 )
...
* Add Unit Test for testing a corrupted config
* Add Unit Test for testing errors from .Stats()
* Refactor Datafile into an interface and add Unit Tests for testing Merge() errors
* Refactor indexer into an interface and add Unit Tests for .Close() errors
* Add Unit Tests for .Delete() errors
* Add Unit Tests for testing Put/Get errors
* Add Unit Test for testing Open errors (bad path for example)
* Refactor out bitcask.writeConfig
* Add more tests for config errors
* Add unit test for options that might error
* Add more test cases for close errors
* Add test case for rotating datafiles
* Fix a possible data race in .Stats()
* Add test case for checksum errors
* Add test case for Sync errors with Put and WithSync enabled
* Refactor and use testify.mock for mocks and generate mocks for all interfaces
* Refactor TestCloseErrors
* Refactored TestDeleteErrors
* Refactored TestGetErrors
* Refactored TestPutErrors
* Refactored TestMergeErrors and fixed a bug with .Fold()
* Add test case for Scan() errors
* Apparently only Scan() can return nil Node()s?
2019-09-09 07:18:38 +10:00
Ignacio Hagopian
13e35b7acc
bitcask: fix data races & use Encode() to serialize config ( #94 )
2019-09-07 09:09:08 +10:00
Ignacio Hagopian
0d3a9213ed
cmd/bitcask: recovery tool ( #92 )
...
* cmd/bitcask: recovery tool
* refactor configuration & use it in recover tool
2019-09-07 07:57:30 +10:00
James Mills
f4fb4972ee
Improves test coverage by adding some missing unit tests ( #90 )
...
* Add Unit Test for testing WithSync() option
* Add Unit Test for testing re-indexing
* Add Unit Test for testing re-indexing with deleted keys (tombstone values)
2019-09-04 22:45:04 +10:00
James Mills
1108840967
Refactor the bitcaskd (redis compatible server) sample to improve code quality ( #88 )
2019-09-04 22:44:33 +10:00
James Mills
003c3abc42
Update to Go 1.13 and update README with new benchmarks ( #89 )
2019-09-04 22:43:53 +10:00
Ignacio Hagopian
a2b5ae2287
fix: check of persisted index values ( #91 )
2019-09-04 22:42:32 +10:00
James Mills
1c7df7f9c7
Removed unused readConfig() ( #87 )
2019-09-04 21:25:31 +10:00
Ignacio Hagopian
93cc1d409f
codec_index: check sizes, new tests for data corruption & refactor ( #84 )
...
* bitcask/codec_index: check key and data sizes
* codec_index: tests for key and data size overflows
* codec_index: simplify internal funcs for unused returns
2019-09-04 12:26:26 +10:00
James Mills
24ab3fbf27
Update README.md
2019-09-04 08:20:44 +10:00
Ignacio Hagopian
8041a4c1e7
Refactor and general tests for codec index ( #83 )
...
* codec_index: unexport const fields
* codec_index: unexport internal functions and doc exported ones
* codec_index: rename func & return errors for corruption
* codec_index: new test for ReadIndex, WriteIndex, and read corruption
* Update internal/codec_index.go
Co-Authored-By: James Mills <1290234+prologic@users.noreply.github.com>
* Update internal/codec_index.go
Co-Authored-By: James Mills <1290234+prologic@users.noreply.github.com>
2019-09-03 08:19:35 +10:00
James Mills
50d3971e86
Fixed a bug with incorrect offsets populating the trie ( #82 )
v0.3.4
2019-09-02 19:44:11 +10:00
Ignacio Hagopian
0338755f8c
fix readme typos ( #81 )
v0.3.3
2019-09-02 10:22:08 +10:00
Ignacio Hagopian
877bf982b1
fix go vet ( #80 )
2019-09-02 10:20:56 +10:00
James Mills
abbbeb8e1d
Replace keydir with ART trie ( #75 )
...
* Replace keydir with ART trie
* Address some review feedback
* Address review feedback (consts)
2019-09-02 08:38:56 +10:00
James Mills
36bc134b22
Fix a bug wit the decoder passing the wrong value for the value's offset into the buffer ( #77 )
2019-08-31 08:35:17 +10:00
James Mills
ea96b8afc0
Update README.md
2019-08-30 13:28:17 +10:00
James Mills
b3d6f734b6
Use an Adaptive Radix Tree ( #71 )
2019-08-30 08:13:24 +10:00
Ignacio Hagopian
55459a5c93
readme: fix stargazers link ( #73 )
2019-08-30 08:05:08 +10:00
James Mills
a20ee3e3d4
Update README.md
2019-08-26 08:45:15 +10:00
James Mills
cd27b84069
Create FUNDING.yml
2019-08-25 12:01:15 +10:00
James Mills
b28353de02
Update README.md
2019-08-18 22:34:14 +10:00
Awn
e8bee948bc
Make optimised scan functionality optional ( #68 )
2019-08-16 10:51:59 +10:00
Xin Zhang
156d29e344
Fix typo ( #65 )
2019-08-14 20:53:08 +10:00
James Mills
c5a565cd82
Adds WithSync(...) option to turn on sync after write durability ( #63 )
...
* Added WithSync(...) option to turn on sync after write durability
* Add Sync/NoSync benchmark variants for Put()
2019-08-12 06:47:46 +10:00
Ignacio Hagopian
8f56cffd86
codec: collapse write and save extra alloc ( #64 )
2019-08-12 06:47:26 +10:00
James Mills
7204a33512
Fix and cleanup some unnecessary internal sub-packages and duplication
2019-08-08 22:28:25 +10:00
James Mills
c7d101d34f
Fixed missing model import for codec with undefined Entry
2019-08-08 20:14:27 +10:00
Awn
af43cfa8f1
Remove merge function ( #60 )
...
* tidy: clean up some leftovers
Fixes #56
Fixes #57
Fixes #58
* api: remove standalone merge function
Fixes #55
2019-08-08 19:51:45 +10:00
James Mills
110c5024ee
Update README.md
2019-08-08 12:17:42 +10:00
Ignacio Hagopian
1f10b4026d
inline hash function to save extra alloc ( #53 )
2019-08-08 09:52:31 +10:00
Ignacio Hagopian
fd179b4a86
custom high-performance encoder implementation ( #52 )
2019-08-08 09:21:46 +10:00
James Mills
755b1879b5
Use []byte byte slices as keys directly avoiding serialing string(s) ( #46 ) ( #51 )
2019-08-08 08:14:48 +10:00
James Mills
d0c913ccee
Revert "Use []byte byte slices as keys directly avoiding serialing string(s) ( #46 )" ( #50 )
...
This reverts commit 3c1808cad3f19c23c6e4aacd4cfbbc4a04da1c08.
v0.3.2
2019-08-08 08:06:38 +10:00
James Mills
6b372d8334
Added export/import sub-commands to backup/resotre a database ( #48 )
2019-08-08 08:00:29 +10:00
James Mills
3c1808cad3
Use []byte byte slices as keys directly avoiding serialing string(s) ( #46 )
2019-08-08 07:59:11 +10:00
James Mills
5d1dd6657a
Fixed handling of missing config.json from cli behavior
2019-08-07 21:47:51 +10:00