[
https://issues.apache.org/jira/browse/HDFS-10636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15433727#comment-15433727
]
Virajith Jalaparti commented on HDFS-10636:
-------------------------------------------
Hi [~eddyxu],
bq. I know vendors who have already implemented similar solutions based on
{{FinalizedReplica}}.
I am trying to understand the use case for {{FinalizedReplica}} you mentioned.
What properties of {{FinalizedReplica}} do you think we should preserve for
these implementations to continue working? This question is also related to the
following.
bq. Have you considered about making {{LocalReplica}} and {{ProvidedReplica}}
being subclasses of {{FinalizedReplica}}?
{{FinalizedReplica}}, as implemented today, does not have any particular
characteristics other than it's state and type. There do not exist functions in
{{FinalizedReplica}} that are not in {{ReplicaInfo}}. Is the goal of your
proposal to have {{FinalizedReplica}} used as a type, and not just state? Do
you see having to do this for other states as well (RUR, RBW, RWR, TEMPORARY)?
or having it for {{FinalizedReplica}} is more important?
One concrete proposal for this can be the following: {{FinalizedReplica}} will
be an abstract subclass of {{ReplicaInfo}} (overrides
{{ReplicaInfo::getState()}}). We can then define {{LocalFinalizedReplica}} and
{{ProvidedFinalizedReplica}}, which can be subclasses of {{FinalizedReplica}}.
However, this would cause {{LocalFinalizedReplica}} to re-implement the
functionality of other {{LocalReplica}}s.
One way to avoid such re-implementation could be to have {{FinalizedReplica}}
as an interface, with a {{FinalizedReplica::getReplicaInfo()}} function to
perform all the {{ReplicaInfo}} related functions. Then
{{LocalFinalizedReplica}} can subclass {{LocalReplica}} and implement the
{{FinalizedReplica}} interface.
> Modify ReplicaInfo to remove the assumption that replica metadata and data
> are stored in java.io.File.
> ------------------------------------------------------------------------------------------------------
>
> Key: HDFS-10636
> URL: https://issues.apache.org/jira/browse/HDFS-10636
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: datanode, fs
> Reporter: Virajith Jalaparti
> Assignee: Virajith Jalaparti
> Attachments: HDFS-10636.001.patch, HDFS-10636.002.patch,
> HDFS-10636.003.patch, HDFS-10636.004.patch, HDFS-10636.005.patch
>
>
> Replace java.io.File related APIs from {{ReplicaInfo}}, and enable the
> definition of new {{ReplicaInfo}} sub-classes whose metadata and data can be
> present on external storages (HDFS-9806).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]