FLUSH TABLES

Completes all in-progress DDL and DML transactions (writes) that are running against any databases in the cluster. Then, for each database in the cluster, makes every table available for reads, but not writes.

Syntax

FLUSH TABLES [ON db_name] WITH READ {LOCK | ONLY}

Arguments

  • db_name: name of the database

Remarks

  • FLUSH TABLES WITH READ LOCK blocks any DDL and DML transactions (writes) that are initiated following the execution of the command.

  • FLUSH TABLES WITH READ ONLY fails any DDL and DML transactions (writes) that are initiated following the execution of the command, while holding the flush table locks.

  • If you have any pipelines currently running, it is recommended to stop them before executing the FLUSH TABLES.. command. Do not create/drop/start/stop pipelines before executing the UNLOCK TABLES command.

  • Running UNLOCK TABLES after FLUSH TABLES... will make the cluster available for writes. Running UNLOCK TABLES after FLUSH TABLES WITH READ LOCK, specifically, will also unblock any writes that were initiated after FLUSH TABLES WITH READ LOCK was submitted. The UNLOCK TABLES query must be run in the same connection as the FLUSH TABLES query for this feature to take effect.

  • If the client connection that issued FLUSH TABLES... gets disconnected or is killed by an external process, then the lock is automatically released without the need to run the UNLOCK TABLES command.

  • This command causes implicit commits. See COMMIT for more information.

  • Node Requirements for SingleStore Commands

  • Refer to the Permission Matrix for the required permission.

Example

FLUSH TABLES WITH READ LOCK;

Last modified: January 9, 2023

Was this article helpful?