c3d5c4d38a
Summary: This patch refactors TransactionImpl by separating the logic for pessimistic concurrency control from the implementation of how to write the data to rocksdb. The existing implementation is named WriteCommittedTxnImpl as it writes committed data to the db. A template named WritePreparedTxnImpl is also added which will be later completed to provide a an alternative implementation. Closes https://github.com/facebook/rocksdb/pull/2676 Differential Revision: D5549998 Pulled By: maysamyabandeh fbshipit-source-id: 16298e86b43ca4849324c1f35c731913c6d17bec
66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
|
|
#ifndef ROCKSDB_LITE
|
|
|
|
#include "utilities/transactions/write_prepared_transaction_impl.h"
|
|
|
|
#include <map>
|
|
#include <set>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "db/column_family.h"
|
|
#include "db/db_impl.h"
|
|
#include "rocksdb/comparator.h"
|
|
#include "rocksdb/db.h"
|
|
#include "rocksdb/snapshot.h"
|
|
#include "rocksdb/status.h"
|
|
#include "rocksdb/utilities/transaction_db.h"
|
|
#include "util/string_util.h"
|
|
#include "util/sync_point.h"
|
|
#include "utilities/transactions/transaction_db_impl.h"
|
|
#include "utilities/transactions/transaction_impl.h"
|
|
#include "utilities/transactions/transaction_util.h"
|
|
|
|
namespace rocksdb {
|
|
|
|
struct WriteOptions;
|
|
|
|
WritePreparedTxnImpl::WritePreparedTxnImpl(
|
|
TransactionDB* txn_db, const WriteOptions& write_options,
|
|
const TransactionOptions& txn_options)
|
|
: PessimisticTxn(txn_db, write_options, txn_options) {
|
|
PessimisticTxn::Initialize(txn_options);
|
|
}
|
|
|
|
Status WritePreparedTxnImpl::CommitBatch(WriteBatch* batch) {
|
|
// TODO(myabandeh) Implement this
|
|
throw std::runtime_error("CommitBatch not Implemented");
|
|
return Status::OK();
|
|
}
|
|
|
|
Status WritePreparedTxnImpl::Prepare() {
|
|
// TODO(myabandeh) Implement this
|
|
throw std::runtime_error("Prepare not Implemented");
|
|
return Status::OK();
|
|
}
|
|
|
|
Status WritePreparedTxnImpl::Commit() {
|
|
// TODO(myabandeh) Implement this
|
|
throw std::runtime_error("Commit not Implemented");
|
|
return Status::OK();
|
|
}
|
|
|
|
Status WritePreparedTxnImpl::Rollback() {
|
|
// TODO(myabandeh) Implement this
|
|
throw std::runtime_error("Rollback not Implemented");
|
|
return Status::OK();
|
|
}
|
|
|
|
} // namespace rocksdb
|
|
|
|
#endif // ROCKSDB_LITE
|