Skip to content
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

Update Redwood #2996

Merged
merged 22 commits into from
Apr 26, 2020
Merged

Update Redwood #2996

merged 22 commits into from
Apr 26, 2020

Conversation

satherton
Copy link
Contributor

DeltaTree now has large/small mode, large KV pairs are no longer chunked into multiple RedwoodRecords, instead oversized pages with large DeltaTrees are used. RedwoodRecord refactored to remove chunking fields and logic, delta format refactored to be simpler and faster, and version is encoded as a delta independent of key. Page building now uses a fill factor.

Steve Atherton added 18 commits April 1, 2020 02:41
…eeks using a pool of cursors with different mirrors to test the speed of having to decode DeltaTree nodes much more often.
…rsor and InternalCursor updated to be correct (but not optimal) for new record definition. DeltaTree::seek* refactored to support more seek types and with minor code duplication. Lots of debug output improvements. Refactored how bulk pages are written and introduced fill factor percentage (though since internal pages are not yet incrementally modified this is temporarily worse for those).
…reached was not correct in a couple of ways.
…sing variable length integers with extension bits. Instead, two (recently available) header bits now indicate which of four struct definitions the Delta is using. The resulting code is a bit repetitive but also easier to read and 15% faster in the RedwoodRecord Delta speed test vs the old version.
…he version field scheme. Simplified it to select between different fixed size native integer formats.
…of unpredictability in node overhead sizes which could lead to serializing a tree that doesn't fit into its destination page buffer. WritePages() now skips the prefix common to all records in the input set when calling deltaSize() to estimate resulting DeltaTree serialized sizes.
…mmitSubtree() which should no longer be possible due to recent changes. This is mainly to test assumptions being made in the commitSubtree() refactor in progress. Set simulation to always choose Redwood, will revert for PR.
@ajbeamon
Copy link
Contributor

@fdb-build test this please

@etschannen etschannen self-assigned this Apr 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants