github-actions[bot] commented on code in PR #68622:
URL: https://github.com/apache/doris/pull/68622#discussion_r4213888002
##########
cloud/test/recycler_benchmark_test.cpp:
##########
@@ -1012,57 +993,37 @@ TEST_F(RecyclerBenchmarkTest, RecycleRowsets) {
ASSERT_EQ(count_recycle_rowsets(), 0);
});
- // Recorded with 10,000 rowsets per branch. Recalibrate if the workload
changes.
- static_assert(kRowsetsPerBranch == 10000);
- const std::map<std::string, double> baseline_elapsed_ms = {
- {"compacted_empty", 794.18},
- {"compacted_with_data/data_only", 2285.80},
- {"compacted_with_data/delete_bitmap_v1", 2461.84},
- {"compacted_with_data/delete_bitmap_v2", 2726.75},
- {"compacted_with_packed_data/data_only", 8583.32},
- {"compacted_with_packed_data/delete_bitmap_v1", 9315.59},
- {"compacted_with_packed_data/delete_bitmap_v2", 8948.54},
- {"compacted_without_schema", 3924.04},
- {"legacy_empty_resource", 945.75},
- {"legacy_with_resource", 6718.37},
- {"mixed", 35178.52},
- {"prepare_abort", 16465.44},
- {"prepare_direct", 5360.28},
- {"prepare_mark", 7039.65},
- };
+ // Recorded with 5,000 rowsets per branch. Recalibrate if the workload
changes.
+ static_assert(kRowsetsPerBranch == 5000);
const std::map<std::string, TxnKvCounts> baseline_txn_kv_counts = {
- {"compacted_empty", {.get = 10000, .put = 0, .del = 10000}},
- {"compacted_with_data/data_only", {.get = 10001, .put = 0, .del =
10000}},
- {"compacted_with_data/delete_bitmap_v1", {.get = 10000, .put = 0,
.del = 10000}},
- {"compacted_with_data/delete_bitmap_v2", {.get = 20000, .put = 0,
.del = 20000}},
- {"compacted_with_packed_data/data_only", {.get = 25000, .put =
10000, .del = 15000}},
Review Comment:
[P2] Do not require exactly one schema-cache fetch here. The preceding
missing-schema case does not fill the cache, and `InvertedIndexIdCache::get`
releases its mutex before fetching this first present schema. Separate
scan-page workers can both miss before either inserts, making normalized `get`
at least 5,002 even when all rowsets recycle successfully. This exact
comparison then fails the test. Prime the cache before measuring or separate
deterministic rowset reads from concurrent cache-fill reads.
##########
cloud/test/recycler_benchmark_test.cpp:
##########
@@ -1012,57 +993,37 @@ TEST_F(RecyclerBenchmarkTest, RecycleRowsets) {
ASSERT_EQ(count_recycle_rowsets(), 0);
});
- // Recorded with 10,000 rowsets per branch. Recalibrate if the workload
changes.
- static_assert(kRowsetsPerBranch == 10000);
- const std::map<std::string, double> baseline_elapsed_ms = {
- {"compacted_empty", 794.18},
- {"compacted_with_data/data_only", 2285.80},
- {"compacted_with_data/delete_bitmap_v1", 2461.84},
- {"compacted_with_data/delete_bitmap_v2", 2726.75},
- {"compacted_with_packed_data/data_only", 8583.32},
- {"compacted_with_packed_data/delete_bitmap_v1", 9315.59},
- {"compacted_with_packed_data/delete_bitmap_v2", 8948.54},
- {"compacted_without_schema", 3924.04},
- {"legacy_empty_resource", 945.75},
- {"legacy_with_resource", 6718.37},
- {"mixed", 35178.52},
- {"prepare_abort", 16465.44},
- {"prepare_direct", 5360.28},
- {"prepare_mark", 7039.65},
- };
+ // Recorded with 5,000 rowsets per branch. Recalibrate if the workload
changes.
+ static_assert(kRowsetsPerBranch == 5000);
const std::map<std::string, TxnKvCounts> baseline_txn_kv_counts = {
- {"compacted_empty", {.get = 10000, .put = 0, .del = 10000}},
- {"compacted_with_data/data_only", {.get = 10001, .put = 0, .del =
10000}},
- {"compacted_with_data/delete_bitmap_v1", {.get = 10000, .put = 0,
.del = 10000}},
- {"compacted_with_data/delete_bitmap_v2", {.get = 20000, .put = 0,
.del = 20000}},
- {"compacted_with_packed_data/data_only", {.get = 25000, .put =
10000, .del = 15000}},
+ {"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}},
Review Comment:
[P2] Allow successful packed-file conflict retries in these baselines. The
two rowsets for a packed file can run in separate scan-page workers; if both
ref-count transactions read the same packed KV, one can conflict on commit
after its `get` and `put` have already been counted. Its retry can succeed and
remove every packed-file KV, yet this exact baseline (and the V1/V2 variants)
fails. Check deterministic work separately from retry overhead or control the
schedule.
--
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]