two ledger data implementations

This commit is contained in:
CJ Cobb
2021-02-16 13:09:38 -05:00
parent 6bda1af3e6
commit 3ce651ef52
3 changed files with 153 additions and 5 deletions

View File

@@ -50,11 +50,19 @@ doLedgerData(
request.contains("binary") ? request.at("binary").as_bool() : false;
size_t limit = request.contains("limit") ? request.at("limit").as_int64()
: (binary ? 2048 : 256);
std::pair<
std::vector<CassandraFlatMapBackend::LedgerObject>,
std::optional<int64_t>>
resultsPair;
auto start = std::chrono::system_clock::now();
auto [results, returnedMarker] =
backend.doUpperBound(marker, ledger, limit);
BOOST_LOG_TRIVIAL(debug)
<< "doUpperBound returned " << results.size() << " results";
if (request.contains("version"))
{
resultsPair = backend.doUpperBound2(marker, ledger, limit);
}
else
{
resultsPair = backend.doUpperBound(marker, ledger, limit);
}
auto end = std::chrono::system_clock::now();
@@ -62,6 +70,11 @@ doLedgerData(
std::chrono::duration_cast<std::chrono::microseconds>(end - start)
.count();
boost::json::array objects;
std::vector<CassandraFlatMapBackend::LedgerObject>& results =
resultsPair.first;
std::optional<int64_t>& returnedMarker = resultsPair.second;
BOOST_LOG_TRIVIAL(debug)
<< "doUpperBound returned " << results.size() << " results";
for (auto const& [key, object] : results)
{
ripple::STLedgerEntry sle{
@@ -82,7 +95,7 @@ doLedgerData(
response["num_results"] = results.size();
response["db_time"] = time;
response["time_per_result"] = time / results.size();
return response;
}