Skip to content

Add clustered migration sync for shared disks (SYNCING barrier)#403

Open
fabi200123 wants to merge 1 commit intocloudbase:masterfrom
fabi200123:cor-707
Open

Add clustered migration sync for shared disks (SYNCING barrier)#403
fabi200123 wants to merge 1 commit intocloudbase:masterfrom
fabi200123:cor-707

Conversation

@fabi200123
Copy link
Contributor

Introduce TASK_STATUS_SYNCING and TASK_TYPES_REQUIRING_CLUSTER_SYNC (DEPLOY_TRANSFER_DISKS, SHUTDOWN_INSTANCE) so multi-instance transfers with base_transfer_action.clustered=True wait for all peer tasks before marking COMPLETED and advancing dependents.

  • Add clustered boolean on base_transfer_action (DB migration 024)
  • Plumb clustered through create_instances_transfer, REST transfers API, deployment creation (inherits from parent transfer)
  • On task_completed: set SYNCING when barrier applies; when all peers are SYNCING, finalize (for deploy: dedupe volumes_info by disk_id, leader gets replicate_disk_data=True, followers False)
  • ReplicateDisksTask: skip provider replicate_disks for volumes with replicate_disk_data=False and merge back in export disk order
  • On set_task_error: abort peer tasks stuck in SYNCING for the same type

Volumes schema already allows extra properties; replicate_disk_data is consumed by replication only (default True preserves behavior).

Introduce TASK_STATUS_SYNCING and TASK_TYPES_REQUIRING_CLUSTER_SYNC
(DEPLOY_TRANSFER_DISKS, SHUTDOWN_INSTANCE) so multi-instance transfers
with base_transfer_action.clustered=True wait for all peer tasks before
marking COMPLETED and advancing dependents.

- Add clustered boolean on base_transfer_action (DB migration 024)
- Plumb clustered through create_instances_transfer, REST transfers API,
  deployment creation (inherits from parent transfer)
- On task_completed: set SYNCING when barrier applies; when all peers
  are SYNCING, finalize (for deploy: dedupe volumes_info by disk_id,
  leader gets replicate_disk_data=True, followers False)
- ReplicateDisksTask: skip provider replicate_disks for volumes with
  replicate_disk_data=False and merge back in export disk order
- On set_task_error: abort peer tasks stuck in SYNCING for the same type

Volumes schema already allows extra properties; replicate_disk_data is
consumed by replication only (default True preserves behavior).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants