[
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: [email protected]
For additional commands, e-mail: [email protected]