[
https://issues.apache.org/jira/browse/HDDS-4315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hanisha Koneru resolved HDDS-4315.
----------------------------------
Fix Version/s: 1.1.0
Resolution: Fixed
> Ensure ObjectIDs are unique across restarts
> -------------------------------------------
>
> Key: HDDS-4315
> URL: https://issues.apache.org/jira/browse/HDDS-4315
> Project: Hadoop Distributed Data Store
> Issue Type: Bug
> Components: Ozone Manager
> Reporter: Hanisha Koneru
> Assignee: Hanisha Koneru
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.1.0
>
>
> In a non-Ratis OM, the transaction index used to generate ObjectID is reset
> on OM restart. This can lead to duplicate ObjectIDs when the OM is restarted.
> ObjectIDs should be unique.
> HDDS-2939 and NFS are some of the features which depend on ObjectIds being
> unique.
> To ensure that objectIDs are unique across restarts in non-ratis OM cluster,
> the transaction index should be updated in DB on every flush to DB. This can
> be done in a similar fashion to what is being done for ratis enabled cluster
> today. TransactionInfo table is updated with transaction index as part of
> every batch write operation to DB.
> Also, and epoch number is introduced to ensure that objectIDs do not clash
> with older clusters in which this fix does not exist. From the 64 bits of
> ObjectID (long variable), 2 bits are reserved for epoch and 8 bits for
> recursive directory creation, if required. The most significant 2 bits of
> objectIDs is set to epoch. For clusters before HDDS-4315 there is no epoch as
> such. But it can be safely assumed that the most significant 2 bits of the
> objectID will be 00 (as it unlikely to reach trxn index > 2^62 in an existing
> cluster). From HDDS-4315 onwards, the Epoch for non-ratis OM clusters will be
> binary 01 (= decimal 1) and for ratis enabled OM cluster will be binary 10 (=
> decimal 2).
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]