Commit Graph

24317 Commits

Author SHA1 Message Date
Xiaoxi Wang bbcb3cc018 extract KeyBackedConfig, StorageWiggleData class; solve template resolution problem; solve MV txn and native api conflict by splitting RunTransaction file 2023-01-02 23:34:39 -08:00
Xiaoxi Wang ba43de6a87 move KeyBackedConfig to a separate file 2022-12-21 22:03:00 -08:00
Xiaoxi Wang f13453fe63 Merge branch 'main' of https://github.com/apple/foundationdb into feature/main/wiggleDelay 2022-12-20 17:21:19 -08:00
Jingyu Zhou c3cc3c19c4
Merge pull request #9068 from jzhou77/fix
Add DC lag check in quiet database checks
2022-12-20 11:06:28 -08:00
Jingyu Zhou f2847cee6d Add DC lag check in quiet database checks
This is to be consistent with production deployment.
2022-12-19 20:04:46 -08:00
Jingyu Zhou c12753a32e Fix backup worker cache removal
Was incorrectly using "storageCache" before.
2022-12-19 20:00:18 -08:00
Meng Xu e6b2254726 Resolve review comments: No functional change 2022-12-19 15:28:01 -08:00
Meng Xu a1d513b355 Fix:Exclusion stuck because DD cannot build new teams
Bug behavior:
When DD has zero healthy machine teams but more unhealthy machine teams
than the max machine teams DD plans to build, DD will stop building
new machine teams. Due to zero healthy machine team (and zero healthy
server team), DD cannot find a healthy destination team  to relocate data.
When data relocation stops, exclusion stops progressing and stuck.

Bug happens when we *shrink* a k-host cluster by
first adding k/2 new host;
then quickly excluding all old hosts.

Fix:
Let DD build temporary extra teams to relocate data.
The extra teams will be cleaned up later by DD's remove extra teams logic.

Simulation test:
There is no simulation test to cover cluster expansion scnenario.
To most closely simulate this behavior, we intentionally overbuild all possible
machine teams to trigger the condition that unhealthy teams is larger than
the maximum teams DD wants to build later.
2022-12-19 15:28:01 -08:00
Jingyu Zhou b459902a57
Merge pull request #9066 from jzhou77/fix
Fix log file name too long for RocksDB in simulation
2022-12-19 12:24:42 -08:00
Jingyu Zhou 4269820ed0 Fix log file name too long for RocksDB in simulation
If a log directory is specified in the "db_log_dir" option, RocksDB will add the whole file path in the log file name, which can exceed the 255 byte limit of Linux file system, causing storage server failures.

