diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManager.java index 010de58daf..bb9df17edb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManager.java @@ -114,7 +114,7 @@ public interface KSMMetadataManager { * @param key - key name * @return bytes of DB key. */ - byte[] getDBKeyForKey(String volume, String bucket, String key); + byte[] getDBKeyBytes(String volume, String bucket, String key); /** * Returns the DB key name of a deleted key in KSM metadata store. diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManagerImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManagerImpl.java index b8eaeba503..9a6a2b0ef0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManagerImpl.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetadataManagerImpl.java @@ -137,7 +137,12 @@ public byte[] getBucketKey(String volume, String bucket) { return DFSUtil.string2Bytes(bucketKeyString); } - private String getBucketKeyPrefix(String volume, String bucket) { + /** + * @param volume + * @param bucket + * @return + */ + private String getBucketWithDBPrefix(String volume, String bucket) { StringBuffer sb = new StringBuffer(); sb.append(OzoneConsts.KSM_VOLUME_PREFIX) .append(volume) @@ -148,7 +153,7 @@ private String getBucketKeyPrefix(String volume, String bucket) { return sb.toString(); } - private String getKeyKeyPrefix(String volume, String bucket, String key) { + private String getKeyWithDBPrefix(String volume, String bucket, String key) { String keyVB = OzoneConsts.KSM_KEY_PREFIX + volume + OzoneConsts.KSM_KEY_PREFIX + bucket + OzoneConsts.KSM_KEY_PREFIX; @@ -156,11 +161,8 @@ private String getKeyKeyPrefix(String volume, String bucket, String key) { } @Override - public byte[] getDBKeyForKey(String volume, String bucket, String key) { - String keyKeyString = OzoneConsts.KSM_KEY_PREFIX + volume - + OzoneConsts.KSM_KEY_PREFIX + bucket + OzoneConsts.KSM_KEY_PREFIX - + key; - return DFSUtil.string2Bytes(keyKeyString); + public byte[] getDBKeyBytes(String volume, String bucket, String key) { + return DFSUtil.string2Bytes(getKeyWithDBPrefix(volume, bucket, key)); } @Override @@ -247,8 +249,7 @@ public boolean isVolumeEmpty(String volume) throws IOException { */ public boolean isBucketEmpty(String volume, String bucket) throws IOException { - String keyRootName = OzoneConsts.KSM_KEY_PREFIX + volume - + OzoneConsts.KSM_KEY_PREFIX + bucket + OzoneConsts.KSM_KEY_PREFIX; + String keyRootName = getKeyWithDBPrefix(volume, bucket, null); byte[] keyRoot = DFSUtil.string2Bytes(keyRootName); ImmutablePair firstKey = store.peekAround(0, keyRoot); if (firstKey != null) { @@ -281,7 +282,8 @@ public List listBuckets(final String volumeName, // A bucket starts with /#volume/#bucket_prefix MetadataKeyFilter filter = (preKey, currentKey, nextKey) -> { if (currentKey != null) { - String bucketNamePrefix = getBucketKeyPrefix(volumeName, bucketPrefix); + String bucketNamePrefix = + getBucketWithDBPrefix(volumeName, bucketPrefix); String bucket = DFSUtil.bytes2String(currentKey); return bucket.startsWith(bucketNamePrefix); } @@ -329,15 +331,15 @@ public List listKeys(String volumeName, String bucketName, ResultCodes.FAILED_BUCKET_NOT_FOUND); } - MetadataKeyFilter filter = - new KeyPrefixFilter(getKeyKeyPrefix(volumeName, bucketName, keyPrefix)); + MetadataKeyFilter filter = new KeyPrefixFilter( + getKeyWithDBPrefix(volumeName, bucketName, keyPrefix)); List> rangeResult; if (!Strings.isNullOrEmpty(startKey)) { //Since we are excluding start key from the result, // the maxNumOfBuckets is incremented. rangeResult = store.getRangeKVs( - getDBKeyForKey(volumeName, bucketName, startKey), + getDBKeyBytes(volumeName, bucketName, startKey), maxKeys + 1, filter); //Remove start key from result. rangeResult.remove(0); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java index 301d5e7623..feed9cb3f5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeyManagerImpl.java @@ -100,7 +100,7 @@ public KsmKeyInfo allocateKey(KsmKeyArgs args) throws IOException { byte[] volumeKey = metadataManager.getVolumeKey(volumeName); byte[] bucketKey = metadataManager.getBucketKey(volumeName, bucketName); byte[] keyKey = - metadataManager.getDBKeyForKey(volumeName, bucketName, keyName); + metadataManager.getDBKeyBytes(volumeName, bucketName, keyName); //Check if the volume exists if (metadataManager.get(volumeKey) == null) { @@ -188,7 +188,7 @@ public KsmKeyInfo lookupKey(KsmKeyArgs args) throws IOException { String bucketName = args.getBucketName(); String keyName = args.getKeyName(); try { - byte[] keyKey = metadataManager.getDBKeyForKey( + byte[] keyKey = metadataManager.getDBKeyBytes( volumeName, bucketName, keyName); byte[] value = metadataManager.get(keyKey); if (value == null) { @@ -216,7 +216,7 @@ public void deleteKey(KsmKeyArgs args) throws IOException { String bucketName = args.getBucketName(); String keyName = args.getKeyName(); try { - byte[] objectKey = metadataManager.getDBKeyForKey( + byte[] objectKey = metadataManager.getDBKeyBytes( volumeName, bucketName, keyName); byte[] objectValue = metadataManager.get(objectKey); if (objectValue == null) {