Update stress test
This commit is contained in:
parent
6712cd8270
commit
c4548d6254
@ -290,6 +290,8 @@ DECLARE_bool(adaptive_readahead);
|
||||
DECLARE_bool(async_io);
|
||||
DECLARE_string(wal_compression);
|
||||
|
||||
DECLARE_int32(create_shared_snapshot_one_in);
|
||||
|
||||
constexpr long KB = 1024;
|
||||
constexpr int kRandomValueMaxFactor = 3;
|
||||
constexpr int kValueMaxLen = 100;
|
||||
|
@ -936,4 +936,7 @@ DEFINE_bool(
|
||||
DEFINE_string(wal_compression, "none",
|
||||
"Algorithm to use for WAL compression. none to disable.");
|
||||
|
||||
DEFINE_int32(create_shared_snapshot_one_in, 0,
|
||||
"On non-zero, create shared snapshots upon transaction commits.");
|
||||
|
||||
#endif // GFLAGS
|
||||
|
@ -617,13 +617,24 @@ Status StressTest::NewTxn(WriteOptions& write_opts, Transaction** txn) {
|
||||
return s;
|
||||
}
|
||||
|
||||
Status StressTest::CommitTxn(Transaction* txn) {
|
||||
Status StressTest::CommitTxn(Transaction* txn, ThreadState* thread) {
|
||||
if (!FLAGS_use_txn) {
|
||||
return Status::InvalidArgument("CommitTxn when FLAGS_use_txn is not set");
|
||||
}
|
||||
Status s = txn->Prepare();
|
||||
if (s.ok()) {
|
||||
if (thread && FLAGS_create_shared_snapshot_one_in &&
|
||||
thread->rand.OneIn(FLAGS_create_shared_snapshot_one_in)) {
|
||||
uint64_t ts = db_stress_env->NowNanos();
|
||||
s = txn->SetCommitTimestamp(ts);
|
||||
assert(s.ok());
|
||||
txn->SetSnapshotOnNextOperation();
|
||||
}
|
||||
s = txn->Commit();
|
||||
assert(txn_db_);
|
||||
uint64_t ts2 = db_stress_env->NowNanos();
|
||||
uint64_t ts_delta = 5ULL * 1000 * 1000 * 1000;
|
||||
txn_db_->ReleaseSharedSnapshotsOlderThan(ts2 - ts_delta);
|
||||
}
|
||||
delete txn;
|
||||
return s;
|
||||
|
@ -59,7 +59,7 @@ class StressTest {
|
||||
#ifndef ROCKSDB_LITE
|
||||
Status NewTxn(WriteOptions& write_opts, Transaction** txn);
|
||||
|
||||
Status CommitTxn(Transaction* txn);
|
||||
Status CommitTxn(Transaction* txn, ThreadState* thread = nullptr);
|
||||
|
||||
Status RollbackTxn(Transaction* txn);
|
||||
#endif
|
||||
|
@ -568,7 +568,7 @@ class NonBatchedOpsStressTest : public StressTest {
|
||||
if (s.ok()) {
|
||||
s = txn->Merge(cfh, key, v);
|
||||
if (s.ok()) {
|
||||
s = CommitTxn(txn);
|
||||
s = CommitTxn(txn, thread);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -587,7 +587,7 @@ class NonBatchedOpsStressTest : public StressTest {
|
||||
if (s.ok()) {
|
||||
s = txn->Put(cfh, key, v);
|
||||
if (s.ok()) {
|
||||
s = CommitTxn(txn);
|
||||
s = CommitTxn(txn, thread);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -648,7 +648,7 @@ class NonBatchedOpsStressTest : public StressTest {
|
||||
if (s.ok()) {
|
||||
s = txn->Delete(cfh, key);
|
||||
if (s.ok()) {
|
||||
s = CommitTxn(txn);
|
||||
s = CommitTxn(txn, thread);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -685,7 +685,7 @@ class NonBatchedOpsStressTest : public StressTest {
|
||||
if (s.ok()) {
|
||||
s = txn->SingleDelete(cfh, key);
|
||||
if (s.ok()) {
|
||||
s = CommitTxn(txn);
|
||||
s = CommitTxn(txn, thread);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -310,6 +310,7 @@ txn_params = {
|
||||
"checkpoint_one_in": 0,
|
||||
# pipeline write is not currnetly compatible with WritePrepared txns
|
||||
"enable_pipelined_write": 0,
|
||||
"create_shared_snapshot_one_in": 10,
|
||||
}
|
||||
|
||||
best_efforts_recovery_params = {
|
||||
|
Loading…
Reference in New Issue
Block a user