See
c3f720c60d/include/rocksdb/options.h (L674-L679)
2022-12-19 09:52:21 -08:00
A.J. Beamon 31f34b28df
Merge pull request #9053 from sfc-gh-ajbeamon/improve-map-async
Make mapAsync usable without specifying template parameters
2022-12-19 09:35:54 -08:00
Christian Wende 4455b3985e
Merge pull request #9062 from sfc-gh-cwende/client-timeout-optimization
MultiVersionTransaction: call setTimeout in setOption only when necessary
2022-12-19 14:30:21 +01:00
Xiaoxi Wang 73f196a137
Merge pull request #9059 from sfc-gh-xwang/fix/main/blobMergeStream
Fix BlobGranuleCorrectness.toml undefined behavior in mergeDeltaStreams
2022-12-17 15:15:09 -08:00
Xiaoxi Wang bb58594f77 Merge branch 'main' of https://github.com/apple/foundationdb into fix/main/blobMergeStream 2022-12-16 12:47:50 -08:00
Junhyun Shim c8020f3a8b
Merge pull request #8904 from sfc-gh-jshim/mako-authz-token-generation
Mako authz token generation
2022-12-16 12:05:36 -08:00
Christian Wende 719eb62934 MultiVersionTransaction: call setTimeout in setOption only when necessary 2022-12-16 18:33:16 +01:00
Junhyun Shim 77e523ce91 Merge remote-tracking branch 'origin/main' into mako-authz-token-generation 2022-12-15 17:02:19 -08:00
Zhe Wu 00be9dfd11 Update documents 2022-12-15 15:55:13 -08:00
Zhe Wu cd2f155e3d Update comments 2022-12-15 15:55:13 -08:00
Zhe Wu 7f9203bbc0 Track individual key range metrics in each physical shard 2022-12-15 15:55:13 -08:00
Ankita Kejriwal d012a74fa8
Merge pull request #9043 from sfc-gh-anoyes/anoyes/idempotency-status-json
Add .cluster.idempotency_ids to status json
2022-12-15 15:45:55 -08:00
Xiaoxi Wang 670bd239da Merge branch 'main' of https://github.com/apple/foundationdb into feature/main/wiggleDelay 2022-12-15 13:47:30 -08:00
Steve Atherton a7a09d427a
Merge pull request #8774 from sfc-gh-xwang/feature/main/ppwLoadBalance
Make perpetual wiggle wait for byte load balance
2022-12-15 13:36:49 -08:00
Xiaoxi Wang a33b366f19 merge feature/main/ppwLoadBalance 2022-12-15 13:27:44 -08:00
Xiaoxi Wang 070894a597 return early if streams is empty 2022-12-15 12:56:49 -08:00
Xiaoxi Wang 919c512cdc fix wiggler state setting 2022-12-15 12:14:40 -08:00
Xiaoxi Wang ab4778bd19 Merge branch 'main' of https://github.com/apple/foundationdb into feature/main/ppwLoadBalance 2022-12-15 11:36:20 -08:00
Andrew Noyes 7bf8c8e519 Fix formatting 2022-12-14 17:55:28 -08:00
He Liu 2024237e5d
Fetch checkpoint as key-value pairs (#9003)
* Allow multiple keyranges in CheckpointRequest.
Include DataMove ID in CheckpointMetaData.

* Use UID dataMoveId instead of Optional<UID>.

* Implemented ShardedRocks::checkpoint().

* Implementing createCheckpoint().

* Attempted to change getCheckpointMetaData*() for a single keyrange.

* Added getCheckpointMetaDataForRange.

* Minor fixes for NativeAPI.actor.cpp.

* Replace UID CheckpointMetaData::ssId with std::vector<UID>
CheckpointMetaData::src;

* Implemented getCheckpointMetaData() and completed checkpoint creation
and fetch in test.

* Refactoring CheckpointRequest and CheckpointMetaData

rename `dataMoveId` as `actionId` and make it Optional.

* Fixed ctor of CheckpointMetaData.

* Implemented ShardedRocksDB::restore().

* Tested checkpoint restore, and added range check for restore, so that
the target ranges can be a subset of the checkpoint ranges.

* Added test to partially restore a checkpoint.

* Refactor: added checkpointRestore().

* Sort ranges for comparison.

* Cleanups.

* Check restore ranges are empty; Add ranges in main thread.

* Resolved comments.

* Fixed GetCheckpointMetaData range check issue.

* Refactor CheckpointReader for CF checkpoint.

* Added CheckpointAsKeyValues as a parameter for newCheckpointReader.

* PhysicalShard::restoreKvs().

* Added `ranges` in fetchCheckpoint.

* Added RocksDBCheckpointKeyValues::ranges.

* Added ICheckpointIterator and implemented for RocksDBCheckpointReader.

* Refactored OpenAction for CheckpointReader, handled failure cases.

* Use RocksDBCheckpointIterator::end() in readRange.

* Set CheckpointReader timout and other Rocks read options.

* Implementing fetchCheckpointRange().

* Added more CheckpointReader tests.

* Cleanup.

* More cleanup.

* Resolved comments.

Co-authored-by: He Liu <heliu@apple.com>
2022-12-14 17:44:47 -08:00
Andrew Noyes 6fa9cd84c9 Fix up merge 2022-12-14 17:30:54 -08:00
Andrew Noyes fd98e6f474 Merge branch 'main' into anoyes/idempotency-status-json 2022-12-14 17:15:22 -08:00
A.J. Beamon 0a686719d8 Make mapAsync usable without specifying template parameters 2022-12-14 14:33:59 -08:00
Kevin Hoxha a05649c620 metrics: Add knob to control emission of DDSketch buckets 2022-12-14 14:33:39 -08:00
Andrew Noyes dd0036f09c
Automatically clean old idempotency ids (#9039)
* Add cleanIdempotencyIds

Delete zero or more idempotency ids older than minAgeSeconds

* Automatically clean idempotency ids from first proxy

* Add test for cleaner

* Fix formatting

* Address review comments
2022-12-14 14:24:24 -08:00
Xiaoxi Wang d0ca0a863b
Merge pull request #9048 from sfc-gh-xwang/fix/main/NumberDataPoint
fix uninitialised byte(s) field in NumberDataPoint
2022-12-14 13:28:57 -08:00
Josh Slocum 90b1ad9941
Added FeedDiskReadState to make change feeds reading a large amount of disk data more efficient (#8830)
* Added FeedDiskReadState to make change feeds reading a large amount of disk data more efficient

* documentation for FeedDiskReadState
2022-12-14 12:53:41 -08:00
Xiaoxi Wang 0f3ae0ccd0 fix uninitialised byte(s) field NumberDataPoint 2022-12-14 12:07:35 -08:00
Ankita Kejriwal fe06114bcd Update the help text for `quota` command 2022-12-14 11:01:33 -08:00
Jingyu Zhou 8cae5f238e
Merge pull request #9038 from sfc-gh-sgwydir/non-fatal-tls
TLS error messages should reflect their non-fatal nature
2022-12-14 09:07:05 -08:00
Andrew Noyes ebe374e5d7 Fix formatting 2022-12-14 08:51:32 -08:00
Andrew Noyes 91a2010a34 Add .cluster.idempotency_ids to status json 2022-12-14 07:37:44 -08:00
Jingyu Zhou a628726cf1
Merge pull request #9031 from xis19/binding_failure
fixup! Fix the clang error in bindings/c
2022-12-13 20:31:53 -08:00
Xiaoge Su 70c9f2bb5f fixup! Fix the clang error in bindings/c 2022-12-13 18:13:01 -08:00
Sam Gwydir 833f2f9f5a TLS error messages are non-fatal
To avoid confusing users, TLS error messages should reflect the fact
that they are non-fatal and thus note that they are warnings.
2022-12-13 13:17:59 -08:00
Xiaoxi Wang 11a096567c Merge branch 'main' of https://github.com/apple/foundationdb into feature/main/wiggleDelay 2022-12-13 12:28:39 -08:00
A.J. Beamon a0b9646a73
Merge pull request #8997 from sfc-gh-ajbeamon/commit-proxy-tenant-name-refactor
Update tenant maps on the commit proxy to be ID based and not store full TenantMapEntries
2022-12-13 10:12:35 -08:00
Jingyu Zhou 0edfc27459
Merge pull request #9033 from sbodagala/main
Extend "ProcessMetrics" to include FoundationDB version
2022-12-13 08:58:07 -08:00
A.J. Beamon e4ee7e3b2e Merge branch 'main' into commit-proxy-tenant-name-refactor 2022-12-13 08:51:13 -08:00
A.J. Beamon b29b20c1d9
Merge pull request #9011 from sfc-gh-nwijetunga/nim/fix-encrypted-backup-workload
Fix EncryptedBackupCorrectness Workload
2022-12-13 08:42:20 -08:00
Nim Wijetunga 3a238d638a
Commit Proxy uses Encryption DB Config (#8911)
* add encryption db config

* address pr comments

* address pr comments

* add comments

* cp uses db config

* remove includes

* fix tests

* fix tests

* modify comment

* add encryption enabled method

* modify simulation

* Trigger Build

* change commit proxy encrypt mode fetching

* address pr comments

* address pr comments

* Trigger Build

* Trigger Build

* Trigger Build

* Trigger Build
2022-12-12 21:23:55 -08:00