[ 
https://issues.apache.org/jira/browse/HDDS-297?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16604676#comment-16604676
 ] 

Shashikant Banerjee commented on HDDS-297:
------------------------------------------

Thanks [~nandakumar131], for the review. patch v10 addresses your review 
comments.

..Why do we need the old raftGroup for re-initialization?

We need the raft groupId during reinitialization as with MutiRaft support in 
Ratis, during reinitialize the old RaftGroupId is removed and new one is added 
for raftServerImpl instance. Below is the code for reference:
{code:java}
public CompletableFuture<RaftClientReply> reinitializeAsync(
    ReinitializeRequest request) throws IOException {
  LOG.info("{}: reinitialize* {}", getId(), request);
  if (!reinitializeRequest.compareAndSet(null, request)) {
    throw new IOException("Another reinitialize is already in progress.");
  }
  final RaftGroupId oldGroupId = request.getRaftGroupId();
  return getImplFuture(oldGroupId)
      .thenAcceptAsync(RaftServerImpl::shutdown)
      .thenAccept(_1 -> impls.remove(oldGroupId))
      .thenCompose(_1 -> impls.addNew(request.getGroup()))
      .thenApply(newImpl -> {
        LOG.debug("{}: newImpl = {}", getId(), newImpl);
        final boolean started = newImpl.start();
        Preconditions.assertTrue(started, () -> getId()+ ": failed to start a 
new impl: " + newImpl);
        return new RaftClientReply(request, newImpl.getCommitInfos());
      })
      .whenComplete((_1, throwable) -> {
        if (throwable != null) {
          impls.remove(request.getGroup().getGroupId());
          LOG.warn(getId() + ": Failed reinitialize* " + request, throwable);
        }

        reinitializeRequest.set(null);
      });
}

{code}

> Add pipeline actions in Ozone
> -----------------------------
>
>                 Key: HDDS-297
>                 URL: https://issues.apache.org/jira/browse/HDDS-297
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: SCM
>            Reporter: Mukul Kumar Singh
>            Assignee: Mukul Kumar Singh
>            Priority: Major
>             Fix For: 0.2.1
>
>         Attachments: HDDS-297.001.patch, HDDS-297.002.patch, 
> HDDS-297.003.patch, HDDS-297.004.patch, HDDS-297.005.patch, 
> HDDS-297.006.patch, HDDS-297.007.patch, HDDS-297.008.patch, 
> HDDS-297.009.patch, HDDS-297.010.patch
>
>
> Pipeline in Ozone are created out of a group of nodes depending upon the 
> replication factor and type. These pipeline provide a transport protocol for 
> data transfer.
> Inorder to detect any failure of pipeline, SCM should receive pipeline 
> reports from Datanodes and process it to identify various raft rings.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to