Skip to content

Commit b7825fb

Browse files
committed
Fix based on review
1 parent ca9fe4b commit b7825fb

File tree

5 files changed

+33
-23
lines changed

5 files changed

+33
-23
lines changed

core/src/main/java/com/scalar/db/storage/objectstorage/MutateStatementHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import com.scalar.db.exception.storage.RetriableExecutionException;
1111
import java.util.Collections;
1212
import java.util.List;
13+
import javax.annotation.concurrent.ThreadSafe;
1314

15+
@ThreadSafe
1416
public class MutateStatementHandler extends StatementHandler {
1517
public MutateStatementHandler(
1618
ObjectStorageWrapper wrapper, TableMetadataManager metadataManager) {

core/src/main/java/com/scalar/db/storage/objectstorage/ObjectStorageAdmin.java

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import java.util.Set;
2121
import java.util.stream.Collectors;
2222
import javax.annotation.Nullable;
23+
import javax.annotation.concurrent.ThreadSafe;
2324

25+
@ThreadSafe
2426
public class ObjectStorageAdmin implements DistributedStorageAdmin {
2527
public static final String NAMESPACE_METADATA_TABLE = "namespaces";
2628
public static final String TABLE_METADATA_TABLE = "metadata";
@@ -48,6 +50,29 @@ public ObjectStorageAdmin(DatabaseConfig databaseConfig) {
4850
metadataNamespace = objectStorageConfig.getMetadataNamespace();
4951
}
5052

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+
5176
@Override
5277
public StorageInfo getStorageInfo(String namespace) throws ExecutionException {
5378
return STORAGE_INFO;
@@ -450,29 +475,6 @@ private void deleteTableData(String namespace, String table) throws ExecutionExc
450475
}
451476
}
452477

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-
476478
private void checkTableMetadata(TableMetadata metadata) {
477479
Set<String> secondaryIndexNames = metadata.getSecondaryIndexNames();
478480
if (!secondaryIndexNames.isEmpty()) {

core/src/main/java/com/scalar/db/storage/objectstorage/ObjectStorageWrapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import java.util.Optional;
44
import java.util.Set;
5+
import javax.annotation.concurrent.ThreadSafe;
56

7+
@ThreadSafe
68
public interface ObjectStorageWrapper {
79

810
/**

core/src/main/java/com/scalar/db/storage/objectstorage/blobstorage/BlobStorageWrapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import java.util.Optional;
2323
import java.util.Set;
2424
import java.util.stream.Collectors;
25+
import javax.annotation.concurrent.ThreadSafe;
2526

27+
@ThreadSafe
2628
public class BlobStorageWrapper implements ObjectStorageWrapper {
2729
private final BlobContainerClient client;
2830
private final Duration requestTimeoutInSeconds;

core/src/main/java/com/scalar/db/storage/objectstorage/s3/S3Wrapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.List;
1313
import java.util.Optional;
1414
import java.util.Set;
15+
import javax.annotation.concurrent.ThreadSafe;
1516
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
1617
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
1718
import software.amazon.awssdk.core.ResponseBytes;
@@ -32,6 +33,7 @@
3233
import software.amazon.awssdk.services.s3.model.S3Exception;
3334
import software.amazon.awssdk.services.s3.multipart.MultipartConfiguration;
3435

36+
@ThreadSafe
3537
public class S3Wrapper implements ObjectStorageWrapper {
3638
public static final int BATCH_DELETE_SIZE_LIMIT = 1000;
3739
private final S3AsyncClient client;

0 commit comments

Comments
 (0)