Skip to content

Adds live migration ttrpc service definition#2691

Merged
rawahars merged 3 commits intomicrosoft:mainfrom
rawahars:lm-proto
Apr 21, 2026
Merged

Adds live migration ttrpc service definition#2691
rawahars merged 3 commits intomicrosoft:mainfrom
rawahars:lm-proto

Conversation

@rawahars
Copy link
Copy Markdown
Contributor

@rawahars rawahars commented Apr 17, 2026

Summary

This pull request introduces a new live migration service to the codebase, including its protocol definitions, generated Go bindings, and integration into the project configuration. The migration service manages sandbox live migration workflows, handling preparation, memory transfer, and finalization.

Live migration service introduction:

  • Added the migration package, including proto definitions (migration.proto) for the live migration service, which defines the migration workflow (preparation, memory transfer, finalization, and socket duplication) and all related messages and enums.
  • Added generated ttrpc Go bindings (migration_ttrpc.pb.go) for the migration service, providing server and client interfaces for use in Go code.
  • Added a package-level doc comment describing the purpose of the migration package in doc.go.
  • Registered the new migration package in the Protobuild.toml file, ensuring proto code generation for the package.

Comment thread internal/migration/migration.proto Outdated
Comment thread internal/migration/migration.proto Outdated
Comment thread internal/migration/migration.proto Outdated
Comment thread internal/migration/migration.proto Outdated
Comment thread internal/migration/migration.proto Outdated
Comment thread internal/migration/migration.proto Outdated
@rawahars rawahars force-pushed the lm-proto branch 2 times, most recently from fad0072 to b5536db Compare April 20, 2026 05:16
Comment thread pkg/migration/migration.proto Outdated
Comment thread pkg/migration/migration_options.proto Outdated
Comment thread pkg/migration/migration_options.proto Outdated
Comment thread pkg/migration/migration_options.proto Outdated
@rawahars rawahars force-pushed the lm-proto branch 2 times, most recently from 1e69da8 to 71cd5d4 Compare April 20, 2026 11:13
Introduces the Live Migration ttrpc service with RPCs for preparing, transferring
memory, and finalizing sandbox live migration between source and destination
hosts. Includes sandbox state serialization for cross-host config propagation.

Signed-off-by: Harsh Rawat <harshrawat@microsoft.com>
Comment thread internal/migration/migration.proto Outdated
Comment thread internal/migration/migration.proto Outdated
Comment thread pkg/migration/migration.proto

message TransferSandboxResponse {
// Increments per message; can be used to dedupe after client restarts.
uint32 message_id = 1;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you buffering them? How would the client obtain messages after it restarts?

Copy link
Copy Markdown
Contributor Author

@rawahars rawahars Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we do not buffer them. The behaviour as discussed with Apurv was to just return the last message in case of restart.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not do that. But we can merge this as is for now.

Comment thread sandbox-spec/vm/v2/migration.go Outdated
Comment thread pkg/migration/migration.proto
Comment thread pkg/migration/migration.proto
Signed-off-by: Harsh Rawat <harshrawat@microsoft.com>
Signed-off-by: Harsh Rawat <harshrawat@microsoft.com>
@rawahars rawahars merged commit 09961c9 into microsoft:main Apr 21, 2026
32 of 33 checks passed
@rawahars rawahars deleted the lm-proto branch April 21, 2026 04:31
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.

3 participants