sadanand48 commented on code in PR #3969:
URL: https://github.com/apache/ozone/pull/3969#discussion_r1024260443
##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequestWithFSO.java:
##########
@@ -172,6 +173,9 @@ public OMClientResponse validateAndUpdateCache(OzoneManager
ozoneManager,
// total number of keys created.
numKeysCreated = missingParentInfos.size() + 1;
+ OmBucketInfo omBucketInfo =
+ getBucketInfo(omMetadataManager, volumeName, bucketName);
Review Comment:
Same comment here.
##########
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java:
##########
@@ -1172,6 +1173,58 @@ private void bucketQuotaTestHelper(int keyLength,
ReplicationConfig repConfig)
store.getVolume(volumeName).getBucket(bucketName).getUsedBytes());
}
+ @ParameterizedTest
+ @MethodSource("bucketLayouts")
+ public void testBucketUsedNamespace(BucketLayout layout) throws IOException {
+ String volumeName = UUID.randomUUID().toString();
+ String bucketName = UUID.randomUUID().toString();
+ OzoneVolume volume = null;
+ String value = "sample value";
+ int valueLength = value.getBytes(UTF_8).length;
+ store.createVolume(volumeName);
+ volume = store.getVolume(volumeName);
+ BucketArgs bucketArgs = BucketArgs.newBuilder()
+ .setBucketLayout(layout)
+ .build();
+ volume.createBucket(bucketName, bucketArgs);
+ OzoneBucket bucket = volume.getBucket(bucketName);
+ String keyName = UUID.randomUUID().toString();
+ store.getVolume(volumeName).getBucket(bucketName);
+
+ writeKey(bucket, keyName, ONE, value, valueLength);
+ Assert.assertEquals(1L,
+ store.getVolume(volumeName).getBucket(bucketName).getUsedNamespace());
+
+ writeKey(bucket, keyName, ONE, value, valueLength);
Review Comment:
The two lines are duplicated here.
##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequest.java:
##########
@@ -215,6 +216,9 @@ public OMClientResponse validateAndUpdateCache(OzoneManager
ozoneManager,
OMFileRequest.addKeyTableCacheEntries(omMetadataManager, volumeName,
bucketName, Optional.of(dirKeyInfo),
Optional.of(missingParentInfos), trxnLogIndex);
+ OmBucketInfo omBucketInfo =
+ getBucketInfo(omMetadataManager, volumeName, bucketName);
Review Comment:
The updated omBucketInfo is never persisted to bucketTable, this needs to
be updated in OMDirectoryCreateResponse.
##########
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientAbstract.java:
##########
@@ -1172,6 +1173,58 @@ private void bucketQuotaTestHelper(int keyLength,
ReplicationConfig repConfig)
store.getVolume(volumeName).getBucket(bucketName).getUsedBytes());
}
+ @ParameterizedTest
+ @MethodSource("bucketLayouts")
+ public void testBucketUsedNamespace(BucketLayout layout) throws IOException {
+ String volumeName = UUID.randomUUID().toString();
+ String bucketName = UUID.randomUUID().toString();
+ OzoneVolume volume = null;
+ String value = "sample value";
+ int valueLength = value.getBytes(UTF_8).length;
+ store.createVolume(volumeName);
+ volume = store.getVolume(volumeName);
+ BucketArgs bucketArgs = BucketArgs.newBuilder()
+ .setBucketLayout(layout)
+ .build();
+ volume.createBucket(bucketName, bucketArgs);
+ OzoneBucket bucket = volume.getBucket(bucketName);
+ String keyName = UUID.randomUUID().toString();
+ store.getVolume(volumeName).getBucket(bucketName);
+
+ writeKey(bucket, keyName, ONE, value, valueLength);
+ Assert.assertEquals(1L,
+ store.getVolume(volumeName).getBucket(bucketName).getUsedNamespace());
+
+ writeKey(bucket, keyName, ONE, value, valueLength);
+ Assert.assertEquals(1L,
+ store.getVolume(volumeName).getBucket(bucketName).getUsedNamespace());
+
+ bucket.deleteKey(keyName);
+ Assert.assertEquals(0L,
+ store.getVolume(volumeName).getBucket(bucketName).getUsedNamespace());
+
+ RpcClient client = new RpcClient(cluster.getConf(), null);
+ String directoryName = UUID.randomUUID().toString();
+
+ client.createDirectory(volumeName, bucketName, directoryName);
+ Assert.assertEquals(1L,
+ store.getVolume(volumeName).getBucket(bucketName).getUsedNamespace());
+
+ client.createDirectory(volumeName, bucketName, directoryName);
Review Comment:
The two lines are duplicated here.
--
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]