13#include "common/sys/rc.h"
14#include "common/lang/string_view.h"
15#include "common/lang/string.h"
16#include "oblsm/include/ob_lsm_iterator.h"
17#include "oblsm/include/ob_lsm_options.h"
18#include "oblsm/include/ob_lsm.h"
19#include "oblsm/memtable/ob_skiplist.h"
20#include "oblsm/util/ob_arena.h"
21#include "oblsm/util/ob_coding.h"
22#include "common/lang/map.h"
57 RC get(
const string_view &key,
string *value);
62 RC
put(
const string_view &key,
const string_view &value);
70 RC
remove(
const string_view &key);
105 [[maybe_unused]] uint64_t
ts_ = 0;
Abstract class for iterating over key-value pairs in an LSM-Tree.
Definition: ob_lsm_iterator.h:41
A class representing a transaction in oblsm.
Definition: ob_lsm_transaction.h:36
RC commit()
Commits the transaction, persisting all transaction changes to the database.
Definition: ob_lsm_transaction.cpp:53
ObLsmIterator * new_iterator(ObLsmReadOptions options)
Definition: ob_lsm_transaction.cpp:51
uint64_t ts_
The transaction's unique timestamp.
Definition: ob_lsm_transaction.h:105
map< string, string > inner_store_
In-memory store for transactional changes.
Definition: ob_lsm_transaction.h:114
RC put(const string_view &key, const string_view &value)
Adds or updates a key-value pair within the transaction's in-memory store.
Definition: ob_lsm_transaction.cpp:47
RC remove(const string_view &key)
Removes a key from the database within the transaction's scope.
Definition: ob_lsm_transaction.cpp:49
RC rollback()
Rollback the transaction, discarding all uncommitted changes.
Definition: ob_lsm_transaction.cpp:55
ObLsm * db_
Pointer to the associated ObLsm database.
Definition: ob_lsm_transaction.h:99
ObLsm is a key-value storage engine for educational purpose. ObLsm learned a lot about design from le...
Definition: ob_lsm.h:29
An iterator for traversing the transaction's in-memory store
Definition: ob_lsm_transaction.h:122
Definition: ob_lsm_options.h:48