@@ -219,7 +219,19 @@ func runFollowerReadsTest(
219
219
require .NoError (t , func () error {
220
220
db := c .Conn (ctx , l , 1 )
221
221
defer db .Close ()
222
- err := enableIsolationLevels (ctx , t , db )
222
+ err := enableClosedTsAutoTune (ctx , rng , db , t )
223
+ if err != nil && strings .Contains (err .Error (), "unknown cluster setting" ) {
224
+ // Versions v25.1 and earlier do not support these cluster settings and
225
+ // should ignore them. The cluster will continue operating normally, with
226
+ // old-version nodes ignoring the settings and newer-version nodes
227
+ // continuing to run. Auto-tuning of closed timestamps should only start
228
+ // taking effect when the entire cluster has been upgraded to v25.2.
229
+ err = nil
230
+ }
231
+ if err != nil {
232
+ return err
233
+ }
234
+ err = enableIsolationLevels (ctx , t , db )
223
235
if err != nil && strings .Contains (err .Error (), "unknown cluster setting" ) {
224
236
// v23.1 and below does not have these cluster settings. That's fine, as
225
237
// all isolation levels will be transparently promoted to "serializable".
@@ -1080,3 +1092,20 @@ func enableTenantMultiRegion(l *logger.Logger, r *rand.Rand, h *mixedversion.Hel
1080
1092
err := setTenantSetting (l , r , h , setting , true )
1081
1093
return errors .Wrapf (err , "setting %s" , setting )
1082
1094
}
1095
+
1096
+ // enableClosedTsAutoTune metamorphically enables closed timestamp auto-tuning.
1097
+ func enableClosedTsAutoTune (ctx context.Context , rng * rand.Rand , db * gosql.DB , t test.Test ) error {
1098
+ if rng .Intn (2 ) == 0 {
1099
+ for _ , cmd := range []string {
1100
+ `SET CLUSTER SETTING kv.closed_timestamp.lead_for_global_reads_auto_tune.enabled = 'true';` ,
1101
+ `SET CLUSTER SETTING kv.closed_timestamp.policy_refresh_interval = '5s';` ,
1102
+ `SET CLUSTER SETTING kv.closed_timestamp.policy_latency_refresh_interval = '4s';` ,
1103
+ } {
1104
+ if _ , err := db .ExecContext (ctx , cmd ); err != nil {
1105
+ return err
1106
+ }
1107
+ }
1108
+ t .L ().Printf ("metamorphically enabled closed timestamp auto-tuning" )
1109
+ }
1110
+ return nil
1111
+ }
0 commit comments