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

Shashikant Banerjee commented on HDDS-676:
------------------------------------------

Thanks[~anu], for the review comments.
{code:java}
I agree with this premise; that is we only talk to next data node if we get a 
failure on the first data node.

If that is the case, do we need all this Async framework changes, hash tables 
etc?
{code}
if we get a failure/connection issues with one of a datanode, we failover to 
the next datanode. If we don't maintain the state of the active channels for 
communication in the hash map, so that when we close the client we close all 
the conections. If we don't maintain the state, we need to close the 
connections in active read path as a part of handling the exception. Connection 
Errors can be transient.  Also, multiple ozone clients can use the same 
XceiverClient instance as we maintain a client cache, so immediately closing 
the connection in case one client op fails.

HashMap will also be helpful if we get the leader info cached, so that we will 
use that specific channel to execute first.

Regarding the async framework change, there is functionally no change in the 
code.It has been just split to 2 functions so while executing the command we 
execute on a specific channel.

> Enable Read from open Containers via Standalone Protocol
> --------------------------------------------------------
>
>                 Key: HDDS-676
>                 URL: https://issues.apache.org/jira/browse/HDDS-676
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>            Reporter: Shashikant Banerjee
>            Assignee: Shashikant Banerjee
>            Priority: Major
>         Attachments: HDDS-676.001.patch, HDDS-676.002.patch, 
> HDDS-676.003.patch, HDDS-676.004.patch, HDDS-676.005.patch, 
> HDDS-676.006.patch, HDDS-676.007.patch
>
>
> With BlockCommitSequenceId getting updated per block commit on open 
> containers in OM as well datanode, Ozone Client reads can through Standalone 
> protocol not necessarily requiring Ratis. Client should verify the BCSID of 
> the container which has the data block , which should always be greater than 
> or equal to the BCSID of the block to be read and the existing block BCSID 
> should exactly match that of the block to be read. As a part of this, Client 
> can try to read from a replica with a supplied BCSID and failover to the next 
> one in case the block does ont exist on one replica.



--
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