symious opened a new pull request, #10845: URL: https://github.com/apache/ozone/pull/10845
## What changes were proposed in this pull request? First 6 commits belong to HDDS-15879, can ignore them. <p>This ticket includes the follows tasks:</p> <div class="table-wrap"> 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 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
