New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
storage: 24.1 microbenchmark regressions #123236
Comments
Looking at allocations for
The
The
Looks like the new ones are the |
Passing in the Batch.refData func into (wal.Writer).WriteRecord forced an allocation for every committed batch. This commit defines a new wal.RefCount interface implemented by Batch to avoid the allocation. Informs cockroachdb/cockroach#123236.
Passing in the Batch.refData func into (wal.Writer).WriteRecord forced an allocation for every committed batch. This commit defines a new wal.RefCount interface implemented by Batch to avoid the allocation. Informs cockroachdb/cockroach#123236.
Passing in the Batch.refData func into (wal.Writer).WriteRecord forced an allocation for every committed batch. This commit defines a new wal.RefCount interface implemented by Batch to avoid the allocation. Informs cockroachdb/cockroach#123236.
Passing in the Batch.refData func into (wal.Writer).WriteRecord forced an allocation for every committed batch. This commit defines a new wal.RefCount interface implemented by Batch to avoid the allocation. Informs cockroachdb/cockroach#123236.
Passing in the Batch.refData func into (wal.Writer).WriteRecord forced an allocation for every committed batch. This commit defines a new wal.RefCount interface implemented by Batch to avoid the allocation. Informs cockroachdb/cockroach#123236.
Looking at MVCCIncrementalIterator/ts=480 alloc_objects: 23.2:
24.1:
Is this because this benchmark creates a lot of obsolete versions and now began to default to using value blocks, where previously it did not? |
|
@sumeerbhola Is it true that we could refactor this so that either multiple iterators use the same
|
The EncodeMVCCValue regression is from e817d29 (cc @stevendanna):
I'm not sure we care. I don't think EncodeMVCCValue is ever prominent in CPU profiles. |
Why would this change for v24.1?
yes, but then we need a place to cache these
Currently the Coming back to your idea, I think a similar problem occurs there. We can give |
I think it was previously gated behind the value blocks cluster setting for older cluster versions, and required a current cluster version for the on-by-default behavior. I suspect the benchmark wasn't defaulting to the newest possible cluster version. |
MVCCBlindPut_Pebble/valueSize=10000
MVCCIncrementalIterator/ts=480
EncodeMVCCValue/header=empty/
MVCCPut_Pebble/batch=false/valueSize=1000/versions=10
https://docs.google.com/spreadsheets/d/1-Odc6JfiseZ_BHGU0_L3K-w1AI7coNukap2_wTUhF3A/edit#gid=5
Jira issue: CRDB-38253
The text was updated successfully, but these errors were encountered: