0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-10-01 21:28:53 +02:00

ircd::db: Rename txn to iov.

This commit is contained in:
Jason Volk 2017-09-18 20:43:32 -07:00
parent fb026f58a7
commit c50461c4c6
3 changed files with 77 additions and 77 deletions

View file

@ -122,7 +122,7 @@ enum class ircd::db::pos
#include "db/row.h" #include "db/row.h"
#include "db/index.h" #include "db/index.h"
#include "db/json.h" #include "db/json.h"
#include "db/txn.h" #include "db/iov.h"
#include "db/where.h" #include "db/where.h"
#include "db/cursor.h" #include "db/cursor.h"

View file

@ -21,27 +21,27 @@
*/ */
#pragma once #pragma once
#define HAVE_IRCD_DB_TXN_H #define HAVE_IRCD_DB_IOV_H
namespace ircd::db namespace ircd::db
{ {
struct txn; struct iov;
bool until(const txn &, const std::function<bool (const delta &)> &); bool until(const iov &, const std::function<bool (const delta &)> &);
void for_each(const txn &, const std::function<void (const delta &)> &); void for_each(const iov &, const std::function<void (const delta &)> &);
std::string debug(const txn &); std::string debug(const iov &);
} }
class ircd::db::txn class ircd::db::iov
{ {
database *d {nullptr}; database *d {nullptr};
std::unique_ptr<rocksdb::WriteBatch> wb; std::unique_ptr<rocksdb::WriteBatch> wb;
public: public:
struct opts; struct opts;
struct checkpoint;
struct append; struct append;
struct handler; struct handler;
struct checkpoint;
explicit operator const rocksdb::WriteBatch &() const; explicit operator const rocksdb::WriteBatch &() const;
explicit operator const database &() const; explicit operator const database &() const;
@ -67,31 +67,31 @@ class ircd::db::txn
// clear // clear
void clear(); void clear();
txn() = default; iov() = default;
txn(database &); iov(database &);
txn(database &, const opts &); iov(database &, const opts &);
~txn() noexcept; ~iov() noexcept;
}; };
struct ircd::db::txn::checkpoint struct ircd::db::iov::append
{ {
txn &t; append(iov &, database &, const delta &);
append(iov &, column &, const column::delta &);
append(iov &, const cell::delta &);
append(iov &, const row::delta &);
append(iov &, const delta &);
append(iov &, const string_view &key, const json::iov &);
};
checkpoint(txn &); struct ircd::db::iov::checkpoint
{
iov &t;
checkpoint(iov &);
~checkpoint() noexcept; ~checkpoint() noexcept;
}; };
struct ircd::db::txn::append struct ircd::db::iov::opts
{
append(txn &, database &, const delta &);
append(txn &, column &, const column::delta &);
append(txn &, const cell::delta &);
append(txn &, const row::delta &);
append(txn &, const delta &);
append(txn &, const string_view &key, const json::iov &);
};
struct ircd::db::txn::opts
{ {
size_t reserve_bytes = 0; size_t reserve_bytes = 0;
size_t max_bytes = 0; size_t max_bytes = 0;

View file

@ -1295,10 +1295,10 @@ ircd::db::database::events::OnColumnFamilyHandleDeletionStarted(rocksdb::ColumnF
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// db/txn.h // db/iov.h
// //
struct ircd::db::txn::handler struct ircd::db::iov::handler
:rocksdb::WriteBatch::Handler :rocksdb::WriteBatch::Handler
{ {
using Status = rocksdb::Status; using Status = rocksdb::Status;
@ -1331,14 +1331,14 @@ struct ircd::db::txn::handler
}; };
std::string std::string
ircd::db::debug(const txn &t) ircd::db::debug(const iov &t)
{ {
const rocksdb::WriteBatch &wb(t); const rocksdb::WriteBatch &wb(t);
return db::debug(wb); return db::debug(wb);
} }
void void
ircd::db::for_each(const txn &t, ircd::db::for_each(const iov &t,
const std::function<void (const delta &)> &closure) const std::function<void (const delta &)> &closure)
{ {
const auto re{[&closure] const auto re{[&closure]
@ -1350,17 +1350,17 @@ ircd::db::for_each(const txn &t,
const database &d(t); const database &d(t);
const rocksdb::WriteBatch &wb{t}; const rocksdb::WriteBatch &wb{t};
txn::handler h{d, re}; iov::handler h{d, re};
wb.Iterate(&h); wb.Iterate(&h);
} }
bool bool
ircd::db::until(const txn &t, ircd::db::until(const iov &t,
const std::function<bool (const delta &)> &closure) const std::function<bool (const delta &)> &closure)
{ {
const database &d(t); const database &d(t);
const rocksdb::WriteBatch &wb{t}; const rocksdb::WriteBatch &wb{t};
txn::handler h{d, closure}; iov::handler h{d, closure};
wb.Iterate(&h); wb.Iterate(&h);
return h._continue; return h._continue;
} }
@ -1370,7 +1370,7 @@ ircd::db::until(const txn &t,
/// ///
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::PutCF(const uint32_t cfid, ircd::db::iov::handler::PutCF(const uint32_t cfid,
const Slice &key, const Slice &key,
const Slice &val) const Slice &val)
noexcept noexcept
@ -1379,7 +1379,7 @@ noexcept
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::DeleteCF(const uint32_t cfid, ircd::db::iov::handler::DeleteCF(const uint32_t cfid,
const Slice &key) const Slice &key)
noexcept noexcept
{ {
@ -1387,7 +1387,7 @@ noexcept
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::DeleteRangeCF(const uint32_t cfid, ircd::db::iov::handler::DeleteRangeCF(const uint32_t cfid,
const Slice &begin, const Slice &begin,
const Slice &end) const Slice &end)
noexcept noexcept
@ -1396,7 +1396,7 @@ noexcept
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::SingleDeleteCF(const uint32_t cfid, ircd::db::iov::handler::SingleDeleteCF(const uint32_t cfid,
const Slice &key) const Slice &key)
noexcept noexcept
{ {
@ -1404,7 +1404,7 @@ noexcept
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::MergeCF(const uint32_t cfid, ircd::db::iov::handler::MergeCF(const uint32_t cfid,
const Slice &key, const Slice &key,
const Slice &value) const Slice &value)
noexcept noexcept
@ -1413,35 +1413,35 @@ noexcept
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::MarkBeginPrepare() ircd::db::iov::handler::MarkBeginPrepare()
noexcept noexcept
{ {
return Status::OK(); return Status::OK();
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::MarkEndPrepare(const Slice &xid) ircd::db::iov::handler::MarkEndPrepare(const Slice &xid)
noexcept noexcept
{ {
return Status::OK(); return Status::OK();
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::MarkCommit(const Slice &xid) ircd::db::iov::handler::MarkCommit(const Slice &xid)
noexcept noexcept
{ {
return Status::OK(); return Status::OK();
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::MarkRollback(const Slice &xid) ircd::db::iov::handler::MarkRollback(const Slice &xid)
noexcept noexcept
{ {
return Status::OK(); return Status::OK();
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::callback(const uint32_t &cfid, ircd::db::iov::handler::callback(const uint32_t &cfid,
const op &op, const op &op,
const Slice &a, const Slice &a,
const Slice &b) const Slice &b)
@ -1461,12 +1461,12 @@ noexcept try
catch(const std::exception &e) catch(const std::exception &e)
{ {
_continue = false; _continue = false;
log::critical("txn::handler: cfid[%u]: %s", cfid, e.what()); log::critical("iov::handler: cfid[%u]: %s", cfid, e.what());
std::terminate(); std::terminate();
} }
rocksdb::Status rocksdb::Status
ircd::db::txn::handler::callback(const delta &delta) ircd::db::iov::handler::callback(const delta &delta)
noexcept try noexcept try
{ {
_continue = cb(delta); _continue = cb(delta);
@ -1479,22 +1479,22 @@ catch(const std::exception &e)
} }
bool bool
ircd::db::txn::handler::Continue() ircd::db::iov::handler::Continue()
noexcept noexcept
{ {
return _continue; return _continue;
} }
// //
// txn // iov
// //
ircd::db::txn::txn(database &d) ircd::db::iov::iov(database &d)
:txn{d, {}} :iov{d, {}}
{ {
} }
ircd::db::txn::txn(database &d, ircd::db::iov::iov(database &d,
const opts &opts) const opts &opts)
:d{&d} :d{&d}
,wb ,wb
@ -1504,20 +1504,20 @@ ircd::db::txn::txn(database &d,
{ {
} }
ircd::db::txn::~txn() ircd::db::iov::~iov()
noexcept noexcept
{ {
} }
void void
ircd::db::txn::operator()(const sopts &opts) ircd::db::iov::operator()(const sopts &opts)
{ {
assert(bool(d)); assert(bool(d));
operator()(*d, opts); operator()(*d, opts);
} }
void void
ircd::db::txn::operator()(database &d, ircd::db::iov::operator()(database &d,
const sopts &opts) const sopts &opts)
{ {
assert(bool(wb)); assert(bool(wb));
@ -1525,14 +1525,14 @@ ircd::db::txn::operator()(database &d,
} }
void void
ircd::db::txn::clear() ircd::db::iov::clear()
{ {
assert(bool(wb)); assert(bool(wb));
wb->Clear(); wb->Clear();
} }
size_t size_t
ircd::db::txn::size() ircd::db::iov::size()
const const
{ {
assert(bool(wb)); assert(bool(wb));
@ -1540,7 +1540,7 @@ const
} }
size_t size_t
ircd::db::txn::bytes() ircd::db::iov::bytes()
const const
{ {
assert(bool(wb)); assert(bool(wb));
@ -1548,7 +1548,7 @@ const
} }
bool bool
ircd::db::txn::has(const op &op) ircd::db::iov::has(const op &op)
const const
{ {
assert(bool(wb)); assert(bool(wb));
@ -1566,7 +1566,7 @@ const
} }
bool bool
ircd::db::txn::has(const op &op, ircd::db::iov::has(const op &op,
const string_view &col) const string_view &col)
const const
{ {
@ -1579,7 +1579,7 @@ const
} }
bool bool
ircd::db::txn::has(const op &op, ircd::db::iov::has(const op &op,
const string_view &col, const string_view &col,
const string_view &key) const string_view &key)
const const
@ -1594,20 +1594,20 @@ const
} }
ircd::db::delta ircd::db::delta
ircd::db::txn::at(const op &op, ircd::db::iov::at(const op &op,
const string_view &col) const string_view &col)
const const
{ {
const auto ret(get(op, col)); const auto ret(get(op, col));
if(unlikely(!std::get<2>(ret))) if(unlikely(!std::get<2>(ret)))
throw not_found("db::txn::at(%s, %s): no matching delta in transaction", throw not_found("db::iov::at(%s, %s): no matching delta in transaction",
reflect(op), reflect(op),
col); col);
return ret; return ret;
} }
ircd::db::delta ircd::db::delta
ircd::db::txn::get(const op &op, ircd::db::iov::get(const op &op,
const string_view &col) const string_view &col)
const const
{ {
@ -1628,14 +1628,14 @@ const
} }
ircd::string_view ircd::string_view
ircd::db::txn::at(const op &op, ircd::db::iov::at(const op &op,
const string_view &col, const string_view &col,
const string_view &key) const string_view &key)
const const
{ {
const auto ret(get(op, col, key)); const auto ret(get(op, col, key));
if(unlikely(!ret)) if(unlikely(!ret))
throw not_found("db::txn::at(%s, %s, %s): no matching delta in transaction", throw not_found("db::iov::at(%s, %s, %s): no matching delta in transaction",
reflect(op), reflect(op),
col, col,
key); key);
@ -1643,7 +1643,7 @@ const
} }
ircd::string_view ircd::string_view
ircd::db::txn::get(const op &op, ircd::db::iov::get(const op &op,
const string_view &col, const string_view &col,
const string_view &key) const string_view &key)
const const
@ -1665,21 +1665,21 @@ const
return ret; return ret;
} }
ircd::db::txn::operator ircd::db::iov::operator
ircd::db::database &() ircd::db::database &()
{ {
assert(bool(d)); assert(bool(d));
return *d; return *d;
} }
ircd::db::txn::operator ircd::db::iov::operator
rocksdb::WriteBatch &() rocksdb::WriteBatch &()
{ {
assert(bool(wb)); assert(bool(wb));
return *wb; return *wb;
} }
ircd::db::txn::operator ircd::db::iov::operator
const ircd::db::database &() const ircd::db::database &()
const const
{ {
@ -1687,7 +1687,7 @@ const
return *d; return *d;
} }
ircd::db::txn::operator ircd::db::iov::operator
const rocksdb::WriteBatch &() const rocksdb::WriteBatch &()
const const
{ {
@ -1699,14 +1699,14 @@ const
// Checkpoint // Checkpoint
// //
ircd::db::txn::checkpoint::checkpoint(txn &t) ircd::db::iov::checkpoint::checkpoint(iov &t)
:t{t} :t{t}
{ {
assert(bool(t.wb)); assert(bool(t.wb));
t.wb->SetSavePoint(); t.wb->SetSavePoint();
} }
ircd::db::txn::checkpoint::~checkpoint() ircd::db::iov::checkpoint::~checkpoint()
noexcept noexcept
{ {
if(likely(!std::uncaught_exception())) if(likely(!std::uncaught_exception()))
@ -1715,7 +1715,7 @@ noexcept
throw_on_error { t.wb->RollbackToSavePoint() }; throw_on_error { t.wb->RollbackToSavePoint() };
} }
ircd::db::txn::append::append(txn &t, ircd::db::iov::append::append(iov &t,
const string_view &key, const string_view &key,
const json::iov &iov) const json::iov &iov)
{ {
@ -1734,33 +1734,33 @@ ircd::db::txn::append::append(txn &t,
}); });
} }
ircd::db::txn::append::append(txn &t, ircd::db::iov::append::append(iov &t,
const delta &delta) const delta &delta)
{ {
assert(bool(t.d)); assert(bool(t.d));
append(t, *t.d, delta); append(t, *t.d, delta);
} }
ircd::db::txn::append::append(txn &t, ircd::db::iov::append::append(iov &t,
const row::delta &delta) const row::delta &delta)
{ {
assert(0); assert(0);
} }
ircd::db::txn::append::append(txn &t, ircd::db::iov::append::append(iov &t,
const cell::delta &delta) const cell::delta &delta)
{ {
db::append(*t.wb, delta); db::append(*t.wb, delta);
} }
ircd::db::txn::append::append(txn &t, ircd::db::iov::append::append(iov &t,
column &c, column &c,
const column::delta &delta) const column::delta &delta)
{ {
db::append(*t.wb, c, delta); db::append(*t.wb, c, delta);
} }
ircd::db::txn::append::append(txn &t, ircd::db::iov::append::append(iov &t,
database &d, database &d,
const delta &delta) const delta &delta)
{ {