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

Anu Engineer commented on HDDS-427:
-----------------------------------

{quote} Not all of them may view container with no replica as something which 
warrants an exception from api itself.
{quote}
The Ozone/HDDS assumes that a container has the requisite number of replicas. 
Not having the replica is an error state. So the normal path should be that we 
should throw an error.
{quote} In some of those cases it is perfectly normal case
{quote}
Yes, in most cases this is the normal path.
{quote}For example during SCM chill mode a container might not have any replica 
reported initially
{quote}
Chill mode is a special case, it is the time when the cluster is booting up and 
we may not have container reports. So shouldn't the Chill Mode manager handle 
this special case, as appropriate?
{quote}Similarly during container report handling if no replicas are found for 
given container ContainerReportHandler should log the message and move on as 
ReplicationManager can't do anything in that specific case
{quote}
Absolutely not. If the replicas are missing, it is up to replica manager to 
deal with that issue. The appropriate course of action, if it is creating 
alerting events, logging or whatever should be done, should be done by the 
replica manager. This is a case where Container report handler should catch the 
error and send across to Replica Manager – probably with logging. But deciding 
that information will not  go to ReplicaManager is a no go. Returning null to 
flag an error state can lead to users of API ignoring this error. If we throw 
an exception, we are flagging and error which the caller cannot ignore and 
therefore if the user decides that it an okay error state; for example, Chill 
Mode,  User can catch this error and ignore it.

Due to the above reasons  I am -1 on this patch.

 

> For containers with no replica ContainerStateMap#getContainerReplicas should 
> return empty map
> ---------------------------------------------------------------------------------------------
>
>                 Key: HDDS-427
>                 URL: https://issues.apache.org/jira/browse/HDDS-427
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>            Reporter: Ajay Kumar
>            Assignee: Ajay Kumar
>            Priority: Major
>         Attachments: HDDS-427.00.patch
>
>
> Callers of API ContainerStateMap#getContainerReplicas should be allowed to 
> decide if its violation of some condition (when there are no replicas, 
> warranting exception) instead of it being implicit to every caller. Instead 
> ContainerStateMap#getContainerReplicas should return empty map for no 
> replicas. Callers can decide if no replicas for given container is a volition 
> of business condition. Throwing exception in this API also results in a 
> subtle bug in ContainerReportHandler where exception for one container may 
> result in whole container list being skipped.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to