forked from tecbot/gorocksdb
-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge updates from the upstream. #6
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Conflicts: # options.go
According to https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning#column-family-write-buffer-size default for `SetWriteBufferSize` should be `64MB` and not `4MB`
* 'master' of https://github.com/tecbot/gorocksdb: Add pinned slices Add *DB.SetOptions(). Add support for opening a db with TTL support fix GetApproximateSizes fix memory leak in deleting filterpolicy and mergeoperator value Add GetStatisticsString method to Options add wrapper for GetOptionsFromString
DeleteRange DeleteRangeCF
Slice helpers
Correct default value for SetWriteBufferSize in comment
- this option was not exposed but is available in c.h - setting to true ensures a prefix-seek iterator only iterates over values matching the prefix ref: https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes#prefix-seek-api
…plication system with RocksDB WAL
The current PartialMerge function accepts a left and right operand and is called many times by this function: https://github.com/DataDog/gorocksdb/blob/master/merge_operator.go#L100 This means implementors may have to deserialize / unmarshal those byte arrays into comparable objects for merging many times. Proposal: Split the interface. MergeOperator only requires that you implement `FullMerge(key, existingValue []byte, operands [][]byte) ([]byte, bool)`. In addition, you can implement either `PartialMerge(key, leftOperand, rightOperand []byte) ([]byte, bool)` or `PartialMergeMulti(key []byte, operands [][]byte) ([]byte, bool)`. In `gorocksdb_mergeoperator_partial_merge_multi` I do a type switch to see if either PartialMerger or MultiMerger are implemented. This should result in the same functionality for all existing users, but give users the option to implement PartialMergeMulti if it is more efficient for their use case. Tests: I added tests that result in actual merges taking place. By setting a value, compacting, then doing multiple merge operations, the test ensures that both a PartialMerge and a FullMerge occur.
Allow users to implement PartialMergeMulti
Add prefix same as start to read options
Add new functions to api
Add PutLogData support for WriteBatch object
improve documentation of SetWALReconveryMode and WALIterator
…dings-pr Add bindings for lowering CPU and IO priority of thread pools
…-on-armhf Workaround for Linux 32-bit build
merge master changes
…ty-c-bindings-pr Revert "Add bindings for lowering CPU and IO priority of thread pools"
use rocksdb_free
jamesbibby
requested review from
kenny-house,
jmoiron,
pmbauer and
akrylysov
September 30, 2019 20:06
akrylysov
approved these changes
Oct 1, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Btw, can we enable the CI for this repo? .travis.yml
is there, but the integration is not enabled.
jmoiron
approved these changes
Oct 2, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contains the following updates:
tecbot#159 (DeleteRange DeleteRangeCF)
tecbot#163 (Slice helpers)
tecbot#161 (Correct default value for SetWriteBufferSize in comment)
tecbot#172 (Allow users to implement PartialMergeMulti)
tecbot#169 (Add prefix same as start to read options)
tecbot#166 (Add new functions to api)
tecbot#170 (Add PutLogData support for WriteBatch object)
tecbot#164 (improve documentation of SetWALReconveryMode and WALIterator)
tecbot#173 (Workaround for Linux 32-bit build)
tecbot#119 (use rocksdb_free)
This is a combination of some new features and api entries as well as some bug fixes and cleanup of the way memory allocated by rocksdb is freed.