mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-30 22:47:16 +08:00
mdbx++: добавлена фиксация транзакции с получением информации о задержках.
This commit is contained in:
parent
3579496945
commit
bee7431f76
23
mdbx.h++
23
mdbx.h++
@ -3875,12 +3875,31 @@ public:
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
/// \brief Abandon all the operations of the transaction instead of saving
|
/// \brief Abandon all the operations of the transaction
|
||||||
/// them.
|
/// instead of saving ones.
|
||||||
void abort();
|
void abort();
|
||||||
|
|
||||||
/// \brief Commit all the operations of a transaction into the database.
|
/// \brief Commit all the operations of a transaction into the database.
|
||||||
void commit();
|
void commit();
|
||||||
|
|
||||||
|
using commit_latency = MDBX_commit_latency;
|
||||||
|
|
||||||
|
/// \brief Commit all the operations of a transaction into the database
|
||||||
|
/// and collect latency information.
|
||||||
|
void commit(commit_latency *);
|
||||||
|
|
||||||
|
/// \brief Commit all the operations of a transaction into the database
|
||||||
|
/// and collect latency information.
|
||||||
|
void commit(commit_latency &latency) { return commit(&latency); }
|
||||||
|
|
||||||
|
/// \brief Commit all the operations of a transaction into the database
|
||||||
|
/// and return latency information.
|
||||||
|
/// \returns latency information of commit stages.
|
||||||
|
commit_latency commit_get_latency() {
|
||||||
|
commit_latency result;
|
||||||
|
commit(&result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Unmanaged cursor.
|
/// \brief Unmanaged cursor.
|
||||||
|
@ -1424,6 +1424,15 @@ void txn_managed::commit() {
|
|||||||
MDBX_CXX20_UNLIKELY err.throw_exception();
|
MDBX_CXX20_UNLIKELY err.throw_exception();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void txn_managed::commit(commit_latency *latency) {
|
||||||
|
const error err =
|
||||||
|
static_cast<MDBX_error_t>(::mdbx_txn_commit_ex(handle_, latency));
|
||||||
|
if (MDBX_LIKELY(err.code() != MDBX_THREAD_MISMATCH))
|
||||||
|
MDBX_CXX20_LIKELY handle_ = nullptr;
|
||||||
|
if (MDBX_UNLIKELY(err.code() != MDBX_SUCCESS))
|
||||||
|
MDBX_CXX20_UNLIKELY err.throw_exception();
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
bool txn::drop_map(const char *name, bool throw_if_absent) {
|
bool txn::drop_map(const char *name, bool throw_if_absent) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user