batcheval: 24.3 microbench regression in BenchmarkRefreshRange
#134420
Labels
branch-release-24.3
Used to mark GA and release blockers, technical advisories, and bugs for 24.3
C-investigation
Further steps needed to qualify. C-label will change.
T-kv
KV Team
profs.zip
Clearly the new one indeed is much slower (I think the spreadsheet says ~75%, and I verified that), but it's unclear why. The additional time seems to be spent in
iterator.SeekGE
.old
new
There's something weird about the
refresh_window=[N,N]
case. Note how[0,0]
is way slower than[0,anything-else]
. Similar, how[50,50]
is by far the slowest of the[50,*]
family, etc.The mixed-case benchmark family roughly writes 1 million (separate) keys in random order, key
i
at timestamp5ns*(1+i)
. The engine is set up with anLBaseMaxBytes
of256
to create a more interesting LSM. Then, it benchmarksRefreshRange
with a timestamp range that covers the given percentage of cases.For example,
[0,0]
translates to refreshing fromts=5ns
tots=5ns+1 logical
. It makes zero sense to me that that would take 222us per op, whereas refreshing over essentially all of the data would take around 20us.But here's the kicker, the above table is from b20c617, i.e. the "old" commit in the microbench regression. There's little point in musing about why it's gotten almost twice as bad (and it has - ~388 micros for the
[0,0]
case) if we don't understand either result in the first place.Jira issue: CRDB-44073
The text was updated successfully, but these errors were encountered: