Files
greptimedb/tests/cases/standalone/common/alter/alter_table_options.result
Yingwen 0a002f4d65 feat: support per-region write buffer limits (#8473)
* feat(mito): add per-region write buffer limit

Signed-off-by: evenyag <realevenyag@gmail.com>

* feat(mito): add default region write buffer size

Signed-off-by: evenyag <realevenyag@gmail.com>

* docs: expand configuration change checklist

Signed-off-by: evenyag <realevenyag@gmail.com>

* test: cover table write buffer size option

Signed-off-by: evenyag <realevenyag@gmail.com>

* fix(mito): refine region write buffer checks

Signed-off-by: evenyag <realevenyag@gmail.com>

* fix(mito): keep region-stalled writes queued

Signed-off-by: evenyag <realevenyag@gmail.com>

* fix(mito): allow zero region write buffer size

Signed-off-by: evenyag <realevenyag@gmail.com>

* fix(mito): validate region state before write stall

Signed-off-by: evenyag <realevenyag@gmail.com>

* fix(mito): reject writes beyond region hard limit

Signed-off-by: evenyag <realevenyag@gmail.com>

* docs: update example

Signed-off-by: evenyag <realevenyag@gmail.com>

---------

Signed-off-by: evenyag <realevenyag@gmail.com>
2026-07-15 07:31:25 +00:00

386 lines
15 KiB
Plaintext

CREATE TABLE ato(i INTEGER, j TIMESTAMP TIME INDEX, PRIMARY KEY(i));
Affected Rows: 0
INSERT INTO ato VALUES(1, now()), (2, now());
Affected Rows: 2
SELECT i FROM ato;
+---+
| i |
+---+
| 1 |
| 2 |
+---+
ALTER TABLE ato SET 'ttl'='1d';
Affected Rows: 0
SELECT i FROM ato;
+---+
| i |
+---+
| 1 |
| 2 |
+---+
SHOW CREATE TABLE ato;
+-------+------------------------------------+
| Table | Create Table |
+-------+------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | ttl = '1day' |
| | ) |
+-------+------------------------------------+
ALTER TABLE ato SET 'ttl'='2d';
Affected Rows: 0
SELECT i FROM ato;
+---+
| i |
+---+
| 1 |
| 2 |
+---+
SHOW CREATE TABLE ato;
+-------+------------------------------------+
| Table | Create Table |
+-------+------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | ttl = '2days' |
| | ) |
+-------+------------------------------------+
ALTER TABLE ato SET 'ttl'=NULL;
Affected Rows: 0
SELECT i FROM ato;
+---+
| i |
+---+
| 1 |
| 2 |
+---+
SHOW CREATE TABLE ato;
+-------+------------------------------------+
| Table | Create Table |
+-------+------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | ttl = 'forever' |
| | ) |
+-------+------------------------------------+
ALTER TABLE ato SET 'ttl'='1s';
Affected Rows: 0
SHOW CREATE TABLE ato;
+-------+------------------------------------+
| Table | Create Table |
+-------+------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | ttl = '1s' |
| | ) |
+-------+------------------------------------+
ALTER TABLE ato SET 'ttl'='😁';
Error: 1004(InvalidArguments), Invalid set table option request: Invalid set region option request, key: ttl, value: 😁
ALTER TABLE ato SET '🕶️'='1s';
Error: 1004(InvalidArguments), Invalid set table option request: Invalid set region option request, key: 🕶️, value: 1s
SELECT i FROM ato;
+---+
| i |
+---+
| 1 |
| 2 |
+---+
ALTER TABLE ato SET 'compaction.twcs.time_window'='2h';
Affected Rows: 0
ALTER TABLE ato SET 'compaction.twcs.max_output_file_size'='500MB';
Affected Rows: 0
ALTER TABLE ato SET 'compaction.twcs.trigger_file_num'='2';
Affected Rows: 0
SHOW CREATE TABLE ato;
+-------+-----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | 'compaction.twcs.max_output_file_size' = '500MB', |
| | 'compaction.twcs.time_window' = '2h', |
| | 'compaction.twcs.trigger_file_num' = '2', |
| | 'compaction.type' = 'twcs', |
| | ttl = '1s' |
| | ) |
+-------+-----------------------------------------------------+
ALTER TABLE ato UNSET 'compaction.twcs.time_window';
Affected Rows: 0
ALTER TABLE ato UNSET '🕶️';
Error: 1004(InvalidArguments), Invalid unset table option request: Invalid set region option request, key: 🕶️
SHOW CREATE TABLE ato;
+-------+-----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | 'compaction.twcs.max_output_file_size' = '500MB', |
| | 'compaction.twcs.trigger_file_num' = '2', |
| | 'compaction.type' = 'twcs', |
| | ttl = '1s' |
| | ) |
+-------+-----------------------------------------------------+
ALTER TABLE ato SET 'compaction.twcs.trigger_file_num'='';
Affected Rows: 0
SHOW CREATE TABLE ato;
+-------+-----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | 'compaction.twcs.max_output_file_size' = '500MB', |
| | 'compaction.type' = 'twcs', |
| | ttl = '1s' |
| | ) |
+-------+-----------------------------------------------------+
-- SQLNESS ARG restart=true
SHOW CREATE TABLE ato;
+-------+-----------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------+
| ato | CREATE TABLE IF NOT EXISTS "ato" ( |
| | "i" INT NULL, |
| | "j" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("j"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | 'compaction.twcs.max_output_file_size' = '500MB', |
| | 'compaction.type' = 'twcs', |
| | ttl = '1s' |
| | ) |
+-------+-----------------------------------------------------+
DROP TABLE ato;
Affected Rows: 0
CREATE TABLE write_buffer_size_options(
i INTEGER,
ts TIMESTAMP TIME INDEX,
PRIMARY KEY(i)
);
Affected Rows: 0
ALTER TABLE write_buffer_size_options SET 'write_buffer_size' = '128MiB';
Affected Rows: 0
SHOW CREATE TABLE write_buffer_size_options;
+---------------------------+----------------------------------------------------------+
| Table | Create Table |
+---------------------------+----------------------------------------------------------+
| write_buffer_size_options | CREATE TABLE IF NOT EXISTS "write_buffer_size_options" ( |
| | "i" INT NULL, |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("ts"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | write_buffer_size = '128.0MiB' |
| | ) |
+---------------------------+----------------------------------------------------------+
-- SQLNESS ARG restart=true
SHOW CREATE TABLE write_buffer_size_options;
+---------------------------+----------------------------------------------------------+
| Table | Create Table |
+---------------------------+----------------------------------------------------------+
| write_buffer_size_options | CREATE TABLE IF NOT EXISTS "write_buffer_size_options" ( |
| | "i" INT NULL, |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("ts"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | WITH( |
| | write_buffer_size = '128.0MiB' |
| | ) |
+---------------------------+----------------------------------------------------------+
ALTER TABLE write_buffer_size_options UNSET 'write_buffer_size';
Affected Rows: 0
SHOW CREATE TABLE write_buffer_size_options;
+---------------------------+----------------------------------------------------------+
| Table | Create Table |
+---------------------------+----------------------------------------------------------+
| write_buffer_size_options | CREATE TABLE IF NOT EXISTS "write_buffer_size_options" ( |
| | "i" INT NULL, |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | TIME INDEX ("ts"), |
| | PRIMARY KEY ("i") |
| | ) |
| | |
| | ENGINE=mito |
| | |
+---------------------------+----------------------------------------------------------+
DROP TABLE write_buffer_size_options;
Affected Rows: 0
CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = "");
Affected Rows: 0
ALTER TABLE phy set ttl='2years';
Affected Rows: 0
SHOW CREATE TABLE phy;
+-------+------------------------------------+
| Table | Create Table |
+-------+------------------------------------+
| phy | CREATE TABLE IF NOT EXISTS "phy" ( |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | "val" DOUBLE NULL, |
| | TIME INDEX ("ts") |
| | ) |
| | |
| | ENGINE=metric |
| | WITH( |
| | physical_metric_table = '', |
| | ttl = '2years' |
| | ) |
+-------+------------------------------------+
ALTER TABLE phy UNSET 'ttl';
Affected Rows: 0
SHOW CREATE TABLE phy;
+-------+------------------------------------+
| Table | Create Table |
+-------+------------------------------------+
| phy | CREATE TABLE IF NOT EXISTS "phy" ( |
| | "ts" TIMESTAMP(3) NOT NULL, |
| | "val" DOUBLE NULL, |
| | TIME INDEX ("ts") |
| | ) |
| | |
| | ENGINE=metric |
| | WITH( |
| | physical_metric_table = '' |
| | ) |
+-------+------------------------------------+
DROP TABLE phy;
Affected Rows: 0