Skip to content

Commit 8fa2aae

Browse files
jaykoreanfacebook-github-bot
authored andcommitted
Re-enable Remote Compaction Stress Test (facebook#13913)
Summary: Re-enabling Remote Compaction Stress Test with some changes to stress test feature combo sanitization changes Pull Request resolved: facebook#13913 Test Plan: Ran Meta Internal Tests for a few days # Follow up - Skip recovering from WAL in remote worker and re-enable WAL - Investigate and fix races with Integrated BlobDB Reviewed By: hx235 Differential Revision: D81509225 Pulled By: jaykorean fbshipit-source-id: 949762c48ece0a25e3d0281e3510f1e7d3fe3667
1 parent fc8bc60 commit 8fa2aae

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

tools/db_crashtest.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,7 @@ def setup_random_seed_before_main():
367367
"allow_unprepared_value": lambda: random.choice([0, 1]),
368368
# TODO(hx235): enable `track_and_verify_wals` after stabalizing the stress test
369369
"track_and_verify_wals": lambda: random.choice([0]),
370-
# TODO(jaykorean): Re-enable remote compaction once all incompatible features are addressed in stress test
371-
"remote_compaction_worker_threads": lambda: 0,
370+
"remote_compaction_worker_threads": lambda: random.choice([0, 8]),
372371
"auto_refresh_iterator_with_snapshot": lambda: random.choice([0, 1]),
373372
"memtable_op_scan_flush_trigger": lambda: random.choice([0, 10, 100, 1000]),
374373
"memtable_avg_op_scan_flush_trigger": lambda: random.choice([0, 2, 20, 200]),
@@ -505,6 +504,8 @@ def is_direct_io_supported(dbname):
505504
#
506505
# Second, we need to make sure disabling WAL works with `-reopen > 0`.
507506
"disable_wal": 0,
507+
# TODO: Re-enable this once we fix WAL + Remote Compaction in Stress Test
508+
"remote_compaction_worker_threads": 0,
508509
"duration": 10000,
509510
"log2_keys_per_lock": 10,
510511
"ops_per_thread": 200000,
@@ -566,6 +567,8 @@ def is_direct_io_supported(dbname):
566567
# TODO: there is such a thing as transactions with WAL disabled. We should
567568
# cover that case.
568569
"disable_wal": 0,
570+
# TODO: Re-enable this once we fix WAL + Remote Compaction in Stress Test
571+
"remote_compaction_worker_threads": 0,
569572
# OpenReadOnly after checkpoint is not currnetly compatible with WritePrepared txns
570573
"checkpoint_one_in": 0,
571574
# pipeline write is not currnetly compatible with WritePrepared txns
@@ -776,6 +779,18 @@ def finalize_and_sanitize(src_params):
776779
if dest_params.get("best_efforts_recovery") == 1:
777780
dest_params["inplace_update_support"] = 0
778781

782+
# Remote Compaction Incompatible Tests and Features
783+
if dest_params.get("remote_compaction_worker_threads", 0) > 0:
784+
# TODO Fix races when both Remote Compaction + BlobDB enabled
785+
dest_params["enable_blob_files"] = 0
786+
dest_params["enable_blob_garbage_collection"] = 0
787+
# TODO Fix - Remote worker shouldn't recover from WAL
788+
dest_params["disable_wal"] = 1
789+
# Disable Incompatible Ones
790+
dest_params["inplace_update_support"] = 0
791+
dest_params["checkpoint_one_in"] = 0
792+
dest_params["use_timed_put_one_in"] = 0
793+
779794
# Multi-key operations are not currently compatible with transactions or
780795
# timestamp.
781796
if (
@@ -838,14 +853,6 @@ def finalize_and_sanitize(src_params):
838853
dest_params["allow_concurrent_memtable_write"] = 1
839854
else:
840855
dest_params["unordered_write"] = 0
841-
if dest_params.get("remote_compaction_worker_threads", 0) > 0:
842-
# TODO Fix races when both Remote Compaction + BlobDB enabled
843-
dest_params["enable_blob_files"] = 0
844-
# TODO Fix - Remote worker shouldn't recover from WAL
845-
dest_params["disable_wal"] = 1
846-
# Disable Incompatible Ones
847-
dest_params["checkpoint_one_in"] = 0
848-
dest_params["use_timed_put_one_in"] = 0
849856
if dest_params.get("disable_wal", 0) == 1:
850857
dest_params["atomic_flush"] = 1
851858
dest_params["sync"] = 0

0 commit comments

Comments
 (0)