Back to Documentation

Zero-Downtime Upgrades

Upgrade entropyDB to the latest version without service interruption

Overview

entropyDB supports zero-downtime upgrades with:

  • Rolling Upgrades: Upgrade nodes one at a time
  • Blue-Green Deployment: Switch between environments
  • Compatibility Mode: Mixed-version clusters
  • Automated Rollback: Revert if issues detected
  • Version Checks: Validate compatibility before upgrade

Pre-Upgrade Checklist

# Check current version
entropy-admin --version

# Check cluster health
entropy-admin cluster health

# Verify backups are current
entropy-backup verify-latest

# Check upgrade compatibility
entropy-admin upgrade check --target-version 2.0.0

# Review release notes
curl https://entropydb.io/releases/2.0.0/notes.txt

# Test upgrade in staging first
entropy-admin upgrade simulate --target-version 2.0.0

Rolling Upgrade

# Automated rolling upgrade
entropy-admin upgrade rolling \
  --target-version 2.0.0 \
  --max-unavailable 1 \
  --health-check-interval 30s \
  --rollback-on-failure

# Manual rolling upgrade process
# Step 1: Upgrade secondary nodes first
for node in node2 node3; do
  echo "Upgrading $node..."
  ssh $node "systemctl stop entropydb"
  ssh $node "entropy-admin upgrade install 2.0.0"
  ssh $node "systemctl start entropydb"
  
  # Wait for node to be healthy
  entropy-admin node wait-healthy $node --timeout 5m
done

# Step 2: Failover primary
entropy-admin failover --to node2

# Step 3: Upgrade former primary
ssh node1 "systemctl stop entropydb"
ssh node1 "entropy-admin upgrade install 2.0.0"
ssh node1 "systemctl start entropydb"

# Step 4: Verify cluster
entropy-admin cluster status

Kubernetes Rolling Update

# Update StatefulSet with new version
kubectl set image statefulset/entropydb \
  entropydb=entropydb/entropydb:2.0.0 \
  --namespace entropydb

# Or update Helm chart
helm upgrade entropydb entropydb/entropydb \
  --set image.tag=2.0.0 \
  --namespace entropydb \
  --wait

# Monitor rollout
kubectl rollout status statefulset/entropydb -n entropydb

# Rollback if needed
kubectl rollout undo statefulset/entropydb -n entropydb

Version Compatibility

Supported Upgrade Paths:

  • • 1.x → 2.0 (direct upgrade supported)
  • • 2.0 → 2.1 (rolling upgrade supported)
  • • 1.x → 2.1 (must upgrade to 2.0 first)
-- Check compatibility
SELECT entropy_upgrade_compatibility('2.0.0');

-- Enable mixed-version mode during upgrade
ALTER SYSTEM SET allow_mixed_versions = true;
ALTER SYSTEM SET version_compatibility_mode = 'backward';

-- After upgrade complete
ALTER SYSTEM SET allow_mixed_versions = false;

Best Practices

Before Upgrade

  • • Take full backup
  • • Test in staging environment
  • • Review release notes
  • • Schedule maintenance window

During Upgrade

  • • Monitor cluster health
  • • Verify each node before proceeding
  • • Keep communication channels open
  • • Have rollback plan ready

Next Steps