rippled
|
Public Member Functions | |
NuDBBackend (size_t keyBytes, Section const &keyValues, std::size_t burstSize, Scheduler &scheduler, beast::Journal journal) | |
NuDBBackend (size_t keyBytes, Section const &keyValues, std::size_t burstSize, Scheduler &scheduler, nudb::context &context, beast::Journal journal) | |
~NuDBBackend () override | |
std::string | getName () override |
Get the human-readable name of this backend. More... | |
void | open (bool createIfMissing, uint64_t appType, uint64_t uid, uint64_t salt) override |
Open the backend. More... | |
bool | isOpen () override |
Returns true is the database is open. More... | |
void | open (bool createIfMissing) override |
Open the backend. More... | |
void | close () override |
Close the backend. More... | |
Status | fetch (void const *key, std::shared_ptr< NodeObject > *pno) override |
Fetch a single object. More... | |
std::pair< std::vector< std::shared_ptr< NodeObject > >, Status > | fetchBatch (std::vector< uint256 const * > const &hashes) override |
Fetch a batch synchronously. More... | |
void | do_insert (std::shared_ptr< NodeObject > const &no) |
void | store (std::shared_ptr< NodeObject > const &no) override |
Store a single object. More... | |
void | storeBatch (Batch const &batch) override |
Store a group of objects. More... | |
void | sync () override |
void | for_each (std::function< void(std::shared_ptr< NodeObject >)> f) override |
Visit every object in the database This is usually called during import. More... | |
int | getWriteLoad () override |
Estimate the number of write operations pending. More... | |
void | setDeletePath () override |
Remove contents on disk upon destruction. More... | |
void | verify () override |
Perform consistency checks on database. More... | |
int | fdRequired () const override |
Returns the number of file descriptors the backend expects to need. More... | |
virtual std::optional< Counters< std::uint64_t > > | counters () const |
Returns read and write stats. More... | |
Public Attributes | |
const beast::Journal | j_ |
const size_t | keyBytes_ |
const std::size_t | burstSize_ |
const std::string | name_ |
nudb::store | db_ |
std::atomic< bool > | deletePath_ |
Scheduler & | scheduler_ |
Static Public Attributes | |
static constexpr std::uint64_t | currentType = 1 |
static constexpr std::uint64_t | deterministicMask = 0xFFFFFFFF00000000ull |
static constexpr std::uint64_t | deterministicType = 0x5348524400000000ull |
Definition at line 38 of file NuDBFactory.cpp.
ripple::NodeStore::NuDBBackend::NuDBBackend | ( | size_t | keyBytes, |
Section const & | keyValues, | ||
std::size_t | burstSize, | ||
Scheduler & | scheduler, | ||
beast::Journal | journal | ||
) |
Definition at line 55 of file NuDBFactory.cpp.
ripple::NodeStore::NuDBBackend::NuDBBackend | ( | size_t | keyBytes, |
Section const & | keyValues, | ||
std::size_t | burstSize, | ||
Scheduler & | scheduler, | ||
nudb::context & | context, | ||
beast::Journal | journal | ||
) |
Definition at line 73 of file NuDBFactory.cpp.
|
override |
Definition at line 93 of file NuDBFactory.cpp.
|
overridevirtual |
Get the human-readable name of this backend.
This is used for diagnostic output.
Implements ripple::NodeStore::Backend.
Definition at line 108 of file NuDBFactory.cpp.
|
overridevirtual |
Open the backend.
createIfMissing | Create the database files if necessary. |
appType | Deterministic appType used to create a backend. |
uid | Deterministic uid used to create a backend. |
salt | Deterministic salt used to create a backend. |
std::runtime_error | is function is called not for NuDB backend. |
Old value currentType is accepted for appnum in traditional databases, new value is used for deterministic shard databases. New 64-bit value is constructed from fixed and random parts. Fixed part is bounded by bitmask deterministicMask, and the value of fixed part is deterministicType. Random part depends on the contents of the shard and may be any. The contents of appnum field should match either old or new rule.
Reimplemented from ripple::NodeStore::Backend.
Definition at line 114 of file NuDBFactory.cpp.
|
overridevirtual |
Returns true is the database is open.
Implements ripple::NodeStore::Backend.
Definition at line 167 of file NuDBFactory.cpp.
|
overridevirtual |
Open the backend.
createIfMissing | Create the database files if necessary. This allows the caller to catch exceptions. |
Implements ripple::NodeStore::Backend.
Definition at line 173 of file NuDBFactory.cpp.
|
overridevirtual |
Close the backend.
This allows the caller to catch exceptions.
Implements ripple::NodeStore::Backend.
Definition at line 179 of file NuDBFactory.cpp.
|
overridevirtual |
Fetch a single object.
If the object is not found or an error is encountered, the result will indicate the condition.
key | A pointer to the key data. |
pObject | [out] The created object if successful. |
Implements ripple::NodeStore::Backend.
Definition at line 205 of file NuDBFactory.cpp.
|
overridevirtual |
Fetch a batch synchronously.
Implements ripple::NodeStore::Backend.
Definition at line 233 of file NuDBFactory.cpp.
void ripple::NodeStore::NuDBBackend::do_insert | ( | std::shared_ptr< NodeObject > const & | no | ) |
Definition at line 251 of file NuDBFactory.cpp.
|
overridevirtual |
Store a single object.
Depending on the implementation this may happen immediately or deferred using a scheduled task.
object | The object to store. |
Implements ripple::NodeStore::Backend.
Definition at line 263 of file NuDBFactory.cpp.
|
overridevirtual |
Store a group of objects.
Implements ripple::NodeStore::Backend.
Definition at line 275 of file NuDBFactory.cpp.
|
overridevirtual |
Implements ripple::NodeStore::Backend.
Definition at line 288 of file NuDBFactory.cpp.
|
overridevirtual |
Visit every object in the database This is usually called during import.
Implements ripple::NodeStore::Backend.
Definition at line 293 of file NuDBFactory.cpp.
|
overridevirtual |
Estimate the number of write operations pending.
Implements ripple::NodeStore::Backend.
Definition at line 330 of file NuDBFactory.cpp.
|
overridevirtual |
Remove contents on disk upon destruction.
Implements ripple::NodeStore::Backend.
Definition at line 336 of file NuDBFactory.cpp.
|
overridevirtual |
Perform consistency checks on database.
This method is implemented only by NuDBBackend. It is not yet called anywhere, but it might be a good idea to one day call it at startup to avert a crash.
Reimplemented from ripple::NodeStore::Backend.
Definition at line 342 of file NuDBFactory.cpp.
|
overridevirtual |
Returns the number of file descriptors the backend expects to need.
Implements ripple::NodeStore::Backend.
Definition at line 361 of file NuDBFactory.cpp.
|
virtualinherited |
|
staticconstexpr |
Definition at line 41 of file NuDBFactory.cpp.
|
staticconstexpr |
Definition at line 42 of file NuDBFactory.cpp.
|
staticconstexpr |
Definition at line 45 of file NuDBFactory.cpp.
const beast::Journal ripple::NodeStore::NuDBBackend::j_ |
Definition at line 47 of file NuDBFactory.cpp.
const size_t ripple::NodeStore::NuDBBackend::keyBytes_ |
Definition at line 48 of file NuDBFactory.cpp.
const std::size_t ripple::NodeStore::NuDBBackend::burstSize_ |
Definition at line 49 of file NuDBFactory.cpp.
const std::string ripple::NodeStore::NuDBBackend::name_ |
Definition at line 50 of file NuDBFactory.cpp.
nudb::store ripple::NodeStore::NuDBBackend::db_ |
Definition at line 51 of file NuDBFactory.cpp.
std::atomic<bool> ripple::NodeStore::NuDBBackend::deletePath_ |
Definition at line 52 of file NuDBFactory.cpp.
Scheduler& ripple::NodeStore::NuDBBackend::scheduler_ |
Definition at line 53 of file NuDBFactory.cpp.