Steve Atherton
8f844437da
Avoid unused variable warning when debug output is not on.
2022-03-07 23:12:32 -08:00
Steve Atherton
9f690d5bd5
Added StringRef::same() which checks data pointers and lengths for match. Fixed a false negative (but not a bug) in boundariesNormal() and used same() to avoid string comparisons.
2022-03-07 22:44:24 -08:00
Steve Atherton
35df00eba2
Re-enable simulation-only boundary verification.
2022-03-07 22:31:29 -08:00
Steve Atherton
55c98a4287
Large refactor of redwood debug output to improve context and readability.
2022-03-07 22:30:20 -08:00
Steve Atherton
11f25bc08f
Initialize decode boundary verifier to nullptr for restart tests, also disable check for now as the feature is not finished.
2022-03-04 17:20:31 -08:00
Steve Atherton
9f1d4580e4
Added simulation-only verification of DeltaTree initialization boundaries between writes and reads over time.
2022-03-01 23:46:38 -08:00
Steve Atherton
ee5030d06c
Fixed memory "leak" where child node update tracker entries for freed internal pages were not removed so the map would just grow.
2022-02-28 00:16:10 -08:00
Steve Atherton
398374c7d7
Rename cacheSizeBytes to pageCacheBytes to match other tests.
2022-02-27 00:36:23 -08:00
Steve Atherton
73a81a86da
Added Redwood metrics printing during set unit test using new generic repeatEvery() actor.
2022-02-26 23:37:30 -08:00
Steve Atherton
3a666610ad
Tweaked Redwood unit test ops limits and added total record read count to prevent test instances that run too long.
2022-02-26 23:36:37 -08:00
Steve Atherton
6f16702042
Merge branch 'main' of https://github.com/apple/foundationdb into redwood-bug-fixes-and-memory-leak
2022-02-26 18:00:18 -08:00
Steve Atherton
c122cf1ce0
Bug fix: Avoid having a local temporary Cursor destructed after the Reference<Page> containing its DecodeCache has been dropped by using the BTreeCursor's leaf cursor by reference.
2022-02-26 02:03:43 -08:00
Steve Atherton
a47f481bae
Bug fix, the extent cache used during recovery is not allowed to evict anything so it now uses a private Evictor with no size limit.
2022-02-25 19:21:11 -08:00
Andrew Noyes
276cf3a402
Fix minor bugs turned up by _GLIBCXX_DEBUG ( #6375 )
...
* Fix a benign bug turned up by _GLIBCXX_DEBUG
Just calling std::vector::operator[] with an out of bounds index at all
is technically undefined behavior.
* Fix compilation issue with _GLIBCXX_DEBUG
For some reason std::max with an initializer list isn't constexpr with
_GLIBCXX_DEBUG set
2022-02-25 13:50:41 -08:00
Steve Atherton
a32c3a2891
Redwood now uses one global page cache eviction order and size limit for all page sizes, for real or virtual processes, and DecodeCache memory is counted against the global page cache budget.
2022-02-25 03:20:53 -08:00
A.J. Beamon
250a88e682
Enforce that trace event suppression calls happen first when using trace event call chaining. Fix various instances where we weren't following this requirement.
2022-02-24 12:25:52 -08:00
Steve Atherton
a45c9ccce1
Revert "Added Redwood knob to reserve part of configured page cache size for Redwood page decode cache state."
...
This reverts commit 072bc86bb1 .
2022-02-18 11:14:40 -08:00
Steve Atherton
17fe322bc4
Added near real-time tracking of Redwood page DecodeCache memory.
2022-02-18 03:26:05 -08:00
Steve Atherton
072bc86bb1
Added Redwood knob to reserve part of configured page cache size for Redwood page decode cache state.
2022-02-17 16:15:01 -08:00
Steve Atherton
42136bf808
Fixed memory leak (and minor performance bug) where RedwoodRecordRef::updateCache() would create the key copy to be placed in the cache but not actually place it into the real cache entry because the cache parameter was accepted by value.
2022-02-14 22:47:30 -08:00
sfc-gh-tclinkenbeard
3b5d23ef88
Remove unnecessary temporary objects when appending to vector of pairs
2021-12-01 18:15:16 -08:00
Steve Atherton
43b3e05fd5
Merge branch 'master' of github.com:apple/foundationdb into delay-prioritized-eviction
...
# Conflicts:
# fdbserver/VersionedBTree.actor.cpp
2021-11-29 16:14:43 -08:00
Steve Atherton
8216ad1e4e
When a cached page is hit, if it is in the prioritized eviction order don't move it to the normal order.
2021-11-28 21:04:35 -08:00
Steve Atherton
bed25f9571
Delay prioritized eviction of updated pages until after commit completes.
2021-11-28 21:03:44 -08:00
Steve Atherton
0f5535fce1
Remove explicit tryEvict(x) as it is unused and it is functionally replaced by prioritizeEviction(x).
2021-11-27 03:26:34 -08:00
sfc-gh-ngoyal
12e68da635
Merge pull request #6036 from sfc-gh-satherton/redwood-debug-sim-fixes
...
Test-only bug fixes in Redwood along with debug logging detail improvements.
2021-11-22 11:13:28 -08:00
sfc-gh-ngoyal
e43ddb09ac
Merge pull request #6034 from sfc-gh-satherton/remap-window-fix
...
Bug fix: incorrect remap cleanup window size in KeyValueStoreRedwood
2021-11-22 09:12:59 -08:00
Steve Atherton
d2149631d5
Bug fix, the remap cleanup window was being initialized incorrectly in the Redwood KVS wrapper.
2021-11-19 21:40:09 -08:00
Steve Atherton
3901d60548
Test-only bug fixes in Redwood along with debug logging detail improvements. Added clearRemapQueue() to Pager to more cleanly and reliably expire all old data and process the remap queue, fixing a bug where with certain configuration parameters and a lot of data the DestructiveSanityCheck would fail because it would not run cleanup long enough. Added more parameters to performance/set unit test.
2021-11-19 01:00:14 -08:00
sfc-gh-tclinkenbeard
2613ec7561
Expand use of fmt to get rid of %ld usage
2021-11-17 17:03:32 -08:00
sfc-gh-tclinkenbeard
07349869d9
Use fmt to address -Wformat warnings
2021-11-17 14:45:48 -08:00
sfc-gh-tclinkenbeard
766a05d33c
Merge remote-tracking branch 'origin/master' into add-format-warning
2021-11-17 12:14:01 -08:00
Steve Atherton
035e0d6e52
Merge branch 'master' into bit-flipping-workload
2021-11-16 14:42:22 -08:00
Steve Atherton
21c3c585ca
Make file name parameter more user friendly in unit tests.
2021-11-16 04:03:11 -08:00
Steve Atherton
867999a41a
Rename wrong_format_version to unsupported_format_version.
2021-11-16 03:25:54 -08:00
Steve Atherton
7b29804a5e
Fix typo.
2021-11-16 02:30:57 -08:00
Steve Atherton
c53f5aa110
Renamed redwood to redwood-1-experimental and file extension to .redwood-v1.
2021-11-16 02:15:22 -08:00
Steve Atherton
508429f30d
Redwood chunked file growth and low priority IO starvation prevention ( #5936 )
...
* Redwood files now growth in large page chunks controlled by a knob to reduce truncate() calls for expansion. PriorityMultiLock has limit on consecutive same-priority lock release. Increased Redwood max priority level to 3 for more separation at higher BTree levels.
* Simulation fix, don't mark certain IO timeout errors as injected unless the simulated process has been set to have an unreliable disk.
* Pager writes now truncate gradually upward, one chunk at a time, in response to writes, which wait on only the necessary truncate operations. Increased buggified chunk size because truncate can be very slow in simulation.
* In simulation, ioTimeoutError() and ioDegradedOrTimeoutError() will wait until at least the target timeout interval past the point when simulation is sped up.
* PriorityMultiLock::toString() prints more info and is now public.
* Added queued time to PriorityMultiLock.
* Bug fix to handle when speedUpSimulation changes later than the configured time.
* Refactored mutation application in leaf nodes to do fewer comparisons and do in place value updates if the new value is the same size as the old value.
* Renamed updatingInPlace to updatingDeltaTree for clarity. Inlined switchToLinearMerge() since it is only used in one place.
* Updated extendToCover to be more clear by passing in the old extension future as a parameter. Fixed initialization warning.
2021-11-12 13:47:07 -08:00
sfc-gh-tclinkenbeard
62efeb6812
Merge remote-tracking branch 'origin/master' into add-format-warning
2021-11-12 11:50:36 -08:00
Steve Atherton
470896bdc4
Redwood inline same-size value updates ( #5925 )
...
* Refactored mutation application in leaf nodes to do fewer comparisons and do in place value updates if the new value is the same size as the old value.
* Renamed updatingInPlace to updatingDeltaTree for clarity. Inlined switchToLinearMerge() since it is only used in one place.
2021-11-10 08:22:57 -08:00
Markus Pilman
a246c1555d
Merge pull request #5931 from sfc-gh-mpilman/features/all-unit-tests-in-ci
...
Make sure unit tests are run often enough
2021-11-10 08:41:04 -07:00
Markus Pilman
7df059570a
Make sure unit tests are run often enough
2021-11-08 15:43:32 -07:00
Steve Atherton
d97d968176
Added KeyBackedObjectMap and KeyBackedObjectProperty classes for storing serializable objects in FDB ( #5896 )
...
* Cleaned up some lambda capture workaround since x=y captures weren't available when these classes were originally written.
* Added KeyBackedObjectMap and KeyBackObjectProperty, which work like KeyBackedMap and KeyBackedProperty but use ObjectWriter/Reader for Value serialization so that the type can evolve over time.
* Disabled unit tests which shouldn't run as part of random selection.
2021-11-08 13:04:53 -08:00
Steve Atherton
b4d69610ee
Remove unused variable and more clearly explain out of range annotation in Redwood debug output.
2021-11-02 21:48:37 -07:00
Steve Atherton
84854761cb
Change Redwood to use xxhash for checksums.
2021-11-02 21:47:31 -07:00
sfc-gh-tclinkenbeard
ebcc023b6f
Enable missing-field-initializers clang warning
2021-11-01 14:18:31 -07:00
sfc-gh-tclinkenbeard
13bb7838aa
Enable clang -Wformat warning
2021-10-30 21:07:38 -07:00
negoyal
1e7338b6c3
Merge branch 'master' into bit-flipping-workload
2021-10-28 14:24:49 -07:00
Steve Atherton
0794ebb7e8
Bump format versions for Pager and BTree as the multi-page BTree nodes are now stored in an incompatible way.
2021-10-26 22:17:55 -07:00
Steve Atherton
b75edbda31
Merge branch 'master' of github.com:apple/foundationdb into RedwoodSuperpage
...
# Conflicts:
# fdbserver/VersionedBTree.actor.cpp
2021-10-25 00:55:52 -07:00