Jingyu Zhou
1a5bf25b5c
Update code base to use fmt 8.1.1
2022-03-04 15:52:06 -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
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
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
sfc-gh-tclinkenbeard
9e06b6e6e3
Make IClosable interface const-correct
2021-10-18 13:40:47 -07:00
Daniel Smith
9713a14ef1
Reverse order of read type and debug ID args
2021-10-18 12:23:09 -04:00
Daniel Smith
df53cc9580
Add an enum to IKeyValueStore to indicate the source/priority of the read
2021-10-15 14:35:59 -04:00
negoyal
f913dfed97
Merge branch 'master' into bit-flipping-workload
2021-10-11 16:34:57 -07:00
Steve Atherton
0cce774325
Merge pull request #5732 from sfc-gh-satherton/kvs-write-version
...
Refactored how Redwood handles commit version
2021-10-09 20:26:52 -07:00
Steve Atherton
abc14c4921
Redwood crash after shutdown which occurs if a queue page disk read was in progress during pager shutdown but the callback was fired after shutdown completed.
2021-10-09 02:04:23 -07:00
Steve Atherton
4722412e51
TEST macro logic fix, and moved wait on seek future to the conditional block where it isn't ready.
2021-10-08 08:47:49 -07:00
Steve Atherton
fd02cbc08a
Bug fix, atomic update case condition for BTree node builds resulting in 1 output node of the same 1-page size as the original was incorrect so atomic updates were never being done.
2021-10-08 00:41:09 -07:00
Steve Atherton
6981f6f5f2
Merge branch 'master' of github.com:apple/foundationdb into RedwoodSuperpage
2021-10-08 00:28:08 -07:00
Steve Atherton
c1f05b82ba
Added test coverage with comments for range read seek locking behavior.
2021-10-08 00:06:14 -07:00
Steve Atherton
8e149f5aa2
Merge branch 'master' of github.com:apple/foundationdb into RedwoodIO
2021-10-07 23:56:45 -07:00
Steve Atherton
e358a4314d
Added comment about not locking point reads.
2021-10-07 23:55:59 -07:00
Steve Atherton
45e19c8072
Merge branch 'master' of https://github.com/apple/foundationdb into kvs-write-version
...
# Conflicts:
# fdbserver/VersionedBTree.actor.cpp
2021-10-07 20:48:21 -07:00
Steve Atherton
93f4e01258
Restored Redwood KVS internal auto-incremented version.
2021-10-06 13:15:50 -07:00
Steve Atherton
b8508e40e9
Added random same-version zero-change commits to unit test.
2021-10-05 02:43:10 -07:00
Steve Atherton
5be84f1918
Initial Redwood post-create recovery version changed to -1, which means no commit has ever completed. Commits at the same version as the previous commit must have no changes and are no-ops. KeyValueStoreRedwood no longer advances the commit version automatically.
2021-10-05 02:20:42 -07:00
Steve Atherton
3a56b13989
Bug fix, range end seek in verification map was assuming that version 0 was lower than the minimum mutation version but that is no longer true due to recent changes in commit version behavior.
2021-10-03 22:11:33 -07:00