mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-21 04:05:51 +00:00
add types to make it harder to mix up book index and key index
This commit is contained in:
@@ -105,8 +105,8 @@ writeKeyFlagLedger(
|
||||
}
|
||||
auto start = std::chrono::system_clock::now();
|
||||
|
||||
backend.writeKeys(keys, nextFlag, true);
|
||||
backend.writeKeys({zero}, nextFlag, true);
|
||||
backend.writeKeys(keys, KeyIndex{nextFlag}, true);
|
||||
backend.writeKeys({zero}, KeyIndex{nextFlag}, true);
|
||||
auto end = std::chrono::system_clock::now();
|
||||
BOOST_LOG_TRIVIAL(info)
|
||||
<< __func__
|
||||
@@ -134,8 +134,9 @@ writeBookFlagLedger(
|
||||
<< " books.size() = " << std::to_string(books.size());
|
||||
|
||||
auto start = std::chrono::system_clock::now();
|
||||
backend.writeBooks(books, nextFlag, true);
|
||||
backend.writeBooks({{zero, {zero}}}, nextFlag, true);
|
||||
backend.writeBooks(books, BookIndex{nextFlag}, true);
|
||||
backend.writeBooks({{zero, {zero}}}, BookIndex{nextFlag}, true);
|
||||
|
||||
auto end = std::chrono::system_clock::now();
|
||||
|
||||
BOOST_LOG_TRIVIAL(info)
|
||||
@@ -167,12 +168,12 @@ BackendIndexer::doBooksRepair(
|
||||
if (!sequence)
|
||||
sequence = rng->maxSequence;
|
||||
|
||||
if(sequence < rng->minSequence)
|
||||
if (sequence < rng->minSequence)
|
||||
sequence = rng->minSequence;
|
||||
|
||||
BOOST_LOG_TRIVIAL(info)
|
||||
<< __func__ << " sequence = " << std::to_string(*sequence);
|
||||
|
||||
|
||||
ripple::uint256 zero = {};
|
||||
while (true)
|
||||
{
|
||||
@@ -245,7 +246,7 @@ BackendIndexer::doKeysRepair(
|
||||
if (!sequence)
|
||||
sequence = rng->maxSequence;
|
||||
|
||||
if(sequence < rng->minSequence)
|
||||
if (sequence < rng->minSequence)
|
||||
sequence = rng->minSequence;
|
||||
|
||||
BOOST_LOG_TRIVIAL(info)
|
||||
@@ -435,30 +436,28 @@ BackendIndexer::finish(uint32_t ledgerSequence, BackendInterface const& backend)
|
||||
<< __func__
|
||||
<< " starting. sequence = " << std::to_string(ledgerSequence);
|
||||
bool isFirst = false;
|
||||
uint32_t keyIndex = getKeyIndexOfSeq(ledgerSequence);
|
||||
uint32_t bookIndex = getBookIndexOfSeq(ledgerSequence);
|
||||
auto keyIndex = getKeyIndexOfSeq(ledgerSequence);
|
||||
auto bookIndex = getBookIndexOfSeq(ledgerSequence);
|
||||
auto rng = backend.fetchLedgerRangeNoThrow();
|
||||
if (!rng || rng->minSequence == ledgerSequence)
|
||||
{
|
||||
isFirst = true;
|
||||
keyIndex = bookIndex = ledgerSequence;
|
||||
keyIndex = KeyIndex{ledgerSequence};
|
||||
bookIndex = BookIndex{ledgerSequence};
|
||||
}
|
||||
backend.writeKeys(keys, keyIndex);
|
||||
backend.writeBooks(books, bookIndex);
|
||||
if (isFirst)
|
||||
{
|
||||
// write completion record
|
||||
ripple::uint256 zero = {};
|
||||
backend.writeBooks({{zero, {zero}}}, ledgerSequence);
|
||||
backend.writeKeys({zero}, ledgerSequence);
|
||||
writeBookFlagLedgerAsync(ledgerSequence, backend);
|
||||
writeKeyFlagLedgerAsync(ledgerSequence, backend);
|
||||
|
||||
backend.writeBooks({{zero, {zero}}}, bookIndex);
|
||||
backend.writeKeys({zero}, keyIndex);
|
||||
}
|
||||
keys = {};
|
||||
books = {};
|
||||
BOOST_LOG_TRIVIAL(info)
|
||||
<< __func__
|
||||
<< " finished. sequence = " << std::to_string(ledgerSequence);
|
||||
|
||||
}
|
||||
}
|
||||
} // namespace Backend
|
||||
|
||||
Reference in New Issue
Block a user