hanishakoneru commented on a change in pull request #1480:
URL: https://github.com/apache/ozone/pull/1480#discussion_r516997538
##########
File path:
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
##########
@@ -394,6 +403,8 @@ private OzoneManager(OzoneConfiguration conf) throws
IOException,
OMConfigKeys.OZONE_OM_RATIS_ENABLE_KEY,
OMConfigKeys.OZONE_OM_RATIS_ENABLE_DEFAULT);
+ omEpoch = OmUtils.getOMEpoch(isRatisEnabled);
Review comment:
Done.
##########
File path:
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java
##########
@@ -524,6 +535,48 @@ public static OmKeyInfo prepareKeyForRecover(OmKeyInfo
keyInfo,
}
}
+ public static int getOMEpoch(boolean isRatisEnabled) {
+ return isRatisEnabled ? EPOCH_WHEN_RATIS_ENABLED :
+ EPOCH_WHEN_RATIS_NOT_ENABLED;
+ }
+
+ /**
+ * Get the valid base object id given the transaction id.
+ * @param epoch a 2 bit epoch number. The 2 most significant bits of the
+ * object will be set to this epoch.
+ * @param id of the transaction. This value cannot exceed 2^54 - 1 as
+ * out of the 64 bits for a long, 2 are reserved for the epoch
+ * and 8 for recursive directory creation.
+ * @return base object id allocated against the transaction
+ */
+ public static long getObjectIdFromTxId(long epoch, long id) {
+ Preconditions.checkArgument(id <= MAX_TRXN_ID, "TransactionID " +
+ "exceeds max limit of " + MAX_TRXN_ID);
+ return addEpochToObjectId(epoch, id);
+ }
+
+ /**
+ * Note - This function should not be called directly. It is directly called
+ * only from OzoneManager#addS3GVolumeToDB() which is a one time operation
+ * when OM is started first time to add S3G volume. In call other cases,
+ * getObjectIdFromTxId() should be called to append epoch to objectID.
+ */
+ public static long addEpochToObjectId(long epoch, long id) {
Review comment:
Done.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]