Skip to content

Commit 84bab66

Browse files
authored
Merge pull request #154478 from aerfrei/remove-per-table-pts-25.4
release-25.4: changefeedccl: force-disable per-table PTS
2 parents a537b0e + 9da8496 commit 84bab66

File tree

6 files changed

+16
-35
lines changed

6 files changed

+16
-35
lines changed

pkg/ccl/changefeedccl/changefeed_dist.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,8 @@ func makePlan(
461461
var progressConfig *execinfrapb.ChangefeedProgressConfig
462462
if execCtx.ExecCfg().Settings.Version.IsActive(ctx, clusterversion.V25_4) {
463463
perTableTrackingEnabled := changefeedbase.TrackPerTableProgress.Get(sv)
464-
perTableProtectedTimestampsEnabled := changefeedbase.PerTableProtectedTimestamps.Get(sv)
464+
// In 25.4 we are hard disabling per table protected timestamps.
465+
perTableProtectedTimestampsEnabled := false
465466
progressConfig = &execinfrapb.ChangefeedProgressConfig{
466467
PerTableTracking: perTableTrackingEnabled,
467468
// If the per table pts flag was turned on between changefeed creation and now,

pkg/ccl/changefeedccl/changefeed_stmt.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@ func changefeedPlanHook(
340340

341341
// We do not yet have the progress config here, so we need to check the settings directly.
342342
perTableTrackingEnabled := changefeedbase.TrackPerTableProgress.Get(&p.ExecCfg().Settings.SV)
343-
perTableProtectedTimestampsEnabled := changefeedbase.PerTableProtectedTimestamps.Get(&p.ExecCfg().Settings.SV)
343+
// In 25.4 we are hard disabling per table protected timestamps.
344+
perTableProtectedTimestampsEnabled := false
344345
usingPerTablePTS := perTableTrackingEnabled && perTableProtectedTimestampsEnabled
345346
if usingPerTablePTS {
346347
protectedTimestampRecords := make(map[descpb.ID]uuid.UUID)

pkg/ccl/changefeedccl/changefeed_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12065,7 +12065,9 @@ WITH resolved='10ms', min_checkpoint_frequency='10ms', no_initial_scan`
1206512065
require.NoError(t, err)
1206612066
return ts
1206712067
}
12068-
perTablePTSEnabled := changefeedbase.PerTableProtectedTimestamps.Get(&s.Server.ClusterSettings().SV)
12068+
12069+
// In 25.4 we are hard disabling per table protected timestamps.
12070+
perTablePTSEnabled := false
1206912071
perTableProgressEnabled := changefeedbase.TrackPerTableProgress.Get(&s.Server.ClusterSettings().SV)
1207012072
getPTS := func() hlc.Timestamp {
1207112073
if perTablePTSEnabled && perTableProgressEnabled {

pkg/ccl/changefeedccl/changefeedbase/settings.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -215,15 +215,6 @@ var ProtectTimestampLag = settings.RegisterDurationSetting(
215215
10*time.Minute,
216216
settings.PositiveDuration)
217217

218-
// PerTableProtectedTimestamps enables per-table protected timestamp records
219-
// instead of a single record for all tables in a changefeed.
220-
var PerTableProtectedTimestamps = settings.RegisterBoolSetting(
221-
settings.ApplicationLevel,
222-
"changefeed.protect_timestamp.per_table.enabled",
223-
"if true, creates separate protected timestamp records for each table in a changefeed; "+
224-
"if false, uses a single protected timestamp record for all tables",
225-
metamorphic.ConstantWithTestBool("changefeed.protect_timestamp.per_table.enabled", false))
226-
227218
// MaxProtectedTimestampAge controls the frequency of protected timestamp record updates
228219
var MaxProtectedTimestampAge = settings.RegisterDurationSetting(
229220
settings.ApplicationLevel,

pkg/ccl/changefeedccl/protected_timestamps_test.go

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import (
4343
"github.com/cockroachdb/cockroach/pkg/sql/sessiondata"
4444
"github.com/cockroachdb/cockroach/pkg/testutils"
4545
"github.com/cockroachdb/cockroach/pkg/testutils/serverutils"
46+
"github.com/cockroachdb/cockroach/pkg/testutils/skip"
4647
"github.com/cockroachdb/cockroach/pkg/testutils/sqlutils"
4748
"github.com/cockroachdb/cockroach/pkg/util/hlc"
4849
"github.com/cockroachdb/cockroach/pkg/util/leaktest"
@@ -404,9 +405,8 @@ func TestChangefeedAlterPTS(t *testing.T) {
404405

405406
_, _ = expectResolvedTimestamp(t, f2)
406407

407-
perTablePTSEnabled :=
408-
changefeedbase.PerTableProtectedTimestamps.Get(&s.Server.ClusterSettings().SV) &&
409-
changefeedbase.TrackPerTableProgress.Get(&s.Server.ClusterSettings().SV)
408+
// In 25.4 we are hard disabling per table protected timestamps.
409+
perTablePTSEnabled := false
410410

411411
if perTablePTSEnabled {
412412
eFeed, ok := f2.(cdctest.EnterpriseTestFeed)
@@ -751,8 +751,6 @@ func TestChangefeedMigratesProtectedTimestampTargets(t *testing.T) {
751751
context.Background(), &s.Server.ClusterSettings().SV, ptsInterval)
752752
changefeedbase.ProtectTimestampLag.Override(
753753
context.Background(), &s.Server.ClusterSettings().SV, ptsInterval)
754-
changefeedbase.PerTableProtectedTimestamps.Override(
755-
context.Background(), &s.Server.ClusterSettings().SV, false)
756754

757755
sqlDB := sqlutils.MakeSQLRunner(s.DB)
758756
sysDB := sqlutils.MakeSQLRunner(s.SystemServer.SQLConn(t))
@@ -870,12 +868,6 @@ func TestChangefeedMigratesProtectedTimestamps(t *testing.T) {
870868
changefeedbase.ProtectTimestampLag.Override(
871869
context.Background(), &s.Server.ClusterSettings().SV, ptsInterval)
872870

873-
// Since old style PTS records should not be created when per-table PTS records are enabled,
874-
// we disable them for this test. Per-table PTS breaks assumptions about where we can find
875-
// the PTS record uuids.
876-
changefeedbase.PerTableProtectedTimestamps.Override(
877-
context.Background(), &s.Server.ClusterSettings().SV, false)
878-
879871
sqlDB := sqlutils.MakeSQLRunner(s.DB)
880872
sysDB := sqlutils.MakeSQLRunner(s.SystemServer.SQLConn(t))
881873

@@ -977,10 +969,6 @@ func TestChangefeedProtectedTimestampUpdateForMultipleTables(t *testing.T) {
977969
changefeedbase.ProtectTimestampLag.Override(
978970
context.Background(), &s.Server.ClusterSettings().SV, 10*time.Hour)
979971

980-
// Ensure we use legacy single protected timestamp behavior for this test
981-
changefeedbase.PerTableProtectedTimestamps.Override(
982-
context.Background(), &s.Server.ClusterSettings().SV, false)
983-
984972
sqlDB.Exec(t, `CREATE TABLE foo (id INT)`)
985973
sqlDB.Exec(t, `CREATE TABLE bar (id INT)`)
986974
registry := s.Server.JobRegistry().(*jobs.Registry)
@@ -1087,12 +1075,14 @@ func TestChangefeedPerTableProtectedTimestampProgression(t *testing.T) {
10871075
defer leaktest.AfterTest(t)()
10881076
defer log.Scope(t).Close(t)
10891077

1078+
skip.WithIssue(t, 93793, "unreleased feature as of 25.4")
1079+
10901080
testFn := func(t *testing.T, s TestServer, f cdctest.TestFeedFactory) {
10911081
sqlDB := sqlutils.MakeSQLRunner(s.DB)
10921082

1093-
// Enable per-table protected timestamps and progress tracking
1094-
changefeedbase.PerTableProtectedTimestamps.Override(
1095-
context.Background(), &s.Server.ClusterSettings().SV, true)
1083+
// It's not possible to enable per-table protected timestamps
1084+
// since it's disabled in 25.4. This is where we will enable the setting
1085+
// for 26.1.
10961086
changefeedbase.TrackPerTableProgress.Override(
10971087
context.Background(), &s.Server.ClusterSettings().SV, true)
10981088

pkg/cmd/roachtest/tests/cdc.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,10 +1837,6 @@ func runCDCMultiTablePTSBenchmark(
18371837
numRanges = params.numRanges
18381838
}
18391839

1840-
if _, err := db.Exec("SET CLUSTER SETTING changefeed.protect_timestamp.per_table.enabled = $1", params.perTablePTS); err != nil {
1841-
t.Fatalf("failed to set per-table protected timestamps: %v", err)
1842-
}
1843-
18441840
initCmd := fmt.Sprintf("./cockroach workload init bank --rows=%d --ranges=%d --tables=%d {pgurl%s}",
18451841
params.numRows, numRanges, params.numTables, ct.crdbNodes.RandNode())
18461842
if err := c.RunE(ctx, option.WithNodes(ct.workloadNode), initCmd); err != nil {
@@ -3106,7 +3102,7 @@ func registerCDC(r registry.Registry) {
31063102
CompatibleClouds: registry.AllExceptIBM,
31073103
Run: runMessageTooLarge,
31083104
})
3109-
for _, perTablePTS := range []bool{false, true} {
3105+
for _, perTablePTS := range []bool{false} {
31103106
for _, config := range []struct {
31113107
numTables int
31123108
numRanges int

0 commit comments

Comments
 (0)