[ 
https://issues.apache.org/jira/browse/HDDS-15946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Janus Chow updated HDDS-15946:
------------------------------
    Summary: [Ozone versioning] [T2] VersionId generation strategy framework  
(was: [Ozone versioning] VersionId generation strategy framework)

> [Ozone versioning] [T2] VersionId generation strategy framework
> ---------------------------------------------------------------
>
>                 Key: HDDS-15946
>                 URL: https://issues.apache.org/jira/browse/HDDS-15946
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Janus Chow
>            Assignee: Janus Chow
>            Priority: Major
>
> 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|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to