|
20 | 20 | import java.util.Set; |
21 | 21 | import java.util.stream.Collectors; |
22 | 22 | import javax.annotation.Nullable; |
| 23 | +import javax.annotation.concurrent.ThreadSafe; |
23 | 24 |
|
| 25 | +@ThreadSafe |
24 | 26 | public class ObjectStorageAdmin implements DistributedStorageAdmin { |
25 | 27 | public static final String NAMESPACE_METADATA_TABLE = "namespaces"; |
26 | 28 | public static final String TABLE_METADATA_TABLE = "metadata"; |
@@ -48,6 +50,29 @@ public ObjectStorageAdmin(DatabaseConfig databaseConfig) { |
48 | 50 | metadataNamespace = objectStorageConfig.getMetadataNamespace(); |
49 | 51 | } |
50 | 52 |
|
| 53 | + private static String getTableMetadataKey(String namespace, String table) { |
| 54 | + return String.join( |
| 55 | + String.valueOf(ObjectStorageUtils.CONCATENATED_KEY_DELIMITER), namespace, table); |
| 56 | + } |
| 57 | + |
| 58 | + private static String getNamespaceNameFromTableMetadataKey(String tableMetadataKey) { |
| 59 | + List<String> parts = |
| 60 | + Splitter.on(ObjectStorageUtils.CONCATENATED_KEY_DELIMITER).splitToList(tableMetadataKey); |
| 61 | + if (parts.size() != 2 || parts.get(0).isEmpty()) { |
| 62 | + throw new IllegalArgumentException("Invalid table metadata key: " + tableMetadataKey); |
| 63 | + } |
| 64 | + return parts.get(0); |
| 65 | + } |
| 66 | + |
| 67 | + private static String getTableNameFromTableMetadataKey(String tableMetadataKey) { |
| 68 | + List<String> parts = |
| 69 | + Splitter.on(ObjectStorageUtils.CONCATENATED_KEY_DELIMITER).splitToList(tableMetadataKey); |
| 70 | + if (parts.size() != 2 || parts.get(1).isEmpty()) { |
| 71 | + throw new IllegalArgumentException("Invalid table metadata key: " + tableMetadataKey); |
| 72 | + } |
| 73 | + return parts.get(1); |
| 74 | + } |
| 75 | + |
51 | 76 | @Override |
52 | 77 | public StorageInfo getStorageInfo(String namespace) throws ExecutionException { |
53 | 78 | return STORAGE_INFO; |
@@ -450,29 +475,6 @@ private void deleteTableData(String namespace, String table) throws ExecutionExc |
450 | 475 | } |
451 | 476 | } |
452 | 477 |
|
453 | | - private static String getTableMetadataKey(String namespace, String table) { |
454 | | - return String.join( |
455 | | - String.valueOf(ObjectStorageUtils.CONCATENATED_KEY_DELIMITER), namespace, table); |
456 | | - } |
457 | | - |
458 | | - private static String getNamespaceNameFromTableMetadataKey(String tableMetadataKey) { |
459 | | - List<String> parts = |
460 | | - Splitter.on(ObjectStorageUtils.CONCATENATED_KEY_DELIMITER).splitToList(tableMetadataKey); |
461 | | - if (parts.size() != 2 || parts.get(0).isEmpty()) { |
462 | | - throw new IllegalArgumentException("Invalid table metadata key: " + tableMetadataKey); |
463 | | - } |
464 | | - return parts.get(0); |
465 | | - } |
466 | | - |
467 | | - private static String getTableNameFromTableMetadataKey(String tableMetadataKey) { |
468 | | - List<String> parts = |
469 | | - Splitter.on(ObjectStorageUtils.CONCATENATED_KEY_DELIMITER).splitToList(tableMetadataKey); |
470 | | - if (parts.size() != 2 || parts.get(1).isEmpty()) { |
471 | | - throw new IllegalArgumentException("Invalid table metadata key: " + tableMetadataKey); |
472 | | - } |
473 | | - return parts.get(1); |
474 | | - } |
475 | | - |
476 | 478 | private void checkTableMetadata(TableMetadata metadata) { |
477 | 479 | Set<String> secondaryIndexNames = metadata.getSecondaryIndexNames(); |
478 | 480 | if (!secondaryIndexNames.isEmpty()) { |
|
0 commit comments