James Mills
9b0daa8a30
Add RangeScan() support ( #160 )
...
Co-authored-by: James Mills <1290234+prologic@users.noreply.github.com >
Co-authored-by: James Mills <prologic@shortcircuit.net.au >
Co-authored-by: Tai Groot <tai@taigrr.com >
Reviewed-on: https://git.mills.io/prologic/bitcask/pulls/160
Co-authored-by: James Mills <james@mills.io >
Co-committed-by: James Mills <james@mills.io >
2021-07-21 02:36:06 +00:00
James Mills
5e4d863ab7
Use package github.com/gofrs/flock as flock implementation. ( #224 )
...
Supercesd #219 after rebasing on master after migrating off Github.
Co-authored-by: Nicolò Santamaria <nicolo.santamaria@protonmail.com >
Co-authored-by: James Mills <prologic@shortcircuit.net.au >
Co-authored-by: Tai Groot <taigrr@noreply@mills.io >
Reviewed-on: https://git.mills.io/prologic/bitcask/pulls/224
Co-authored-by: James Mills <prologic@noreply@mills.io >
Co-committed-by: James Mills <prologic@noreply@mills.io >
2021-07-15 21:33:20 +00:00
90dd53c573
Rename all Go module paths
2021-07-10 17:47:38 +10:00
b98b684bb4
Refactor TTL with a new API PutWithTTL() and reduce memory allocs ( #220 )
2021-07-09 17:21:35 +10:00
Yash Suresh Chandra
5c6ceadac1
Add support for keys with ttl ( #177 )
...
* ttl support first commit
* imports fix
* put api args correction
* put options added
* upgrade method added
* upgrade log added
* v0 to v1 migration script added
* error assertion added
* temp migration dir fix
Co-authored-by: yash <yash.chandra@grabpay.com >
2020-12-21 17:41:43 +10:00
Tanc Dakkota
da3f70a282
fix dataraces ( #142 )
2020-03-13 08:23:34 +10:00
Victor Mogilin
a5f92da438
Commit adds signal handler to improve shutting down the bitcaskd application: ( #131 )
...
- server explicitly closes connections
- server persists index on disk
2020-02-10 19:40:11 +11: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
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
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
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
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
1108840967
Refactor the bitcaskd (redis compatible server) sample to improve code quality ( #88 )
2019-09-04 22:44:33 +10:00
Xin Zhang
156d29e344
Fix typo ( #65 )
2019-08-14 20:53:08 +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 3c1808cad3 .
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
1ba9ca46e3
Rename set command to put and cleanup the command's docs
2019-08-07 21:44:33 +10:00
James Mills
82e26449fa
Added the same functional options to the bitcask CLI and persist options to the db store ( #40 )
2019-08-07 10:23:10 +10:00
James Mills
51bac21c0a
Improves Merge() operation by also pruning old key/value pairs ( #29 )
...
* Added new API Stats() and Prune()
* Improved Merge() logic to also prune old key/values and actually reclaim disk space
* Added backward compat for the old Merge() function
* Refactor indexing of keys to items (hints)
* Remove redundant TestOpenMerge
* Add unit test for Stats()
* Improve TestMerge()
2019-07-27 07:52:25 +10:00
James Mills
34ad78efc0
Add KeYS command to server (bitraftd)
2019-03-21 10:49:53 +10:00
James Mills
01cb269a51
Add EXISTS command to server (bitraftd)
2019-03-21 10:29:18 +10:00
James Mills
1298240f53
Unexport some internal implemtnation details
2019-03-18 17:31:31 +10:00
James Mills
3f1d6635c4
Add prefix scan for keys using a Trie
2019-03-15 23:48:50 +10:00
James Mills
67840ffb57
Call Close() at end of sub-commands
2019-03-14 21:50:41 +10:00
James Mills
52b6c74a21
Fixed compile error in CLI
2019-03-14 21:33:40 +10:00
James Mills
32b782b229
Fixed arg handling in bitcaskd
2019-03-13 21:39:23 +10:00
James Mills
809a14fbdc
Fix usage output of bitcaskd
2019-03-13 21:25:26 +10:00
James Mills
238ff6ab59
Add a simple Redis compatible server daemon (bitcaskd)
2019-03-13 21:19:46 +10:00
James Mills
a42cd20ddf
Initial Commit
2019-03-12 23:56:57 +10:00