negoyal
|
82bdc35931
|
Remove redundant check.
|
2021-06-16 10:00:27 -07:00 |
negoyal
|
81202be424
|
Better fix.
|
2021-06-16 01:09:58 -07:00 |
negoyal
|
efba472d9c
|
Fix a heap use after free issue.
|
2021-06-15 18:25:13 -07:00 |
Steve Atherton
|
23d27663c0
|
Merge commit '98e463d642d1e674983842c8b2925981ff849729' into redwood-deltatree2-master
# Conflicts:
# fdbserver/IPager.h
# fdbserver/Knobs.cpp
# fdbserver/Knobs.h
# fdbserver/VersionedBTree.actor.cpp
|
2021-06-09 01:31:16 -07:00 |
Steve Atherton
|
98e463d642
|
Merge pull request #4781 from sfc-gh-ngoyal/redwood_queue_improvements
Redwood queue format refactored to support faster cold start recovery of pager update log.
|
2021-06-09 00:11:57 -07:00 |
negoyal
|
78e1684d30
|
Minor review comments.
|
2021-06-08 22:04:01 -07:00 |
Steve Atherton
|
64429097bf
|
Bump pager and btree format versions because there have been format changes.
|
2021-06-08 18:56:18 -07:00 |
negoyal
|
61252ef575
|
Revert the experimental change.
|
2021-06-08 18:20:20 -07:00 |
Steve Atherton
|
b39d4af91a
|
Redwood KVS wrapper now shares the same error Promise as the Pager, so the FlowLock in the read actors no longer needs to be reference counted.
|
2021-06-08 17:58:38 -07:00 |
Steve Atherton
|
f7554b8fcb
|
Move FlowMutex unit test to FlowTests.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
adcf126bfa
|
Removed commit read FlowLock because it costs too much overhead, will need another way to throttle. Removed readPage() fromCache argument as it is no longer useful.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
293559bb61
|
Moved FlowMutex to genericactors.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
d94929f08d
|
Added FlowMutex, a low overhead replacement for FlowLocks with a budget of 1. Replaced mutex in FIFOQueue::Cursor with FlowMutex to reduce overhead.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
46c4f6fd47
|
Added yields to prevent stack overflows from too many callbacks when queue operations accumulate waiting on IO.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
3af0bea46c
|
Removed or reduced several yields because they are called too often.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
f2904dadf3
|
Reading BTree pages no longer requires boundary records, as they are not needed if the page is already cached.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
a485ae1215
|
Log pagerMemoryOnly in test config.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
b4c446bc8b
|
Remove unused variable.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
345a484ce7
|
Prevent rehashing by reserving cache size limit in cache map.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
f95d592db8
|
Optimized record delta decoding / applying a bit, changed substring order to (value, keySuffix) since value is needed more frequently. Added DeltaTree2 item type requirement to create T from base's cached partial item instead of full record.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
b8af2950c8
|
Remove some leftover Version field remnants, update RedwoodRecordRef comments.
|
2021-06-08 16:58:35 -07:00 |
Steve Atherton
|
7f411934b4
|
Rare simulation-only bug fix. A single-page BTree with too small of a page size and one gigantic value can result in a root page list that is too large to fit in the hardcoded MetaKey size.
|
2021-06-08 16:58:32 -07:00 |
Steve Atherton
|
0c94a25c48
|
Prioritized cache eviction of old page versions and freed pages.
|
2021-06-08 16:55:30 -07:00 |
Steve Atherton
|
6cc7845856
|
Restore non-caching reads on the commit path, probably temporarily, to remove this as a variable before/after the switch to DeltaTree2.
|
2021-06-08 16:55:30 -07:00 |
Steve Atherton
|
96f14a714f
|
Fixed memory leak, DecodeCache reference count was initialized incorrectly. Streamlined perf unit test a bit.
|
2021-06-08 16:55:30 -07:00 |
Steve Atherton
|
fa7a73071f
|
Fixed memory leak, InternalPageSliceUpdates require destruction.
|
2021-06-08 16:55:30 -07:00 |
Steve Atherton
|
9c7ec8d6cd
|
Removed RedwoodRecordRef::version since in the current design all record versions within a single BTree snapshot are the same.
|
2021-06-08 16:55:20 -07:00 |
Steve Atherton
|
4ee27919ad
|
Print size of RedwoodRecordRef in unit test.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
e2c3d2d108
|
Removed redundant calls to Cursor::switchTree() since there are no cases where the it matters if get() references the old tree's value until the cursor is moved.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
a9cf0a2471
|
Removed unnecessary cursor member from InternalPageModifier. Changed BTreePage::tree() methods to return a pointer instead of a reference since >90% of usages want a pointer.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
751bac2271
|
Write path no longer uses non-caching reads because it is no longer necessary to avoid a page copy. Page copies are only done just before an actual change is made.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
8e7a97f495
|
Bug fix: BTreeCursor::init() did not clear path.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
a58ac622ed
|
Bug fix in test data generation for IntIntPair DeltaTree unit test.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
a6f7d37a25
|
Bug fixes related to DeltaTree2::Cursor contract being different from DeltaTree::Cursor.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
8ef516ead2
|
Bug fixes from bad search/replace. DeltaTree2::Cursor now keeps current decoded item as a member instead of calculating it on demand in get().
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
d155482f5f
|
Remove the legacy IVersionedStore / IStoreCursor classes and implementations as they are no longer useful or efficient, respectively. BTreeCursor can be used far more efficiently to access the BTree.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
1d947bff2d
|
Initial pass at getting BTree to compile with DeltaTree2. Does not work since the Cursor contract has changed.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
65cfd31221
|
Added memory-only option for redwood set test.
|
2021-06-08 16:46:09 -07:00 |
Steve Atherton
|
caf4b3c345
|
DeltaTree2 refactor. Nodes no longer contain parent offsets. DecodedCache no longer uses a hash but rather a vector of DecodedNodes, which Cursors reference by vector index. DecodedNodes contain parent node indexes which are populated on-demand, making storage in the serialized form no longer necessary.
|
2021-06-08 16:46:04 -07:00 |
Steve Atherton
|
b0ec76d401
|
Test output improvements.
|
2021-06-08 15:32:54 -07:00 |
Steve Atherton
|
9ab69b5cb1
|
RedwoodRecordRef support for DeltaTree2.
|
2021-06-08 15:32:54 -07:00 |
Steve Atherton
|
b2c7d957e2
|
Added DeltaTree2, which can be shared between updated versions of the same tree, but so far it is 50% slower.
|
2021-06-08 15:32:26 -07:00 |
negoyal
|
a315936633
|
Experimetal change disable remapCleanup after recovery for perf testing.
|
2021-06-07 23:06:15 -07:00 |
negoyal
|
cc94cafe1a
|
Small bugfix in the parallel extent read path.
|
2021-06-07 16:46:41 -07:00 |
negoyal
|
c0c261e4a9
|
Divide the extent read into a vector or parallel disk reads.
|
2021-06-07 16:28:13 -07:00 |
Andrew Noyes
|
98f3428beb
|
Avoid left shift of negative value
|
2021-06-04 09:51:30 -07:00 |
Andrew Noyes
|
58ca93a1ee
|
Avoid casting float unrepresentable as int to int
Apparently it was possible for this value to be unrepresentable as an
int. int64_t seems to be sufficient.
|
2021-06-04 09:49:27 -07:00 |
negoyal
|
d948d442ea
|
Addressing more review comments regarding PromiseStream usage and adding more comments..
|
2021-06-02 10:46:33 -07:00 |
negoyal
|
9d82dd8824
|
Add a trace event to indicate completion of pager recovery.
|
2021-06-01 17:52:28 -07:00 |
negoyal
|
3e31e808ac
|
Revert the debug printfs and cleanup.
|
2021-06-01 09:46:43 -07:00 |