improve the probability that sharded rocksdb is selected in simulation tests

This commit is contained in:
Zhe Wang 2024-10-10 09:48:23 -07:00
parent 824b792fd4
commit 7d95b87483
16 changed files with 25 additions and 23 deletions

View File

@ -190,7 +190,7 @@ void ServerKnobs::initialize(Randomize randomize, ClientKnobs* clientKnobs, IsSi
init( ALLOW_LARGE_SHARD, false ); if( randomize && BUGGIFY ) ALLOW_LARGE_SHARD = true;
init( MAX_LARGE_SHARD_BYTES, 1000000000 ); // 1G
init( SHARD_ENCODE_LOCATION_METADATA, false ); if( randomize && BUGGIFY ) SHARD_ENCODE_LOCATION_METADATA = true;
init( SHARD_ENCODE_LOCATION_METADATA, false ); if( isSimulated ) SHARD_ENCODE_LOCATION_METADATA = deterministicRandom()->random01() < 0.75;
init( ENABLE_DD_PHYSICAL_SHARD, false ); // EXPERIMENTAL; If true, SHARD_ENCODE_LOCATION_METADATA must be true; When true, optimization of data move between DCs is disabled
init( DD_PHYSICAL_SHARD_MOVE_PROBABILITY, 0.0 ); // FIXME: re-enable after ShardedRocksDB is well tested by simulation
init( ENABLE_PHYSICAL_SHARD_MOVE_EXPERIMENT, false ); // FIXME: re-enable after ShardedRocksDB is well tested by simulation
@ -1102,9 +1102,9 @@ void ServerKnobs::initialize(Randomize randomize, ClientKnobs* clientKnobs, IsSi
// Test harness
init( WORKER_POLL_DELAY, 1.0 );
init( PROBABILITY_FACTOR_MEMORY_ENGINE_SELECTED_SIM, 2 ); // default is 1
init( PROBABILITY_FACTOR_ROCKSDB_ENGINE_SELECTED_SIM, 2 ); // default is 1
init( PROBABILITY_FACTOR_SQLITE_ENGINE_SELECTED_SIM, 2 ); // default is 1
init( PROBABILITY_FACTOR_SHARDED_ROCKSDB_ENGINE_SELECTED_SIM, 100 ); // default is 1
init( PROBABILITY_FACTOR_ROCKSDB_ENGINE_SELECTED_SIM, 100 ); // default is 1
init( PROBABILITY_FACTOR_SQLITE_ENGINE_SELECTED_SIM, 100 ); // default is 1
// Coordination
init( COORDINATED_STATE_ONCONFLICT_POLL_INTERVAL, 1.0 ); if( randomize && BUGGIFY ) COORDINATED_STATE_ONCONFLICT_POLL_INTERVAL = 10.0;
@ -1217,7 +1217,7 @@ void ServerKnobs::initialize(Randomize randomize, ClientKnobs* clientKnobs, IsSi
init( ENABLE_BLOB_GRANULE_COMPRESSION, false ); if ( randomize && BUGGIFY ) { ENABLE_BLOB_GRANULE_COMPRESSION = deterministicRandom()->coinflip(); }
init( BLOB_GRANULE_COMPRESSION_FILTER, "NONE" ); if ( randomize && BUGGIFY ) { BLOB_GRANULE_COMPRESSION_FILTER = CompressionUtils::toString(CompressionUtils::getRandomFilter()); }
init( ENCRYPTION_LOGGING_INTERVAL, 5.0 );
init( DISABLED_ENCRYPTION_PROBABILITY_SIM, 0.90 );
init( DISABLED_ENCRYPTION_PROBABILITY_SIM, 0.95 );
// KMS connector type
init( KMS_CONNECTOR_TYPE, "RESTKmsConnector" );

View File

@ -1118,7 +1118,9 @@ public:
// Test harness
double WORKER_POLL_DELAY;
int PROBABILITY_FACTOR_MEMORY_ENGINE_SELECTED_SIM;
// Adjust storage engine probability in simulation tests
int PROBABILITY_FACTOR_SHARDED_ROCKSDB_ENGINE_SELECTED_SIM;
int PROBABILITY_FACTOR_ROCKSDB_ENGINE_SELECTED_SIM;
int PROBABILITY_FACTOR_SQLITE_ENGINE_SELECTED_SIM;

View File

@ -1867,10 +1867,10 @@ SimulationStorageEngine chooseSimulationStorageEngine(const TestConfig& testConf
ASSERT(storageEngineAvailable.size() > 0);
std::vector<SimulationStorageEngine> storageEngineCandidates;
for (const auto& storageEngine : storageEngineAvailable) {
if (storageEngine == SimulationStorageEngine::MEMORY) {
for (int i = 0; i < SERVER_KNOBS->PROBABILITY_FACTOR_MEMORY_ENGINE_SELECTED_SIM; i++) {
if (storageEngine == SimulationStorageEngine::SHARDED_ROCKSDB) {
for (int i = 0; i < SERVER_KNOBS->PROBABILITY_FACTOR_SHARDED_ROCKSDB_ENGINE_SELECTED_SIM; i++) {
storageEngineCandidates.push_back(storageEngine);
// Adjust the chance that Memory is selected
// Adjust the chance that ShardedRocksDB is selected
}
} else if (storageEngine == SimulationStorageEngine::SSD) {
for (int i = 0; i < SERVER_KNOBS->PROBABILITY_FACTOR_SQLITE_ENGINE_SELECTED_SIM; i++) {
@ -2902,11 +2902,11 @@ ACTOR void simulationSetupAndRun(std::string dataFolder,
testConfig.storageEngineExcludeTypes.insert(SimulationStorageEngine::SHARDED_ROCKSDB);
}
if (std::string_view(testFile).find("Encrypt") != std::string_view::npos) {
if (std::string_view(testFile).find("BlobGranule") != std::string_view::npos) {
testConfig.storageEngineExcludeTypes.insert(SimulationStorageEngine::SHARDED_ROCKSDB);
}
if (std::string_view(testFile).find("BlobGranule") != std::string_view::npos) {
if (std::string_view(testFile).find("BlobRestore") != std::string_view::npos) {
testConfig.storageEngineExcludeTypes.insert(SimulationStorageEngine::SHARDED_ROCKSDB);
}

View File

@ -141,17 +141,17 @@ if(WITH_PYTHON)
add_fdb_test(TEST_FILES fast/BackupCorrectnessClean.toml)
add_fdb_test(TEST_FILES fast/BackupToDBCorrectness.toml)
add_fdb_test(TEST_FILES fast/BackupToDBCorrectnessClean.toml)
add_fdb_test(TEST_FILES fast/BlobGranuleVerifyAtomicOps.toml)
add_fdb_test(TEST_FILES fast/BlobGranuleVerifyCycle.toml)
add_fdb_test(TEST_FILES fast/BlobGranuleVerifySmall.toml)
add_fdb_test(TEST_FILES fast/BlobGranuleVerifySmallClean.toml)
add_fdb_test(TEST_FILES rare/BlobGranuleVerifyAtomicOps.toml)
add_fdb_test(TEST_FILES rare/BlobGranuleVerifyCycle.toml)
add_fdb_test(TEST_FILES rare/BlobGranuleVerifySmall.toml)
add_fdb_test(TEST_FILES rare/BlobGranuleVerifySmallClean.toml)
# TODO: test occasionally times out due to too many change feed shard parts
add_fdb_test(TEST_FILES fast/BlobGranuleMoveVerifyCycle.toml IGNORE)
add_fdb_test(TEST_FILES fast/BlobRestoreBasic.toml)
add_fdb_test(TEST_FILES fast/BlobRestoreLarge.toml IGNORE)
add_fdb_test(TEST_FILES fast/BlobRestoreToVersion.toml)
add_fdb_test(TEST_FILES fast/BlobRestoreTenantMode.toml)
add_fdb_test(TEST_FILES rare/BlobGranuleMoveVerifyCycle.toml IGNORE)
add_fdb_test(TEST_FILES rare/BlobRestoreBasic.toml)
add_fdb_test(TEST_FILES rare/BlobRestoreLarge.toml IGNORE)
add_fdb_test(TEST_FILES rare/BlobRestoreToVersion.toml)
add_fdb_test(TEST_FILES rare/BlobRestoreTenantMode.toml)
add_fdb_test(TEST_FILES fast/BulkLoading.toml)
add_fdb_test(TEST_FILES fast/CacheTest.toml)
add_fdb_test(TEST_FILES fast/CloggedSideband.toml)
@ -163,9 +163,9 @@ if(WITH_PYTHON)
add_fdb_test(TEST_FILES fast/ConstrainedRandomSelector.toml)
add_fdb_test(TEST_FILES fast/CycleAndLock.toml)
add_fdb_test(TEST_FILES fast/CycleTest.toml)
add_fdb_test(TEST_FILES fast/ChangeFeeds.toml)
add_fdb_test(TEST_FILES fast/ChangeFeedOperations.toml)
add_fdb_test(TEST_FILES fast/ChangeFeedOperationsMove.toml)
add_fdb_test(TEST_FILES rare/ChangeFeeds.toml)
add_fdb_test(TEST_FILES rare/ChangeFeedOperations.toml)
add_fdb_test(TEST_FILES rare/ChangeFeedOperationsMove.toml)
add_fdb_test(TEST_FILES fast/DataLossRecovery.toml)
add_fdb_test(TEST_FILES fast/EncryptionOps.toml)
# EncryptionUnitTests is only a convenience file to run the different types of encryption tests at once. Do not enable in general ensembles