Skip to content

Add BlobId v7 with migration destination bit#3206

Draft
j-tyler wants to merge 1 commit intolinkedin:masterfrom
j-tyler:j-tyler/blob-id-v7-2
Draft

Add BlobId v7 with migration destination bit#3206
j-tyler wants to merge 1 commit intolinkedin:masterfrom
j-tyler:j-tyler/blob-id-v7-2

Conversation

@j-tyler
Copy link
Contributor

@j-tyler j-tyler commented Mar 6, 2026

Summary

BlobId v6 has no field to denote backend identity at write time, which makes migration to a new backend infrastucture ambiguous.

Add BlobId v7 and reserve the top flag bit for migration destination (AMBRY/NON_AMBRY) while keeping v6-style compact UUID encoding. Keep pre-v7 behavior unchanged by defaulting migration metadata to UNKNOWN and reject UNKNOWN for v7 constructors/craft APIs.

Also allow router.blobid.current.version=7 and add coverage for router config bounds, v7 serde, craft behavior, and migration destination validation.

Testing Done

Added new tests to cover all changes.

BlobId v6 has no field to denote backend identity at write time, which
makes migration to a new backend infrastucture ambiguous.

Add BlobId v7 and reserve the top flag bit for migration destination
(AMBRY/NON_AMBRY) while keeping v6-style compact UUID encoding. Keep
pre-v7 behavior unchanged by defaulting migration metadata to UNKNOWN and
reject UNKNOWN for v7 constructors/craft APIs.

Also allow router.blobid.current.version=7 and add coverage for router
config bounds, v7 serde, craft behavior, and migration destination
validation.
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.

1 participant