Commit Graph

23356 Commits

Author SHA1 Message Date
Xiaoxi Wang 5a8adca1f7 solve review comments: mark const; add comments; template abbreviation 2022-10-25 10:56:24 -07:00
Xiaoxi Wang db72a29c06 fix compile error after rebase 2022-10-24 11:16:23 -07:00
Xiaoxi Wang 918018d492 format code 2022-10-24 10:50:46 -07:00
Xiaoxi Wang 0d4b4d05e2 implement MSS as IStorageMetricsService and pass the unit test 2022-10-24 09:58:41 -07:00
Xiaoxi Wang 3c67b7df39 extract serveStorageMetricsRequests template function 2022-10-24 09:58:41 -07:00
Xiaoxi Wang c14ee5395f define IStorageMetricsService 2022-10-24 09:58:41 -07:00
Xiaoxi Wang e07a50573a splitStorageMetrics finish implementation (no unit test yet but 100k
test pass)
2022-10-24 09:58:41 -07:00
Xiaoxi Wang 1603926595 refactoring old waitStorageMetrics and finish MGS::waitStorageMetrics
(no unit test yet)
2022-10-24 09:58:41 -07:00
Xiaoxi Wang 5d90703dc8 finish getKeysLocations etc, and unit test pass. 2022-10-24 09:58:41 -07:00
Xiaoxi Wang 70eb9aef28 simple MGS IKeyLocationService implementation 2022-10-24 09:58:41 -07:00
Steve Atherton 90b17a937c
Merge pull request #8526 from sfc-gh-satherton/redwood-page-lifetimes
Bug fixes in IO buffer and class lifetimes in Redwood, DiskQueue, AsyncFileChaos, AsyncFileWriteChecker, BackupFile, AsyncFileEncrypted.   Generic actor improvements.
2022-10-24 09:54:58 -07:00
Jingyu Zhou 30f571bf7e
Merge pull request #8522 from sfc-gh-satherton/diskqueue-bug-fix
Bug fix: If a disk queue reader drops its future memory corruption could occur
2022-10-24 09:49:41 -07:00
Jingyu Zhou b48f2869d1
Merge pull request #8529 from sfc-gh-vgasiunas/vgasiunas-apitester-documentation
Update API Tester documentation for server config and ctest targets
2022-10-24 09:38:17 -07:00
Jingyu Zhou f99d631537
Merge pull request #8543 from sfc-gh-huliu/removegzip
remove zlib
2022-10-24 09:35:07 -07:00
Steve Atherton 84c51fb61a Merge commit 'c93e8c9da159cd89f670117201b17115ad03cdf0' into redwood-page-lifetimes 2022-10-23 22:28:52 -07:00
Steve Atherton ff6d5ddf0c Enable read/write cancel checking in AsyncFileNonDurable for all file types. 2022-10-23 17:53:36 -07:00
Steve Atherton 5058402c73 Bug fixes in AsyncFileEncrypted buffer and class instance lifetimes. IO buffers must be kept alive until underlying reads or writes completes, and some use cases allow the class reference to be dropped while operations are outstanding so that is also made safe. 2022-10-23 17:47:54 -07:00
Steve Atherton a627df88c6 IO buffer lifetime fix, source buffer must stay alive until the file write completes. 2022-10-23 16:38:08 -07:00
Steve Atherton 344290fdf1 IO buffer lifetime fix, buf must stay alive until the file read completes. 2022-10-23 16:28:31 -07:00
Steve Atherton 59a2800173 IO buffer lifetime fix, block output buffer must stay alive until the file operation completes. 2022-10-23 16:27:00 -07:00
Steve Atherton 4e338257c7 Simulation-only safety check for cancelled read and write ops which is unsafe for many IAsyncFile implementations. For now, the check is only enabled for sqlite, redwood, and fdq files. 2022-10-23 13:19:16 -07:00
Trevor Clinkenbeard c93e8c9da1
Merge pull request #8532 from sfc-gh-tclinkenbeard/clear-key-provider
Clear `DecodeBoundaryVerifier::keyProvider` in `~VersionedBTree`
2022-10-23 10:50:27 -07:00
sfc-gh-tclinkenbeard 59db8a8f0e Merge remote-tracking branch 'origin/main' into clear-key-provider 2022-10-23 09:53:14 -07:00
Steve Atherton fdc8e2118e Changed Redwood shutdown order so that users get the error signal first and have a chance to cancel pending operations before they are canceled by force which causes broken_promise errors. 2022-10-23 01:52:25 -07:00
Steve Atherton 970eb4a043 Add option in ObjectCache clear for whether or not to wait for safe eviction for each item. 2022-10-23 01:50:18 -07:00
Steve Atherton 6b55d8ff01 Merge commit 'f2c1cd6792b45f04968d3c3d335723430be2e6a9' into redwood-page-lifetimes 2022-10-23 01:45:53 -07:00
Steve Atherton f2c1cd6792 Bug fix: If a disk queue reader drops its future memory corruption could occur so the actor is made uncancellable and the TrackMe member will keep the disk queue alive until it finishes. 2022-10-23 01:45:04 -07:00
Steve Atherton 6e1073a6da Fix bugs with file IO buffer lifetimes in DiskQueue by changing waitForAll() to waitForAllReadyThenThrow() so that if one operation errors the buffers used by the others will not be destroyed. 2022-10-23 01:38:50 -07:00
Steve Atherton 59254436ab Add more details in comment block about interface contract. 2022-10-23 01:08:53 -07:00
Steve Atherton 4c7b44cd5c Lifetime fixes in AsyncFileChaos, returned actors must hold a copy of the file member to keep it alive since this could be destroyed with operations pending. 2022-10-23 00:40:31 -07:00
Steve Atherton b6de4d3ae2 AsyncFileWriteChecker ops must keep a reference to the class instance since it could be destroyed before an operation completes. 2022-10-22 22:22:52 -07:00
Steve Atherton cd83595a0f Merge remote-tracking branch 'sfc-gh-tclinkenbeard/clear-key-provider' into redwood-page-lifetimes 2022-10-22 17:55:09 -07:00
Steve Atherton fa0ea1368d Now that IO operation cancellation is safe, explictly cancel all pending operations during shutdown in the operations vector or in the caches. 2022-10-22 17:55:02 -07:00
Steve Atherton 94f3eee3a8 Update comment for recent changes. 2022-10-22 16:12:57 -07:00
Steve Atherton 46dd71b008 Change extent reads to use readPhysicalBlock to avoid output buffer lifetime issues while allowing the extent read actor to be cancelled. 2022-10-22 02:55:45 -07:00
Steve Atherton 76316339ac Merge commit '7dacaed98368ec0790c9e18a63dfa0035a31fcff' into redwood-page-lifetimes 2022-10-22 02:30:43 -07:00
Steve Atherton d7f9de53f5 Reworked Redwood's file read/write buffer lifetime safety to be more simple and lower overhead. The lowest level file read/write ops are uncancellable and hold references to their in/out buffers, so now read/write futures in the operations vector or the page cache can be cancelled which allows shutdown to directly cancel active operations. 2022-10-22 02:30:15 -07:00
Steve Atherton fe696183fc Refactored quorum() to also accept an array instead of a vector and modified operator&&(Future, Future) to not create a temporary vector. 2022-10-22 00:48:26 -07:00
Steve Atherton 4c68bb0193 Added operator+ for Future + Future which waits for both futures in order and returns the result of the second. 2022-10-22 00:46:14 -07:00
Steve Atherton 9aad911001 Removed unnecessary instantiations of success(). 2022-10-22 00:44:50 -07:00
Hui Liu b27bdf1da8 remove zlib 2022-10-21 17:45:22 -07:00
Nim Wijetunga 7dacaed983
add domain name asserts (#8534) 2022-10-21 17:24:27 -07:00
Yao Xiao f1875268b8
Destroy CF handle before closing physical shard. (#8394) 2022-10-21 17:18:36 -07:00
neethuhaneesha a1eb1d4a48
Rocksdb storage using single_key_deletes instead of deleterange on clearrange operation. (#8452) 2022-10-21 15:47:19 -07:00
Josh Slocum 9987da5a4f
Add blob granule benchmark to track stats by varying amount of deltas, and several simple perf improvements (#8533) 2022-10-21 17:05:51 -05:00
sfc-gh-tclinkenbeard 3161b3b417 Merge remote-tracking branch 'origin/main' into clear-key-provider 2022-10-21 12:21:56 -07:00
sfc-gh-tclinkenbeard e168950a93 Clear DecodeBoundaryVerifier::keyProvider in ~VersionedBTree 2022-10-21 11:26:55 -07:00
Chaoguang Lin 78e2871a79
Add a long running test (#8505)
* Add a long running test

* Make new scripts executable and update the test file
2022-10-21 11:11:11 -07:00
Zhe Wu ada51ff12b Add a counter to track physical shard creation throuogh moves 2022-10-21 10:22:42 -07:00
Jingyu Zhou b839489661
Merge pull request #8518 from liquid-helium/fix-fetch-checkpoint
Fixed file offset not reset issue.
2022-10-21 09:07:55 -07:00