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

Reply via email to