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

Elek, Marton commented on HDDS-325:
-----------------------------------

Thank you the clarification [~ljain]. Let me summarize the goals (and fix me if 
my understanding is wrong):

1. You would like to use two different event_type/topics. If the event is sent 
to the SCMEvents.DATANODE_COMMAND, the message will be sent to the datanode and 
the retry logic should be implemented manually and an additional message should 
be sent to an event watcher.

2. If the message is sent to the SCMEvents.RETRIABLE_DATANODE_COMMAND the 
message will be sent to the datanode AND the retry will be handled 
automatically.

If this is the situation: I like the idea but I don't think that we need to 
implement a RetriableCompletionPayload for that.  I think it could be 
implemented with a more simple way.
 
As I wrote I prefer to keep the messaging logic out from the message payload. 
Message payload is just a collection of the data and I can't see any reason to 
put more logic to there. Even in your patch you can put the retry logic to 
RetriableEventWatcher.onTimeout method.

The method payload type and the event type is separated. It's very easy to 
create a RetriableEventWatcher which listens on the 
SCMEvents.RETRIABLE_DATANODE_COMMAND but can receive exactly the same message 
as the SCMEvents.DATANODE_COMMAND. (It also could help to switch between the 
two approach).

I think currently we use a generic SCMEvents.DATANODE_COMMAND for all the 
datanode commands. So we don't need to make the EventWatcher more complex with 
adding a Set to it. If in the future we will switch to handle all the different 
datanode commands with different event type we can easily instantiate multiple 
RetriableEventWatcher. With this approach we can monitor the different type of 
events easily and the implementation could be more easy (IMHO).

Does it make sense?

> Add event watcher for delete blocks command
> -------------------------------------------
>
>                 Key: HDDS-325
>                 URL: https://issues.apache.org/jira/browse/HDDS-325
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: Ozone Datanode, SCM
>            Reporter: Lokesh Jain
>            Assignee: Lokesh Jain
>            Priority: Major
>             Fix For: 0.2.1
>
>         Attachments: HDDS-325.001.patch, HDDS-325.002.patch, 
> HDDS-325.003.patch
>
>
> This Jira aims to add watcher for deleteBlocks command. It removes the 
> current rpc call required for datanode to send the acknowledgement for 
> deleteBlocks.



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