Commit Graph

257 Commits

Author SHA1 Message Date
Yao Xiao 0a87b6039f
Add perpetual wiggle pause reason. (#10821) 2023-08-24 00:31:38 -07:00
Zhe Wang f8311ae069
Add more trace event for TSS recruitment (#10809)
* add more trace event for tss

* update StorageServerInitProgress

* add more traces
2023-08-23 09:19:30 -07:00
Zhe Wang 83dc9ff6f7
Trace SS init progress (#10799)
* trace ss init progress

* improve trace events
2023-08-18 18:44:37 -07:00
Jingyu Zhou 5ace1911d1 Fix a few typos 2023-08-14 15:01:19 -07:00
Zhe Wu 726574243c Improve PerpetualWiggleStorageMigration reliability 2023-08-10 09:36:04 -07:00
Zhe Wu eb6f0c613d Add documentation for perpetual_storage_wiggle_engine config 2023-08-10 09:35:57 -07:00
Zhe Wu 17ae952f15 Remove debugging notes 2023-08-10 09:35:57 -07:00
Zhe Wu 863038a44c Add improvement for initializing storage server using new perpetual_wiggle_storage_engine config 2023-08-10 09:35:57 -07:00
Zhe Wu f65e3a35f2 Adding perpetual wiggle test to reproduce exclude/include case 2023-08-10 09:35:57 -07:00
Xiaoxi Wang c2cfebac73 Fix tss kill logic: only disable Tss check when zeroHealthyTeams=false 2023-08-09 20:43:15 -07:00
Yanqin Jin 8e9b3780f5 Stop tracking a storage server after its removal
After a storageMetadataTracker detects that a storage server has been removed, the storageServerTracker should stop tracking this server. Without this fix, the
```
when(wait(storageMetadataTracker)) {}
```
will be triggered repeatedly, and the outer loop may busy looping printing trace lines, which eventually hit `TracedTooManyLines` error.

Test plan:
This failure was captured on snowflake/release-71.3 branch, but I believe the bug is also present on main. To verify that it fixes the issue, do the following:
1. Checkout branch snowflake/release-71.3
2. Profile: team ubsan
3. Commit: 507bbc98e2
4. Command: devRetryCorrectnessTest bin/fdbserver -r simulation -f tests/fast/SwizzledRollbackSideband.toml -s 1845441210 -b on  --crash --trace_format json
5. Apply the simple fix, and rerun the test

In addition, we run a 100K Joshua ensemble.
20230714-220726-yajin-4f1585642a92bfd2, fail=0
2023-07-14 22:28:17 -07:00
He Liu 6337125712
Several minor improvements for ShardedRocksDB (#10520)
* Terminate DD if SHARD_ENCODE_LOCATION_METADATA is not enabled and storage_engine_type is ShardedRocksDB.

* Fixed Error in non-main thread.

* Minor improvements.
2023-06-24 16:07:14 -07:00
Xiaoxi Wang 7d3cc86860
check serverList before update storage metadata (#10540) 2023-06-22 12:02:09 -07:00
Zhe Wu 36befca2ba Nit fixing 2023-06-21 09:25:51 -07:00
Zhe Wu 8eb526684a
Merge pull request #10437 from halfprice/zhewu/one-shard-per-physical-shard
Add an option to limit the number of shard per team
2023-06-20 19:43:31 -07:00
Zhe Wu 4a34fd0cb7 Fix WithinShardLimit unit test failure 2023-06-08 22:42:50 -07:00
Yao Xiao 08c4953f4b
Add logs to track storage server status. (#10439) 2023-06-08 14:59:58 -07:00
Zhe Wu 77f2caf030 Clean up documentation for PreferWithinShardCount 2023-06-07 22:20:04 -07:00
Xiaoxi Wang 7465da29c1 Change setShardStatus implementation 2023-06-07 22:01:33 -07:00
Xiaoxi Wang e3c9a1a7f5 Disable same address detection in mock DD and implement MockStorageServer::getStorageMetrics 2023-06-07 22:01:33 -07:00
Xiaoxi Wang e139f5bf90 Correctly handle buggify errors in MGSWaitStorageMetrics 2023-06-07 22:01:33 -07:00
Xiaoxi Wang 28a83d2fa1 Implement DDMockTxnProcessor::waitForAllDataRemoved 2023-06-07 22:01:33 -07:00
Xiaoxi Wang ac16dbd0d8 Fix mock DD incompatible places 2023-06-07 22:01:33 -07:00
Zhe Wu 04c55ff4e4 Add test to testing PreferWithinShardLimit getTeam option 2023-06-07 21:54:57 -07:00
Zhe Wu 6b17f9fcf3 Adding PreferWithinShardLimit option 2023-06-07 14:38:58 -07:00
Jingyu Zhou 70d4c94e5c Limit the change to be only during consistency check in simulation
ConfigureStorageMigrationTest.toml can require wiggler when speedUpSimulation
is on.
2023-05-24 20:50:04 -07:00
Jingyu Zhou 68de513fc8 Slow down wiggler when speedUpSimulation
Storage wiggle can cause consistency check to restart due to wrong_shard_server
error. This can sometimes repeatedly happen and cause consistency check timeout.

Reproduction:
  seed: -f ./tests/fast/MutationLogReaderCorrectness.toml -s 575471711 -b on
  commit: 2e62b577f at release-7.1
  build: clang
2023-05-24 20:50:04 -07:00
Jingyu Zhou 28dadd916a Track customReplicas failure times 2023-05-19 15:49:51 -07:00
Jingyu Zhou 2b3d60b960 Track failure time of different team sizes separately
In some rare cases, using the same failure time may prevent a certain size from
getting a team, thus cause data movement to become stuck.

Reproduction:
  Seed: -f ./tests/rare/DcLag.toml -s 924031356 -b on
  commit: 0975874b9 on release-7.3
  build: gcc
2023-05-19 14:55:32 -07:00
Ankita Kejriwal cdef4523aa
Update a few Data Distribution code probes (#10110) 2023-05-03 18:26:51 -07:00
Xiaoxi Wang a958436bf5 force blob migrator's ssi to be undesired; remove TCServerInfo from prepareBlobMigrator parameter list 2023-05-02 09:40:11 -07:00
Xiaoxi Wang fdc576a938 force blob migrator's ssi to be undesired 2023-05-02 09:40:11 -07:00
Xiaoxi Wang 880274ab48 add PrepareBlobRestoreRequest, and make DD handle the BlobRestore
prepare transactions

add DD Restore Preparing state; actor accept blob migrator requests

Refactor DDEnabledState and PrepareBlobRestoreReply

Improve the initialization, remove unused DDSharedContext method

move prepareBlobRestore to moveKeys

Make context->lock and DataDistributor.lock share the reference; change checkMoveKeysLock to checkPersistenMoveKeysLock; Add more debug trace

fix requestId assignment bug

Add DDEnabledState::sameId method

Throw movekeys_conflict after hybrid restore preparation to force reload
server list and shard mapping; format code; remove unused
methods,definition and comments

fix rebase conflicts

Make DD only load initial Data Distribution after enabled

use dd_config_changed error and throw it in serveBlobMigratorRequests

move empty range check before blob restore to the transaction lock database

Rename BlobRestore*
2023-05-02 09:40:11 -07:00
Xiaoxi Wang 3a8bdcca3d add metadata check to quiesent consistency check 2023-05-01 18:08:08 -07:00
Xiaoxi Wang 3605d8c74c populate storage metadata for tss 2023-05-01 18:08:08 -07:00
Steve Atherton 16d8b1d1f9
Merge pull request #9949 from sfc-gh-etschannen/fix-shard-count
fix: do not let too many shards use large teams
2023-04-29 23:50:49 -07:00
Zhongxing Zhang 7aa578f616
Merge pull request #10028 from sfc-gh-zhzhang/trace-team-eligibility
Add trace event "TeamEligibilityCount"
2023-04-26 16:11:39 -07:00
zhongxing.zhang c6df143a9c change variable names and adjust orders 2023-04-25 16:44:42 -07:00
zhongxing.zhang bb2c7e7c8e add two bool lowDiskUtil, lowCPU to reduce repeat code 2023-04-24 16:24:35 -07:00
zhongxing.zhang 5eaec76407 add lowDiskUtilLowCpu to indicate the overlap between lowCpu pool and lowDiskUtil pool 2023-04-23 14:36:32 -07:00
zhongxing.zhang 86a6171a27 Add trace event "TeamEligibilityCount" to indicate that how many team has passed CPU or Space pivot check. 2023-04-21 11:12:22 -07:00
Evan Tschannen f7dc2d9c76 fix: do not load the userRangeConfig if large teams are not enabled
fix: do not build a large team which is the same size as the storage team size
fix: large teams should not count towards the healthyTeamCount
2023-04-19 20:38:03 -07:00
Steve Atherton b7e68bbf51 DDConfiguration class for modeling user specified key range configuration options. Added KeyBackedRangeMapSnapshot, some other supporting changes to KeyBackedTypes. Added invalidKey to give KeyBackedTypes a safe prefix to avoid accidental userspace modification from uninitialized accessors. 2023-04-18 22:09:18 -07:00
Steve Atherton a4438d4542 Refactored and simplified KeyBackedTypes to base types KeyBackedProperty, KeyBackedMap, and KeyBackedSet. Object and BinaryValue variations are now redefined as customizations of the base types. Added WatchableTrigger for using a key to track a last updated version, supported by all KeyBackedTypes. KeyBackedStruct is renamed to KeyBackedClass contains a WatchableTrigger to pass to contained KeyBackTypes. 2023-04-18 21:48:55 -07:00
Xiaoxi Wang 2dbcd0f8ab fix pivot index calculation
assert valid value of AVAILABLE_SPACE_PIVOT_RATIO and CPU_PIVOT_RATIO
2023-04-17 12:24:18 -07:00
Xiaoxi Wang 50e1f629fe EligibilityCounter use int type; resolve review comments; 2023-04-17 12:24:17 -07:00
Evan Tschannen 12e507e06c rename knobs 2023-04-13 09:40:37 -07:00
Xiaoxi Wang b50459dd12 change the initial value of CPU pivot 2023-04-12 09:33:05 -07:00
Xiaoxi Wang 737dd09572 set better knob for cpu cutoff unit test 2023-04-12 09:33:05 -07:00
Xiaoxi Wang 7ce7e3c99e add cpu cutoff unit test 2023-04-12 09:33:05 -07:00