github-actions[bot] commented on code in PR #68256:
URL: https://github.com/apache/doris/pull/68256#discussion_r4249608211
##########
cloud/test/recycler_benchmark_test.cpp:
##########
@@ -993,26 +1046,30 @@ TEST_F(RecyclerBenchmarkTest, RecycleRowsets) {
ASSERT_EQ(count_recycle_rowsets(), 0);
});
- // Recorded with 5,000 rowsets per branch. Recalibrate if the workload
changes.
+ // Bulk branches use 5,000 rowsets. Recalibrate if the workload changes.
static_assert(kRowsetsPerBranch == 5000);
const std::map<std::string, TxnKvCounts> baseline_txn_kv_counts = {
- {"compacted_empty", {.get = 5000, .put = 0, .del = 5000}},
- // First schema cache fill reads one KV in addition to the 5,000
rowset KVs.
- {"compacted_with_data/data_only", {.get = 5001, .put = 0, .del =
5000}},
- {"compacted_with_data/delete_bitmap_v1", {.get = 5000, .put = 0,
.del = 5000}},
- {"compacted_with_data/delete_bitmap_v2", {.get = 10000, .put = 0,
.del = 10000}},
- {"compacted_with_packed_data/data_only", {.get = 12500, .put =
5000, .del = 7500}},
+ {"compacted_empty", {.get = 5014, .put = 0, .del = 5000}},
+ // get = returned KVs + range-get requests (empty results count as
one request).
+ // data_only: 5000 rowset KVs + 13 scan reads + 1 schema KV + 1
schema read = 5015.
+ // v1: 5000 rowset KVs + 13 scan reads + 5000 empty bitmap reads =
10013.
+ // v2: 5000 rowset KVs + 13 scan reads + 5000 bitmap KVs + 5000
bitmap reads = 15013.
+ {"compacted_with_data/data_only", {.get = 5015, .put = 0, .del =
5000}},
Review Comment:
[P2] Keep scan pagination out of exact KV baselines
`read_txn_kv_counts()` now includes every range-get request, so these exact
totals depend on the FDB cluster's shard layout. `Transaction::get()` uses
`FDB_STREAMING_MODE_WANT_ALL`; in the pinned FDB 7.1.57 implementation, a read
can return at a shard boundary with `more=true` before filling its byte-sized
page. A shard split inside one of the assumed 13 scan pages therefore adds
requests while the same 5,000 keys and rowsets are processed correctly.
`check_txn_kv_counts()` then records a failure and `TearDown()` fails the
benchmark. Report scan requests separately from the deterministic baseline, or
isolate bitmap lookup requests before asserting the optimization. See the
pinned [FDB range-read
implementation](https://github.com/apple/foundationdb/blob/7.1.57/fdbclient/NativeAPI.actor.cpp#L4083-L4169).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]