Commit Graph

9 Commits (master)

Author SHA1 Message Date
jason3gb 2c57c950f8 [Fix] disable mmap for current datafile from #239 (#240)
continuous-integration/drone/push Build is passing Details
Fix issues related to #239

Disable mmap reader for current datafile, which only read from the fd.

Co-authored-by: jason3gb <>
Reviewed-on: #240
Reviewed-by: James Mills <>
Reviewed-by: Tai Groot <>
Co-authored-by: jason3gb <>
Co-committed-by: jason3gb <>
2 years ago
biozz 21a824e13e Add key prefix matching to KEYS command (#237)
continuous-integration/drone/push Build is passing Details
Related to #234 and !236.

This is the implementation that was requested in the original issue. I updated KEYS command to be redis-valid and implemented prefix search. There is also a rather interesting test, I could you use some feedback here.

I noticed that it might not be possible to reduce the complexity of the KEYS command. Because even if you use Scan, you will have to store the counter of all found keys before you do WriteBulk of the actual keys.

@prologic here is what you probably had in mind:

s.db.Scan([]byte(prefix), func(key []byte) error {
	return nil

But there is no way to call `conn.WriteArray(n)` with the number of keys until you iterate through all of them, hence the second loop over found keys.

Co-authored-by: Ivan Elfimov <>
Co-authored-by: James Mills <>
Reviewed-on: #237
Reviewed-by: James Mills <>
Co-authored-by: biozz <>
Co-committed-by: biozz <>
2 years ago
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 <>
2 years ago
Bryan Stenson 295301a44c
Add configuration options for FileMode (#183)
* Add configuration options for FileMode

Add two additional configuration values, and their corresponding default values:

* DirFileModeBeforeUmask - Dir FileMode is used on all directories created.  DefaultDirFileModeBeforeUmask is 0700.
* FileFileModeBeforeUmask - File FileMode is used on all files created, except for the "lock" file (managed by the Flock library).  DefaultFileFileModeBeforeUmask is 0600.

When using these bits of configuration, keep in mind these FileMode values are set BEFORE any umask rules are applied.  For example, if the user's umask is 022, setting DirFileFileModeBeforeUmask to 777 will result in directories with FileMode set to 755 (this umask prevents the write bit from being applied to group and world permissions).

* moving defer statements after checking for errors

use os.ModePerm const instead of os.FileMode(777)

* fix spelling/grammar

* skip these tests for Windows as they appear to break - Windows is less POSIX-y than it claims

* ignore "lock" file for default case too -- this was incorrectly passing before including this, as my local dev station has umask 022
3 years ago
shiniao 643e578585
Refactored Save function for config (#179)
* Refactored Save function for config

* Refactored Save function for config
3 years ago
garsue 4006519992
Fix typo in labeler (#172)
* Fix typo in labeler

Maybe just a typo :)

* Update AUTHORS

Co-authored-by: James Mills <>
3 years ago
Victor Mogilin a5f92da438 Commit adds signal handler to improve shutting down the bitcaskd application: (#131)
- server explicitly closes connections
 - server persists index on disk
3 years ago
Alain Gilbert be3fd71ebe Fix loadIndex to be deterministic (#115) 4 years ago
James Mills e543fc38fb
Added AUTHORS file to record contributors beyond the scope of Github metadata (#41) 4 years ago