hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaoyu Yao (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-11001) Ozone:SCM: Add support for registerNode in SCM
Date Wed, 26 Oct 2016 01:54:58 GMT

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

Xiaoyu Yao commented on HDFS-11001:
-----------------------------------

Thanks [~anu] for the responses, below are some follow up questions:

bq. I did, but both getCommand and addCommand are write operations in our world. The reason
being that getCommand returns the list of all commands at this point time, and we replace
the commandMap with an empty list. It is actually a list with NullCommand with patch v002.

Thanks for clarify that getCommand is actually a write op in our world. Makes sense to me.

bq. We actually allocate this list in the constructor and it is fly-weight pattern as much
as I can see. It does the allocation only once and then uses this list to return whenever
we need.Since we allocate this list in the constructor what we return from getCommand is guaranteed
to be not null.
{code}
nullList = new LinkedList<>();
nullList.add(NullCommand.newBuilder().build());
{code}

1. Sorry I was not clear about the fly-weight pattern. I mean the emptyList does not 
need to be constructed each time getCommand() return a non-empty list for a datanode.

{code}
LinkedList<SCMCommand> emptyList = new LinkedList<>();
{code}

2. You are right on the nullList. However, the allocation once guarantee is from the caller.

It would be better to reuse the class static empty List so that the caller won't need to worry
about unnecessary object creation, which looks like a be a very good case for fly-weight pattern.


3. If we don't expect any operation at the datanode side for NullCommand, can we remove NullCommand
to save a RPC roundtrip? This way, {{nullList.add(NullCommand.newBuilder().build());}} can
also be removed. 

> Ozone:SCM: Add support for registerNode in SCM
> ----------------------------------------------
>
>                 Key: HDFS-11001
>                 URL: https://issues.apache.org/jira/browse/HDFS-11001
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ozone
>    Affects Versions: HDFS-7240
>            Reporter: Anu Engineer
>            Assignee: Anu Engineer
>             Fix For: HDFS-7240
>
>         Attachments: HDFS-11001-HDFS-7240.001.patch, HDFS-11001-HDFS-7240.002.patch
>
>
> Adds support for a datanode registration. Right now SCM relies on Namenode for the datanode
registration. With this change we will be able to run SCM independently if needed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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


Mime
View raw message