Skip to content

Commit 721a2ca

Browse files
authored
Merge pull request #152249 from stevendanna/ssd/no-metamorph-read-transforms
kvnemesis: disable read transforms in buffered writes variants
2 parents 1b95e66 + 4fd947d commit 721a2ca

File tree

4 files changed

+17
-9
lines changed

4 files changed

+17
-9
lines changed

pkg/kv/kvclient/kvcoord/txn_interceptor_write_buffer.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var BufferedWritesEnabled = settings.RegisterBoolSetting(
4646

4747
var unsupportedInProductionBuildErr = errors.New("this option is not supported in production builds")
4848

49-
var bufferedWritesScanTransformEnabled = settings.RegisterBoolSetting(
49+
var BufferedWritesScanTransformEnabled = settings.RegisterBoolSetting(
5050
settings.ApplicationLevel,
5151
"kv.transaction.write_buffering.transformations.scans.enabled",
5252
"if enabled, locking scans and reverse scans with replicated durability are transformed to unreplicated durability",
@@ -59,7 +59,7 @@ var bufferedWritesScanTransformEnabled = settings.RegisterBoolSetting(
5959
}),
6060
)
6161

62-
var bufferedWritesGetTransformEnabled = settings.RegisterBoolSetting(
62+
var BufferedWritesGetTransformEnabled = settings.RegisterBoolSetting(
6363
settings.ApplicationLevel,
6464
"kv.transaction.write_buffering.transformations.get.enabled",
6565
"if enabled, locking get requests with replicated durability are transformed to unreplicated durability",
@@ -294,8 +294,8 @@ func (twb *txnWriteBuffer) SendLocked(
294294
// We check if scan transforms are enabled once and use that answer until the
295295
// end of SendLocked.
296296
cfg := transformConfig{
297-
transformScans: bufferedWritesScanTransformEnabled.Get(&twb.st.SV),
298-
transformGets: bufferedWritesGetTransformEnabled.Get(&twb.st.SV),
297+
transformScans: BufferedWritesScanTransformEnabled.Get(&twb.st.SV),
298+
transformGets: BufferedWritesGetTransformEnabled.Get(&twb.st.SV),
299299
}
300300

301301
if twb.batchRequiresFlush(ctx, ba, cfg) {

pkg/kv/kvclient/kvcoord/txn_interceptor_write_buffer_client_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func TestTxnCoordSenderWriteBufferingDisablesPipelining(t *testing.T) {
6161
// buffered.
6262
require.NoError(t, db.Put(ctx, "test-key-a", "hello"))
6363

64-
bufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
64+
BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
6565
BufferedWritesMaxBufferSize.Override(ctx, &st.SV, defaultBufferSize)
6666

6767
// Without write buffering
@@ -144,7 +144,7 @@ func TestTxnWriteBufferFlushedWithMaxKeysOnBatch(t *testing.T) {
144144

145145
// The bug requires that we transform Gets. Here, we disable it to prove that
146146
// this tets passes.
147-
bufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
147+
BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
148148

149149
// The locks need to actually be taken, so let's write to every key we are
150150
// going to lock.

pkg/kv/kvclient/kvcoord/txn_interceptor_write_buffer_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ func makeMockTxnWriteBuffer(
3131
) (txnWriteBuffer, *mockLockedSender, *cluster.Settings) {
3232
metrics := MakeTxnMetrics(time.Hour)
3333
st := cluster.MakeClusterSettings()
34-
bufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
35-
bufferedWritesGetTransformEnabled.Override(ctx, &st.SV, true)
34+
BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
35+
BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, true)
3636
BufferedWritesMaxBufferSize.Override(ctx, &st.SV, defaultBufferSize)
3737

3838
mockSender := &mockLockedSender{}
@@ -1733,7 +1733,7 @@ func TestTxnWriteBufferLimitsSizeOfScans(t *testing.T) {
17331733
txn := makeTxnProto()
17341734
txn.Sequence = 10
17351735

1736-
bufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
1736+
BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, true)
17371737
BufferedWritesMaxBufferSize.Override(ctx, &st.SV, tc.bufferSize)
17381738

17391739
ba := &kvpb.BatchRequest{Header: kvpb.Header{Txn: &txn}}

pkg/kv/kvnemesis/kvnemesis_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,10 @@ func TestKVNemesisMultiNode_BufferedWrites(t *testing.T) {
347347
bufferedWriteProb: 0.70,
348348
testSettings: func(ctx context.Context, st *cluster.Settings) {
349349
kvcoord.BufferedWritesEnabled.Override(ctx, &st.SV, true)
350+
// Read transforms are disabled on release-25.3 because of known issues
351+
// such as #150239 which are only fixed in 25.4+.
352+
kvcoord.BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
353+
kvcoord.BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
350354
concurrency.UnreplicatedLockReliabilityLeaseTransfer.Override(ctx, &st.SV, true)
351355
concurrency.UnreplicatedLockReliabilityMerge.Override(ctx, &st.SV, true)
352356
concurrency.UnreplicatedLockReliabilitySplit.Override(ctx, &st.SV, true)
@@ -372,6 +376,10 @@ func TestKVNemesisMultiNode_BufferedWritesNoPipelining(t *testing.T) {
372376
testSettings: func(ctx context.Context, st *cluster.Settings) {
373377
kvcoord.BufferedWritesEnabled.Override(ctx, &st.SV, true)
374378
kvcoord.PipelinedWritesEnabled.Override(ctx, &st.SV, false)
379+
// Read transforms are disabled on release-25.3 because of known issues
380+
// such as #150239 which are only fixed in 25.4+.
381+
kvcoord.BufferedWritesGetTransformEnabled.Override(ctx, &st.SV, false)
382+
kvcoord.BufferedWritesScanTransformEnabled.Override(ctx, &st.SV, false)
375383
concurrency.UnreplicatedLockReliabilityLeaseTransfer.Override(ctx, &st.SV, true)
376384
concurrency.UnreplicatedLockReliabilityMerge.Override(ctx, &st.SV, true)
377385
concurrency.UnreplicatedLockReliabilitySplit.Override(ctx, &st.SV, true)

0 commit comments

Comments
 (0)