|
| BasicCassandraBackend (SettingsProviderType settingsProvider, bool readOnly) |
| Create a new cassandra/scylla backend instance.
|
|
TransactionsAndCursor | fetchAccountTransactions (ripple::AccountID const &account, std::uint32_t const limit, bool forward, std::optional< TransactionsCursor > const &cursorIn, boost::asio::yield_context yield) const override |
| Fetches all transactions for a specific account.
|
|
void | waitForWritesToFinish () override |
| Wait for all pending writes to finish.
|
|
bool | doFinishWrites () override |
| The implementation should wait for all pending writes to finish.
|
|
void | writeLedger (ripple::LedgerHeader const &ledgerHeader, std::string &&blob) override |
| Writes to a specific ledger.
|
|
std::optional< std::uint32_t > | fetchLatestLedgerSequence (boost::asio::yield_context yield) const override |
| Fetches the latest ledger sequence.
|
|
std::optional< ripple::LedgerHeader > | fetchLedgerBySequence (std::uint32_t const sequence, boost::asio::yield_context yield) const override |
| Fetches a specific ledger by sequence number.
|
|
std::optional< ripple::LedgerHeader > | fetchLedgerByHash (ripple::uint256 const &hash, boost::asio::yield_context yield) const override |
| Fetches a specific ledger by hash.
|
|
std::optional< LedgerRange > | hardFetchLedgerRange (boost::asio::yield_context yield) const override |
| Fetches the ledger range from DB.
|
|
std::vector< TransactionAndMetadata > | fetchAllTransactionsInLedger (std::uint32_t const ledgerSequence, boost::asio::yield_context yield) const override |
| Fetches all transactions from a specific ledger.
|
|
std::vector< ripple::uint256 > | fetchAllTransactionHashesInLedger (std::uint32_t const ledgerSequence, boost::asio::yield_context yield) const override |
| Fetches all transaction hashes from a specific ledger.
|
|
std::optional< NFT > | fetchNFT (ripple::uint256 const &tokenID, std::uint32_t const ledgerSequence, boost::asio::yield_context yield) const override |
| Fetches a specific NFT.
|
|
TransactionsAndCursor | fetchNFTTransactions (ripple::uint256 const &tokenID, std::uint32_t const limit, bool const forward, std::optional< TransactionsCursor > const &cursorIn, boost::asio::yield_context yield) const override |
| Fetches all transactions for a specific NFT.
|
|
NFTsAndCursor | fetchNFTsByIssuer (ripple::AccountID const &issuer, std::optional< std::uint32_t > const &taxon, std::uint32_t const ledgerSequence, std::uint32_t const limit, std::optional< ripple::uint256 > const &cursorIn, boost::asio::yield_context yield) const override |
| Fetches all NFTs issued by a given address.
|
|
MPTHoldersAndCursor | fetchMPTHolders (ripple::uint192 const &mptID, std::uint32_t const limit, std::optional< ripple::AccountID > const &cursorIn, std::uint32_t const ledgerSequence, boost::asio::yield_context yield) const override |
| Fetches all holders' balances for a MPTIssuanceID.
|
|
std::optional< Blob > | doFetchLedgerObject (ripple::uint256 const &key, std::uint32_t const sequence, boost::asio::yield_context yield) const override |
| The database-specific implementation for fetching a ledger object.
|
|
std::optional< std::uint32_t > | doFetchLedgerObjectSeq (ripple::uint256 const &key, std::uint32_t const sequence, boost::asio::yield_context yield) const override |
| The database-specific implementation for fetching a ledger object sequence.
|
|
std::optional< TransactionAndMetadata > | fetchTransaction (ripple::uint256 const &hash, boost::asio::yield_context yield) const override |
| Fetches a specific transaction.
|
|
std::optional< ripple::uint256 > | doFetchSuccessorKey (ripple::uint256 key, std::uint32_t const ledgerSequence, boost::asio::yield_context yield) const override |
| Database-specific implementation of fetching the successor key.
|
|
std::vector< TransactionAndMetadata > | fetchTransactions (std::vector< ripple::uint256 > const &hashes, boost::asio::yield_context yield) const override |
| Fetches multiple transactions.
|
|
std::vector< Blob > | doFetchLedgerObjects (std::vector< ripple::uint256 > const &keys, std::uint32_t const sequence, boost::asio::yield_context yield) const override |
| The database-specific implementation for fetching ledger objects.
|
|
std::vector< ripple::uint256 > | fetchAccountRoots (std::uint32_t number, std::uint32_t pageSize, std::uint32_t seq, boost::asio::yield_context yield) const override |
| Fetch the specified number of account root object indexes by page, the accounts need to exist for seq.
|
|
std::vector< LedgerObject > | fetchLedgerDiff (std::uint32_t const ledgerSequence, boost::asio::yield_context yield) const override |
| Returns the difference between ledgers.
|
|
std::optional< std::string > | fetchMigratorStatus (std::string const &migratorName, boost::asio::yield_context yield) const override |
| Fetches the status of migrator by name.
|
|
void | doWriteLedgerObject (std::string &&key, std::uint32_t const seq, std::string &&blob) override |
| Writes a ledger object to the database.
|
|
void | writeSuccessor (std::string &&key, std::uint32_t const seq, std::string &&successor) override |
| Write a new successor.
|
|
void | writeAccountTransactions (std::vector< AccountTransactionsData > data) override |
| Write a new set of account transactions.
|
|
void | writeNFTTransactions (std::vector< NFTTransactionsData > const &data) override |
| Write NFTs transactions.
|
|
void | writeTransaction (std::string &&hash, std::uint32_t const seq, std::uint32_t const date, std::string &&transaction, std::string &&metadata) override |
| Writes a new transaction.
|
|
void | writeNFTs (std::vector< NFTsData > const &data) override |
| Writes NFTs to the database.
|
|
void | writeMPTHolders (std::vector< MPTHolderData > const &data) override |
| Write accounts that started holding onto a MPT.
|
|
void | startWrites () const override |
| Starts a write transaction with the DB. No-op for cassandra.
|
|
void | writeMigratorStatus (std::string const &migratorName, std::string const &status) override |
| Mark the migration status of a migrator as Migrated in the database.
|
|
bool | isTooBusy () const override |
|
boost::json::object | stats () const override |
|
LedgerCache const & | cache () const |
|
LedgerCache & | cache () |
|
void | setCorruptionDetector (etl::CorruptionDetector< LedgerCache > detector) |
| Sets the corruption detector.
|
|
std::optional< LedgerRange > | fetchLedgerRange () const |
| Fetch the current ledger range.
|
|
void | updateRange (uint32_t newMax) |
| Updates the range of sequences that are stored in the DB.
|
|
void | setRange (uint32_t min, uint32_t max, bool force=false) |
| Sets the range of sequences that are stored in the DB.
|
|
std::optional< ripple::Fees > | fetchFees (std::uint32_t seq, boost::asio::yield_context yield) const |
| Fetch the fees from a specific ledger sequence.
|
|
std::optional< Blob > | fetchLedgerObject (ripple::uint256 const &key, std::uint32_t sequence, boost::asio::yield_context yield) const |
| Fetches a specific ledger object.
|
|
std::optional< std::uint32_t > | fetchLedgerObjectSeq (ripple::uint256 const &key, std::uint32_t sequence, boost::asio::yield_context yield) const |
| Fetches a specific ledger object sequence.
|
|
std::vector< Blob > | fetchLedgerObjects (std::vector< ripple::uint256 > const &keys, std::uint32_t sequence, boost::asio::yield_context yield) const |
| Fetches all ledger objects by their keys.
|
|
LedgerPage | fetchLedgerPage (std::optional< ripple::uint256 > const &cursor, std::uint32_t ledgerSequence, std::uint32_t limit, bool outOfOrder, boost::asio::yield_context yield) |
| Fetches a page of ledger objects, ordered by key/index.
|
|
std::optional< LedgerObject > | fetchSuccessorObject (ripple::uint256 key, std::uint32_t ledgerSequence, boost::asio::yield_context yield) const |
| Fetches the successor object.
|
|
std::optional< ripple::uint256 > | fetchSuccessorKey (ripple::uint256 key, std::uint32_t ledgerSequence, boost::asio::yield_context yield) const |
| Fetches the successor key.
|
|
BookOffersPage | fetchBookOffers (ripple::uint256 const &book, std::uint32_t ledgerSequence, std::uint32_t limit, boost::asio::yield_context yield) const |
| Fetches book offers.
|
|
std::optional< LedgerRange > | hardFetchLedgerRange () const |
| Synchronously fetches the ledger range from DB.
|
|
std::optional< LedgerRange > | hardFetchLedgerRangeNoThrow () const |
| Fetches the ledger range from DB retrying until no DatabaseTimeout is thrown.
|
|
virtual void | writeLedgerObject (std::string &&key, std::uint32_t seq, std::string &&blob) |
| Writes a new ledger object.
|
|
bool | finishWrites (std::uint32_t ledgerSequence) |
| Tells database we finished writing all data for a specific ledger.
|
|
template<SomeSettingsProvider SettingsProviderType, SomeExecutionStrategy ExecutionStrategyType>
class data::cassandra::BasicCassandraBackend< SettingsProviderType, ExecutionStrategyType >
Implements BackendInterface for Cassandra/ScyllaDB.
Note: This is a safer and more correct rewrite of the original implementation of the backend.
- Template Parameters
-
SettingsProviderType | The settings provider type to use |
ExecutionStrategyType | The execution strategy type to use |