This is an automated email from the ASF dual-hosted git repository.
ckj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new c00d3af98a HDDS-7722. FSO buckets fail to invalidate open file table
cache when committing a key (#4156)
c00d3af98a is described below
commit c00d3af98a23f515394f034a259207ef9cc73dfa
Author: Wei-Chiu Chuang <[email protected]>
AuthorDate: Thu Jan 12 19:34:02 2023 -0800
HDDS-7722. FSO buckets fail to invalidate open file table cache when
committing a key (#4156)
---
.../om/request/key/OMKeyCommitRequestWithFSO.java | 2 +-
.../om/request/key/TestOMKeyCommitRequest.java | 40 ++++++++++++++++------
.../request/key/TestOMKeyCommitRequestWithFSO.java | 11 +++---
3 files changed, 35 insertions(+), 18 deletions(-)
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
index e8b96ea659..ee6e99c56d 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequestWithFSO.java
@@ -195,7 +195,7 @@ public class OMKeyCommitRequestWithFSO extends
OMKeyCommitRequest {
}
// Add to cache of open key table and key table.
- OMFileRequest.addOpenFileTableCacheEntry(omMetadataManager, dbFileKey,
+ OMFileRequest.addOpenFileTableCacheEntry(omMetadataManager,
dbOpenFileKey,
null, fileName, trxnLogIndex);
OMFileRequest.addFileTableCacheEntry(omMetadataManager, dbFileKey,
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequest.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequest.java
index 10552e380d..edf08d0563 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequest.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequest.java
@@ -79,11 +79,17 @@ public class TestOMKeyCommitRequest extends
TestOMKeyRequest {
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName,
omMetadataManager, omKeyCommitRequest.getBucketLayout());
- String ozoneKey = addKeyToOpenKeyTable(allocatedLocationList);
+ String openKey = addKeyToOpenKeyTable(allocatedLocationList);
+ String ozoneKey = getOzonePathKey();
+
+ OmKeyInfo omKeyInfo =
+ omMetadataManager.getOpenKeyTable(
+ omKeyCommitRequest.getBucketLayout()).get(openKey);
+ Assert.assertNotNull(omKeyInfo);
// Key should not be there in key table, as validateAndUpdateCache is
// still not called.
- OmKeyInfo omKeyInfo =
+ omKeyInfo =
omMetadataManager.getKeyTable(omKeyCommitRequest.getBucketLayout())
.get(ozoneKey);
@@ -99,7 +105,7 @@ public class TestOMKeyCommitRequest extends TestOMKeyRequest
{
// Entry should be deleted from openKey Table.
omKeyInfo =
omMetadataManager.getOpenKeyTable(omKeyCommitRequest.getBucketLayout())
- .get(ozoneKey);
+ .get(openKey);
Assert.assertNull(omKeyInfo);
// Now entry should be created in key Table.
@@ -141,11 +147,17 @@ public class TestOMKeyCommitRequest extends
TestOMKeyRequest {
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName,
omMetadataManager, omKeyCommitRequest.getBucketLayout());
- String ozoneKey = addKeyToOpenKeyTable(allocatedLocationList);
+ String openKey = addKeyToOpenKeyTable(allocatedLocationList);
+ String ozoneKey = getOzonePathKey();
+
+ OmKeyInfo omKeyInfo =
+ omMetadataManager.getOpenKeyTable(
+ omKeyCommitRequest.getBucketLayout()).get(openKey);
+ Assert.assertNotNull(omKeyInfo);
// Key should not be there in key table, as validateAndUpdateCache is
// still not called.
- OmKeyInfo omKeyInfo =
+ omKeyInfo =
omMetadataManager.getKeyTable(omKeyCommitRequest.getBucketLayout())
.get(ozoneKey);
@@ -161,14 +173,13 @@ public class TestOMKeyCommitRequest extends
TestOMKeyRequest {
// Entry should be deleted from openKey Table.
omKeyInfo =
omMetadataManager.getOpenKeyTable(omKeyCommitRequest.getBucketLayout())
- .get(ozoneKey);
+ .get(openKey);
Assert.assertNull(omKeyInfo);
// Now entry should be created in key Table.
omKeyInfo =
omMetadataManager.getKeyTable(omKeyCommitRequest.getBucketLayout())
.get(ozoneKey);
-
Assert.assertNotNull(omKeyInfo);
// DB keyInfo format
verifyKeyName(omKeyInfo);
@@ -214,11 +225,17 @@ public class TestOMKeyCommitRequest extends
TestOMKeyRequest {
OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName,
omMetadataManager, omKeyCommitRequest.getBucketLayout());
- String ozoneKey = addKeyToOpenKeyTable(allocatedBlockList);
+ String openKey = addKeyToOpenKeyTable(allocatedBlockList);
+ String ozoneKey = getOzonePathKey();
+
+ OmKeyInfo omKeyInfo =
+ omMetadataManager.getOpenKeyTable(
+ omKeyCommitRequest.getBucketLayout()).get(openKey);
+ Assert.assertNotNull(omKeyInfo);
// Key should not be there in key table, as validateAndUpdateCache is
// still not called.
- OmKeyInfo omKeyInfo =
+ omKeyInfo =
omMetadataManager.getKeyTable(omKeyCommitRequest.getBucketLayout())
.get(ozoneKey);
@@ -243,7 +260,7 @@ public class TestOMKeyCommitRequest extends
TestOMKeyRequest {
// Entry should be deleted from openKey Table.
omKeyInfo =
omMetadataManager.getOpenKeyTable(omKeyCommitRequest.getBucketLayout())
- .get(ozoneKey);
+ .get(openKey);
Assert.assertNull(omKeyInfo);
// Now entry should be created in key Table.
@@ -613,7 +630,8 @@ public class TestOMKeyCommitRequest extends
TestOMKeyRequest {
clientID, replicationType, replicationFactor, omMetadataManager,
locationList, version);
- return getOzonePathKey();
+ return omMetadataManager.getOpenKey(volumeName, bucketName,
+ keyName, clientID);
}
@NotNull
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequestWithFSO.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequestWithFSO.java
index bd5eb65c90..64dfea1412 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequestWithFSO.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/key/TestOMKeyCommitRequestWithFSO.java
@@ -57,11 +57,12 @@ public class TestOMKeyCommitRequestWithFSO extends
TestOMKeyCommitRequest {
@Override
protected String getOzonePathKey() throws IOException {
- final long volumeId = getVolumeID();
+ final long volumeID = getVolumeID();
final long bucketID = getBucketID();
String fileName = OzoneFSUtils.getFileName(keyName);
- return omMetadataManager.getOzonePathKey(volumeId, bucketID,
- bucketID, fileName);
+
+ return omMetadataManager.getOzonePathKey(volumeID, bucketID,
+ parentID, fileName);
}
@Override
@@ -84,11 +85,9 @@ public class TestOMKeyCommitRequestWithFSO extends
TestOMKeyCommitRequest {
omKeyInfoFSO.appendNewBlocks(locationList, false);
String fileName = OzoneFSUtils.getFileName(keyName);
- OMRequestTestUtils.addFileToKeyTable(true, false,
+ return OMRequestTestUtils.addFileToKeyTable(true, false,
fileName, omKeyInfoFSO, clientID, txnLogId, omMetadataManager);
- return omMetadataManager.getOzonePathKey(getVolumeID(), getBucketID(),
- parentID, fileName);
}
@NotNull
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]