repset-diff

April 6, 2026 · View on GitHub

Runs table-diff on every table in a replication set and reports differences.

Usage

./ace repset-diff [flags] [cluster] <repset>

Arguments

  • [cluster] — Optional; overrides default_cluster.
  • <repset> — Replication set name.

Flags

FlagAliasDescriptionDefault
--dbname-dDatabase name
--nodes-nNodes to include (comma or all)all
--skip-tables-TComma list of tables to exclude
--skip-file-sFile with list of tables to exclude
--block-size <int>-bRows per block when diffing each table. Default 100000.
--concurrency-factor <float>-cCPU ratio for concurrency (0.0–4.0). Default 0.5.
--compare-unit-size <int>-uRecursive split size for mismatched blocks. Default 10000.
--output <json|html>-oPer-table diff report format. Default json.
--max-connections <int>-MMaximum database connections per node. Caps the pool regardless of concurrency factor.derived
--override-block-size-BAllow block sizes outside ace.yaml guardrails.
--quiet-qSuppress outputfalse
--debug-vDebug loggingfalse
--schedule-SRun the diff repeatedly on a timer (requires --every).
--every <duration>-eGo duration string (for example, 30m, 6h). Used with --schedule.

Example

./ace repset-diff --dbname=mydatabase my-cluster my_repset

Each table in the replication set is diffed with the same block size, concurrency factor, compare-unit size, output format, and override behaviour you provide here.

Scheduling runs

Combine --schedule with --every=<duration> to keep the replication-set sweep running until you cancel it:

./ace repset-diff --schedule --every=4h --dbname=mydatabase my-cluster my_repset

ACE runs the job immediately, waits for the interval, then repeats in the same process.