Skip to content

HDDS-15946. [Ozone versioning] VersionId generation strategy framework#10845

Open
symious wants to merge 9 commits into
apache:HDDS-15728from
symious:HDDS-15946
Open

HDDS-15946. [Ozone versioning] VersionId generation strategy framework#10845
symious wants to merge 9 commits into
apache:HDDS-15728from
symious:HDDS-15946

Conversation

@symious

@symious symious commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

First 6 commits belong to HDDS-15879, can ignore them.

This ticket includes the follows tasks:

Sub-task Scope Acceptance
T2.1 interface + default generator VersionIdGenerator interface; TransactionIndexVersionIdGenerator; the ozone.om.versioning.version-id-generator class-name config, loaded reflectively shared contract test (strictly increasing / frozen / reserved ids) run against every generator; unknown class and class not implementing the interface both rejected; default generator carries no allocator state
T2.2 commit-time ordering check VersionIdAllocator: refuse a commit whose id does not come after the key's current version; fall back to a versionedKeyTable lookup for records predating versioning increasing id accepted; id at or below the current one rejected with INVALID_REQUEST; taken id on a pre-versioning record rejected with KEY_ALREADY_EXISTS; steady state performs no lookup (unit test asserts versionedKeyTable is never touched)
T2.3 pinned-first generator PinnedFirstVersionIdGenerator: first-version detection (no current in keyTable) + FIRST_VERSION_ID = 1 sentinel first PUT gets the sentinel, later PUTs get transaction indexes; sentinel sorts before every transaction index; sentinel does not collide with the null slot; selectable by configuration

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-15946

How was this patch tested?

Unit test

symious and others added 6 commits July 16, 2026 11:06
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…equest

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@symious symious changed the title Hdds 15946 HDDS-15946. [Ozone versioning] VersionId generation strategy framework Jul 23, 2026
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