diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java index e5379796b2ad..f916c8072ec8 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java @@ -92,7 +92,7 @@ import static java.util.stream.Collectors.toSet; public class DatabaseShardManager - implements ShardManager, ShardRecorder + implements ShardManager { private static final Logger log = Logger.get(DatabaseShardManager.class); @@ -504,12 +504,6 @@ private static boolean commitTransaction(ShardDao dao, long transactionId) return true; } - @Override - public void recordCreatedShard(long transactionId, UUID shardUuid) - { - dao.insertCreatedShard(shardUuid, transactionId); - } - @Override public void createBuckets(long distributionId, int bucketCount) { diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardRecorder.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardRecorder.java new file mode 100644 index 000000000000..ac4d839aa0e5 --- /dev/null +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardRecorder.java @@ -0,0 +1,38 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.raptor.metadata; + +import com.facebook.presto.raptor.util.DaoSupplier; + +import javax.inject.Inject; + +import java.util.UUID; + +public class DatabaseShardRecorder + implements ShardRecorder +{ + private final ShardDao dao; + + @Inject + public DatabaseShardRecorder(DaoSupplier shardDaoSupplier) + { + this.dao = shardDaoSupplier.onDemand(); + } + + @Override + public void recordCreatedShard(long transactionId, UUID shardUuid) + { + dao.insertCreatedShard(shardUuid, transactionId); + } +} diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageModule.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageModule.java index 79941e7fe537..1b38a6005891 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageModule.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageModule.java @@ -15,6 +15,7 @@ import com.facebook.presto.raptor.backup.BackupManager; import com.facebook.presto.raptor.metadata.DatabaseShardManager; +import com.facebook.presto.raptor.metadata.DatabaseShardRecorder; import com.facebook.presto.raptor.metadata.MetadataConfig; import com.facebook.presto.raptor.metadata.ShardCleaner; import com.facebook.presto.raptor.metadata.ShardCleanerConfig; @@ -52,8 +53,9 @@ public void configure(Binder binder) binder.bind(StorageManager.class).to(OrcStorageManager.class).in(Scopes.SINGLETON); binder.bind(StorageService.class).to(FileStorageService.class).in(Scopes.SINGLETON); binder.bind(ShardManager.class).to(DatabaseShardManager.class).in(Scopes.SINGLETON); - binder.bind(ShardRecorder.class).to(DatabaseShardManager.class).in(Scopes.SINGLETON); + binder.bind(ShardRecorder.class).to(DatabaseShardRecorder.class).in(Scopes.SINGLETON); binder.bind(DatabaseShardManager.class).in(Scopes.SINGLETON); + binder.bind(DatabaseShardRecorder.class).in(Scopes.SINGLETON); binder.bind(ShardRecoveryManager.class).in(Scopes.SINGLETON); binder.bind(BackupManager.class).in(Scopes.SINGLETON); binder.bind(ShardCompactionManager.class).in(Scopes.SINGLETON);