Skip to main content

Overview

Wirekite uses two metadata tables to track migration progress and enable operational control:
  • wirekite_progress - Tracks every file/operation processed, storing position checkpoints for crash recovery
  • wirekite_action - Single-row control table for pause/stop/resume operations
These tables are created automatically in the target database when a migration starts.

Metadata Tables

wirekite_progress

This table tracks the state of every extraction and loading operation, enabling crash recovery and progress monitoring. Schema:
The schema name varies by database: wirekite for PostgreSQL, MySQL, Oracle, SingleStore; public for Snowflake and Firebolt.
Column Reference:
string
Primary key component. Identifies the file or resource being processed (e.g., 0.ckt, schema.table.0.dkt, binlog name).
string
Primary key component. Identifies the destination or operation type.
string
Operation code:
  • D - Data Load
  • CE - Change Extract
  • C - Change Load
string
Transfer mode:
  • F - File-based processing
string
Progress checkpoint. Meaning depends on operation type:
  • Data loaders: Row count successfully committed
  • Change extractors: LSN/binlog position/SCN (database-specific position marker)
  • Change loaders: Sequence number in .ckt file
string
Associated table name for multi-table operations.
timestamp
When this operation started.
timestamp
NULL while in progress; set to completion time when done. This is the critical recovery indicator.
integer
Counter tracking how many times this operation was restarted after a crash.

wirekite_action

This single-row table controls the running state of loaders and extractors. Schema:
Valid Values:

Pause, Stop, and Resume

Wirekite components poll the wirekite_action table during processing. This enables non-disruptive control without restarting processes.

Using the Web Interface

The easiest way to control migrations is through the Web Interface:
  1. Navigate to the migration details page
  2. Click Pause to pause replication
  3. Click Resume to continue
  4. Click Stop to gracefully shut down

Using SQL Commands

You can also control migrations directly via SQL on the target database: Pause Replication:
Resume Replication:
Stop Replication:
Always use STOP for graceful shutdown rather than killing the process. This ensures the current transaction completes and progress is recorded.

Monitoring Progress

Check Migration Status

Query wirekite_progress to see the state of all operations:

Find Incomplete Operations

Identify operations that are still in progress or may be stuck:
Records with finish_time IS NULL and an old start_time may indicate a hung process.

Monitor Restart Counts

High values in the restarts column indicate repeated failures:

Crash Recovery

Wirekite automatically recovers from crashes using the wirekite_progress table:
  1. On startup, components check for records with finish_time IS NULL
  2. If found, processing resumes from the position stored in mark
  3. The restarts counter is incremented
This ensures zero data loss - partially loaded files resume from the last committed position.

Resetting Migration State

Resetting migration state can cause duplicate data if not done correctly. Always truncate both the progress table AND the target tables together.
To reset a migration and start fresh: 1. Stop the migration:
2. Wait for processes to exit, then truncate progress on both source and target:
3. Truncate target tables that will be reloaded. 4. Reset action to RUN:
5. Restart the migration.

Safety Guidelines

Never Delete Progress Records

Deleting records from wirekite_progress can cause duplicate data in the target or missed changes during replication.

Monitor Restarts

High restart counts indicate repeated failures. Investigate the root cause before the issue compounds.

Check for Stuck Records

Records with NULL finish_time and old start_time may indicate hung processes that need investigation.

Coordinate Resets

When resetting, always truncate wirekite_progress AND target tables together to prevent duplicates.