DB
Operations

Upgrade and compatibility

Plan and execute a safe offline single-node upgrade.

NYXDB currently has no rolling-upgrade or mixed-version cluster contract. An upgrade of the only node is an offline restart and creates an outage.

Do not assume a new binary can open an old data directory, or that an old binary can reopen a directory after a new revision has written it. Proceed only when the target release notes explicitly support the on-disk transition you intend.

Compatibility dimensions

Review each dimension independently:

DimensionRequired evidence
SQLParser/binder conformance and application query smoke tests
Catalog/on-disk dataRelease-specific migration/compatibility statement and restart test on a copy
WAL/checkpoints/partsRecovery test from a production-like pre-upgrade copy
Wire/clientMatching-revision smoke tests for every deployed driver
Experimental featuresFeature-specific migration notes and correctness tests
Native function modulesExact ABI/build compatibility and module load tests
Backup formatNew tool lists/restores the retained pre-upgrade manifest

Pre-upgrade gate

  1. Pin the target artifact by digest/revision and archive --capabilities, --readiness, and --help output.
  2. Read all release notes between current and target revisions.
  3. Run the target against a disposable restored copy of current production data.
  4. Exercise representative DDL, DML, reads, streams/transforms in use, restart recovery, and native backup.
  5. Create a fresh production backup and record its manifest, frontier, checksum evidence, and repository location.
  6. Restore that backup into an empty drill target and validate data before the maintenance window.
  7. Freeze schema/storage-topology changes and stop application traffic.
  8. Confirm enough outage time for clean shutdown, recovery, validation, and the chosen rollback procedure.

Backup creation alone is not the gate; a successful restore is.

Offline procedure

  1. Send SIGTERM to the existing process.
  2. Wait for clean exit and confirm the supervisor did not force-kill it.
  3. Preserve the old artifact, complete command line, logs, and data-volume identity.
  4. Replace the image/binary with the pinned target.
  5. Start it against the same data directory only when the release-specific on-disk transition is supported.
  6. Wait for recovery and listener-ready completion.
  7. Confirm the build revision in logs and compare capabilities.
  8. Run protocol ping, SELECT 1, catalog/SHOW CREATE checks, and representative reads/writes.
  9. Inspect system.events, system.metrics, system.parts, system.queries, system.subscriptions, and any transforms in use.
  10. Create and list a post-upgrade backup before ending heightened monitoring.

Rollback decision

Binary reversal is safe only when release notes explicitly state that the old revision can reopen every on-disk structure written by the new one. A successful startup is not sufficient proof.

The safest general rollback is:

  1. stop the target revision cleanly;
  2. select the verified pre-upgrade manifest;
  3. restore it into a new empty data directory;
  4. require a successful command and RESTORE_READY;
  5. start the old pinned artifact against that restored directory; and
  6. validate build identity, catalog, data, protocol, and application behavior.

This discards writes accepted after the pre-upgrade frontier. Make that data-loss boundary explicit before reopening traffic.

Never use a live recursive copy of --data-dir as an ad hoc rollback image, and never start a target that contains only RESTORE_IN_PROGRESS.

Post-upgrade observation

For at least one normal workload cycle, compare:

  • connection and admission saturation;
  • query failures, latency, memory, and output-limit events;
  • committed-tail drain, part count, compaction, and disk use;
  • stream lag/overflow and transform terminal errors;
  • recovery/startup duration;
  • backup fence, lag, throughput, and restore validation; and
  • application-level data invariants.

Keep the pre-upgrade manifest until this observation period and a post-upgrade restore drill are complete.

On this page