소스 검색

HDDS-775. Batch updates to container db to minimize number of updates.
Contributed by Mukul Kumar Singh.

Nanda kumar 6 년 전
부모
커밋
73fbde31c6
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/SCMContainerManager.java

+ 3 - 1
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/SCMContainerManager.java

@@ -526,6 +526,7 @@ public class SCMContainerManager implements ContainerManager {
         containerInfos = reports.getReportsList();
     PendingDeleteStatusList pendingDeleteStatusList =
         new PendingDeleteStatusList(datanodeDetails);
+    BatchOperation batch = new BatchOperation();
     for (StorageContainerDatanodeProtocolProtos.ContainerInfo contInfo :
         containerInfos) {
       // Update replica info during registration process.
@@ -575,7 +576,7 @@ public class SCMContainerManager implements ContainerManager {
           //
           // We need to write this to DB again since the closed only write
           // the updated State.
-          containerStore.put(dbKey, newState.toByteArray());
+          batch.put(dbKey, newState.toByteArray());
 
         } else {
           // Container not found in our container db.
@@ -588,6 +589,7 @@ public class SCMContainerManager implements ContainerManager {
         lock.unlock();
       }
     }
+    containerStore.writeBatch(batch);
     if (pendingDeleteStatusList.getNumPendingDeletes() > 0) {
       eventPublisher.fireEvent(SCMEvents.PENDING_DELETE_STATUS,
           pendingDeleteStatusList);