From 4c41d3227685b92b16b8b08f7bc02f26d99b2e5c Mon Sep 17 00:00:00 2001 From: Nicholas Dudfield Date: Mon, 18 Aug 2025 12:01:39 +0700 Subject: [PATCH] use ordered ledgers_ map for faster first txn lookup --- src/ripple/app/rdb/backend/RWDBDatabase.h | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/ripple/app/rdb/backend/RWDBDatabase.h b/src/ripple/app/rdb/backend/RWDBDatabase.h index 7f335ef8c..4f97d1468 100644 --- a/src/ripple/app/rdb/backend/RWDBDatabase.h +++ b/src/ripple/app/rdb/backend/RWDBDatabase.h @@ -65,17 +65,12 @@ public: return {}; std::shared_lock lock(mutex_); - LedgerIndex minSeq = std::numeric_limits::max(); - if (transactionMap_.empty()) - return std::nullopt; - for (const auto& [_, txMeta] : transactionMap_) + for (const auto& [ledgerSeq, ledgerData] : ledgers_) { - if (txMeta.second && txMeta.second->getLgrSeq() < minSeq) - minSeq = txMeta.second->getLgrSeq(); + if (!ledgerData.transactions.empty()) + return ledgerSeq; } - return minSeq == std::numeric_limits::max() - ? std::nullopt - : std::optional(minSeq); + return std::nullopt; } std::optional