Skip to content

Commit 36d27b9

Browse files
Refactor TableMetadataService to Use DistributedTransactionAdmin Instead of DistributedStorageAdmin (#3146)
Co-authored-by: Hiroyuki Yamada <mogwaing@gmail.com>
1 parent 9fff185 commit 36d27b9

File tree

4 files changed

+18
-18
lines changed

4 files changed

+18
-18
lines changed

data-loader/cli/src/main/java/com/scalar/db/dataloader/cli/command/dataexport/ExportCommand.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static java.nio.file.StandardOpenOption.APPEND;
66
import static java.nio.file.StandardOpenOption.CREATE;
77

8+
import com.scalar.db.api.DistributedTransactionAdmin;
89
import com.scalar.db.api.DistributedTransactionManager;
910
import com.scalar.db.api.TableMetadata;
1011
import com.scalar.db.dataloader.cli.exception.DirectoryValidationException;
@@ -28,7 +29,6 @@
2829
import com.scalar.db.dataloader.core.tablemetadata.TableMetadataService;
2930
import com.scalar.db.dataloader.core.util.KeyUtils;
3031
import com.scalar.db.io.Key;
31-
import com.scalar.db.service.StorageFactory;
3232
import com.scalar.db.service.TransactionFactory;
3333
import java.io.BufferedWriter;
3434
import java.nio.charset.Charset;
@@ -69,17 +69,17 @@ public Integer call() throws Exception {
6969
maxThreads = Runtime.getRuntime().availableProcessors();
7070
}
7171

72-
StorageFactory storageFactory = StorageFactory.create(scalarDbPropertiesFilePath);
7372
TransactionFactory transactionFactory = TransactionFactory.create(scalarDbPropertiesFilePath);
74-
TableMetadataService metaDataService =
75-
new TableMetadataService(storageFactory.getStorageAdmin());
73+
TableMetadata tableMetadata;
74+
try (DistributedTransactionAdmin admin = transactionFactory.getTransactionAdmin()) {
75+
TableMetadataService metaDataService = new TableMetadataService(admin);
76+
tableMetadata = metaDataService.getTableMetadata(namespace, table);
77+
}
7678
ScalarDbDao scalarDbDao = new ScalarDbDao();
7779

7880
ExportManager exportManager =
7981
createExportManager(transactionFactory, scalarDbDao, outputFormat);
8082

81-
TableMetadata tableMetadata = metaDataService.getTableMetadata(namespace, table);
82-
8383
Key partitionKey =
8484
partitionKeyValue != null ? getKeysFromList(partitionKeyValue, tableMetadata) : null;
8585
Key scanStartKey =

data-loader/cli/src/main/java/com/scalar/db/dataloader/cli/command/dataimport/ImportCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import static com.scalar.db.dataloader.cli.util.CommandLineInputUtils.validatePositiveValue;
55

66
import com.fasterxml.jackson.databind.ObjectMapper;
7-
import com.scalar.db.api.DistributedStorageAdmin;
7+
import com.scalar.db.api.DistributedTransactionAdmin;
88
import com.scalar.db.api.TableMetadata;
99
import com.scalar.db.dataloader.core.DataLoaderError;
1010
import com.scalar.db.dataloader.core.FileFormat;
@@ -112,9 +112,9 @@ private Map<String, TableMetadata> createTableMetadataMap(
112112
ControlFile controlFile, String namespace, String tableName)
113113
throws IOException, TableMetadataException {
114114
File configFile = new File(configFilePath);
115-
StorageFactory storageFactory = StorageFactory.create(configFile);
116-
try (DistributedStorageAdmin storageAdmin = storageFactory.getStorageAdmin()) {
117-
TableMetadataService tableMetadataService = new TableMetadataService(storageAdmin);
115+
TransactionFactory transactionFactory = TransactionFactory.create(configFile);
116+
try (DistributedTransactionAdmin transactionAdmin = transactionFactory.getTransactionAdmin()) {
117+
TableMetadataService tableMetadataService = new TableMetadataService(transactionAdmin);
118118
Map<String, TableMetadata> tableMetadataMap = new HashMap<>();
119119
if (controlFile != null) {
120120
for (ControlFileTable table : controlFile.getTables()) {

data-loader/core/src/main/java/com/scalar/db/dataloader/core/tablemetadata/TableMetadataService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.scalar.db.dataloader.core.tablemetadata;
22

3-
import com.scalar.db.api.DistributedStorageAdmin;
3+
import com.scalar.db.api.DistributedTransactionAdmin;
44
import com.scalar.db.api.TableMetadata;
55
import com.scalar.db.dataloader.core.DataLoaderError;
66
import com.scalar.db.dataloader.core.util.TableMetadataUtil;
@@ -18,7 +18,7 @@
1818
@RequiredArgsConstructor
1919
public class TableMetadataService {
2020

21-
private final DistributedStorageAdmin storageAdmin;
21+
private final DistributedTransactionAdmin transactionAdmin;
2222

2323
/**
2424
* Retrieves the {@link TableMetadata} for a specific namespace and table name.
@@ -32,7 +32,7 @@ public class TableMetadataService {
3232
public TableMetadata getTableMetadata(String namespace, String tableName)
3333
throws TableMetadataException {
3434
try {
35-
TableMetadata tableMetadata = storageAdmin.getTableMetadata(namespace, tableName);
35+
TableMetadata tableMetadata = transactionAdmin.getTableMetadata(namespace, tableName);
3636
if (tableMetadata == null) {
3737
throw new TableMetadataException(
3838
DataLoaderError.MISSING_NAMESPACE_OR_TABLE.buildMessage(namespace, tableName));

data-loader/core/src/test/java/com/scalar/db/dataloader/core/tablemetadata/TableMetadataServiceTest.java

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

33
import static org.assertj.core.api.Assertions.assertThatThrownBy;
44

5-
import com.scalar.db.api.DistributedStorageAdmin;
5+
import com.scalar.db.api.DistributedTransactionAdmin;
66
import com.scalar.db.api.TableMetadata;
77
import com.scalar.db.dataloader.core.DataLoaderError;
88
import com.scalar.db.dataloader.core.UnitTestUtils;
@@ -17,15 +17,15 @@
1717

1818
class TableMetadataServiceTest {
1919

20-
DistributedStorageAdmin storageAdmin;
20+
DistributedTransactionAdmin transactionAdmin;
2121
TableMetadataService tableMetadataService;
2222

2323
@BeforeEach
2424
void setup() throws ExecutionException {
25-
storageAdmin = Mockito.mock(DistributedStorageAdmin.class);
26-
Mockito.when(storageAdmin.getTableMetadata("namespace", "table"))
25+
transactionAdmin = Mockito.mock(DistributedTransactionAdmin.class);
26+
Mockito.when(transactionAdmin.getTableMetadata("namespace", "table"))
2727
.thenReturn(UnitTestUtils.createTestTableMetadata());
28-
tableMetadataService = new TableMetadataService(storageAdmin);
28+
tableMetadataService = new TableMetadataService(transactionAdmin);
2929
}
3030

3131
@Test

0 commit comments

Comments
 (0)