mirror of https://github.com/facebook/rocksdb.git
Enable all txn write policies in crash test (#6158)
Summary: Currently the default txn write policy in crash tests is WRITE_PREPARED. The patch randomly picks the write policy at the start of the crash test. Pull Request resolved: https://github.com/facebook/rocksdb/pull/6158 Test Plan: ``` make -j32 crash_test_with_txn ``` Differential Revision: D18946307 Pulled By: maysamyabandeh fbshipit-source-id: f77d7a94f99a08791ef9626da153d284bf521950
This commit is contained in:
parent
e1dfe80fe0
commit
8613ee2e94
|
@ -161,6 +161,7 @@ DECLARE_int32(range_deletion_width);
|
|||
DECLARE_uint64(rate_limiter_bytes_per_sec);
|
||||
DECLARE_bool(rate_limit_bg_reads);
|
||||
DECLARE_bool(use_txn);
|
||||
DECLARE_uint64(txn_write_policy);
|
||||
DECLARE_int32(backup_one_in);
|
||||
DECLARE_int32(checkpoint_one_in);
|
||||
DECLARE_int32(ingest_external_file_one_in);
|
||||
|
|
|
@ -371,6 +371,11 @@ DEFINE_bool(use_txn, false,
|
|||
"Use TransactionDB. Currently the default write policy is "
|
||||
"TxnDBWritePolicy::WRITE_PREPARED");
|
||||
|
||||
DEFINE_uint64(txn_write_policy, 0,
|
||||
"The transaction write policy. Default is "
|
||||
"TxnDBWritePolicy::WRITE_COMMITTED. Note that this should not be "
|
||||
"changed accross crashes.");
|
||||
|
||||
DEFINE_int32(backup_one_in, 0,
|
||||
"If non-zero, then CreateNewBackup() will be called once for "
|
||||
"every N operations on average. 0 indicates CreateNewBackup() "
|
||||
|
|
|
@ -1671,8 +1671,9 @@ void StressTest::Open() {
|
|||
} else {
|
||||
#ifndef ROCKSDB_LITE
|
||||
TransactionDBOptions txn_db_options;
|
||||
// For the moment it is sufficient to test WRITE_PREPARED policy
|
||||
txn_db_options.write_policy = TxnDBWritePolicy::WRITE_PREPARED;
|
||||
assert(FLAGS_txn_write_policy <= TxnDBWritePolicy::WRITE_UNPREPARED);
|
||||
txn_db_options.write_policy =
|
||||
static_cast<TxnDBWritePolicy>(FLAGS_txn_write_policy);
|
||||
s = TransactionDB::Open(options_, txn_db_options, FLAGS_db,
|
||||
cf_descriptors, &column_families_, &txn_db_);
|
||||
db_ = txn_db_;
|
||||
|
|
|
@ -25,9 +25,7 @@ class TransactionDBMutexFactory;
|
|||
|
||||
enum TxnDBWritePolicy {
|
||||
WRITE_COMMITTED = 0, // write only the committed data
|
||||
// TODO(myabandeh): Not implemented yet
|
||||
WRITE_PREPARED, // write data after the prepare phase of 2pc
|
||||
// TODO(myabandeh): Not implemented yet
|
||||
WRITE_UNPREPARED // write data before the prepare phase of 2pc
|
||||
};
|
||||
|
||||
|
|
|
@ -159,6 +159,8 @@ cf_consistency_params = {
|
|||
|
||||
txn_params = {
|
||||
"use_txn" : 1,
|
||||
# Avoid lambda to set it once for the entire test
|
||||
"txn_write_policy": random.randint(0, 2),
|
||||
"disable_wal": 0,
|
||||
# OpenReadOnly after checkpoint is not currnetly compatible with WritePrepared txns
|
||||
"checkpoint_one_in": 0,
|
||||
|
|
Loading…
Reference in New Issue