Skip to content

Commit b97183a

Browse files
authored
Merge pull request #142833 from cockroachdb/blathers/backport-release-24.3-142061
release-24.3: sql: add notice delete rate limit is per leaseholder when configured
2 parents 22efdd1 + c5d19ab commit b97183a

File tree

5 files changed

+81
-0
lines changed

5 files changed

+81
-0
lines changed

pkg/sql/alter_table.go

+7
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,13 @@ func (n *alterTableNode) startExec(params runParams) error {
749749
return err
750750
}
751751

752+
paramIsDelete := t.StorageParams.GetVal("ttl_delete_rate_limit") != nil
753+
paramIsSelect := t.StorageParams.GetVal("ttl_select_rate_limit") != nil
754+
755+
if paramIsDelete || paramIsSelect {
756+
printTTLRateLimitNotice(params.ctx, params.p)
757+
}
758+
752759
case *tree.AlterTableResetStorageParams:
753760
setter := tablestorageparam.NewSetter(n.tableDesc)
754761
if err := storageparam.Reset(

pkg/sql/create_table.go

+8
Original file line numberDiff line numberDiff line change
@@ -1402,6 +1402,14 @@ func NewTableDesc(
14021402
); err != nil {
14031403
return nil, err
14041404
}
1405+
1406+
paramIsDelete := n.StorageParams.GetVal("ttl_delete_rate_limit") != nil
1407+
paramIsSelect := n.StorageParams.GetVal("ttl_select_rate_limit") != nil
1408+
1409+
if paramIsDelete || paramIsSelect {
1410+
printTTLRateLimitNotice(ctx, evalCtx.ClientNoticeSender)
1411+
}
1412+
14051413
setter.TableDesc.RowLevelTTL = setter.UpdatedRowLevelTTL
14061414

14071415
indexEncodingVersion := descpb.StrictIndexColumnIDGuaranteesVersion

pkg/sql/logictest/testdata/logic_test/cluster_settings

+22
Original file line numberDiff line numberDiff line change
@@ -448,3 +448,25 @@ query B
448448
SHOW CLUSTER SETTING sql.explain_analyze.include_ru_estimation.enabled FOR TENANT "cluster-10"
449449
----
450450
false
451+
452+
subtest notice_on_ttl_default_rate_limit
453+
454+
query T noticetrace
455+
SET CLUSTER SETTING sql.ttl.default_delete_rate_limit = 90;
456+
----
457+
NOTICE: The TTL rate limit is per leaseholder per table.
458+
DETAIL: See the documentation for additional details: https://www.cockroachlabs.com/docs/v24.3/row-level-ttl#ttl-storage-parameters
459+
460+
statement ok
461+
SET CLUSTER SETTING sql.ttl.default_delete_rate_limit = 100;
462+
463+
query T noticetrace
464+
SET CLUSTER SETTING sql.ttl.default_select_rate_limit = 100;
465+
----
466+
NOTICE: The TTL rate limit is per leaseholder per table.
467+
DETAIL: See the documentation for additional details: https://www.cockroachlabs.com/docs/v24.3/row-level-ttl#ttl-storage-parameters
468+
469+
statement ok
470+
SET CLUSTER SETTING sql.ttl.default_select_rate_limit = 0;
471+
472+
subtest end

pkg/sql/logictest/testdata/logic_test/row_level_ttl

+28
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,7 @@ subtest end
766766

767767
subtest set_ttl_params
768768

769+
onlyif config weak-iso-level-configs
769770
statement ok
770771
CREATE TABLE tbl_set_ttl_params (
771772
id INT PRIMARY KEY
@@ -781,6 +782,25 @@ CREATE TABLE tbl_set_ttl_params (
781782
ttl_disable_changefeed_replication = true
782783
)
783784

785+
skipif config weak-iso-level-configs
786+
query T noticetrace
787+
CREATE TABLE tbl_set_ttl_params (
788+
id INT PRIMARY KEY
789+
) WITH (
790+
ttl_expire_after = '10 minutes',
791+
ttl_select_batch_size = 10,
792+
ttl_delete_batch_size = 20,
793+
ttl_select_rate_limit = 30,
794+
ttl_delete_rate_limit = 40,
795+
ttl_pause = true,
796+
ttl_row_stats_poll_interval = '1 minute',
797+
ttl_label_metrics = true,
798+
ttl_disable_changefeed_replication = true
799+
)
800+
----
801+
NOTICE: The TTL rate limit is per leaseholder per table.
802+
DETAIL: See the documentation for additional details: https://www.cockroachlabs.com/docs/v24.3/row-level-ttl#ttl-storage-parameters
803+
784804
query T
785805
SELECT create_statement FROM [SHOW CREATE TABLE tbl_set_ttl_params]
786806
----
@@ -790,6 +810,14 @@ CREATE TABLE public.tbl_set_ttl_params (
790810
CONSTRAINT tbl_set_ttl_params_pkey PRIMARY KEY (id ASC)
791811
) WITH (ttl = 'on', ttl_expire_after = '00:10:00':::INTERVAL, ttl_select_batch_size = 10, ttl_delete_batch_size = 20, ttl_select_rate_limit = 30, ttl_delete_rate_limit = 40, ttl_pause = true, ttl_row_stats_poll_interval = '1m0s', ttl_label_metrics = true, ttl_disable_changefeed_replication = true)
792812

813+
skipif config weak-iso-level-configs
814+
query T noticetrace
815+
ALTER TABLE tbl_set_ttl_params SET (ttl_select_batch_size = 110, ttl_delete_batch_size = 120, ttl_select_rate_limit = 130, ttl_delete_rate_limit = 140, ttl_row_stats_poll_interval = '2m0s')
816+
----
817+
NOTICE: The TTL rate limit is per leaseholder per table.
818+
DETAIL: See the documentation for additional details: https://www.cockroachlabs.com/docs/v24.3/row-level-ttl#ttl-storage-parameters
819+
820+
onlyif config weak-iso-level-configs
793821
statement ok
794822
ALTER TABLE tbl_set_ttl_params SET (ttl_select_batch_size = 110, ttl_delete_batch_size = 120, ttl_select_rate_limit = 130, ttl_delete_rate_limit = 140, ttl_row_stats_poll_interval = '2m0s')
795823

pkg/sql/set_cluster_setting.go

+16
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@ func (p *planner) SetClusterSetting(
232232
return nil, err
233233
}
234234

235+
if name == "sql.ttl.default_delete_rate_limit" || name == "sql.ttl.default_select_rate_limit" {
236+
printTTLRateLimitNotice(ctx, p)
237+
}
238+
235239
csNode := setClusterSettingNode{
236240
name: name,
237241
st: st,
@@ -241,6 +245,18 @@ func (p *planner) SetClusterSetting(
241245
return &csNode, nil
242246
}
243247

248+
func printTTLRateLimitNotice(ctx context.Context, p eval.ClientNoticeSender) {
249+
ttlDocDetail := "See the documentation for additional details: " +
250+
docs.URL("row-level-ttl#ttl-storage-parameters")
251+
p.BufferClientNotice(
252+
ctx,
253+
errors.WithDetail(
254+
pgnotice.Newf("The TTL rate limit is per leaseholder per table."),
255+
ttlDocDetail,
256+
),
257+
)
258+
}
259+
244260
func (p *planner) getAndValidateTypedClusterSetting(
245261
ctx context.Context, name settings.SettingName, expr tree.Expr, setting settings.NonMaskedSetting,
246262
) (tree.TypedExpr, error) {

0 commit comments

Comments
 (0)