[
https://issues.apache.org/jira/browse/HDFS-8777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14640016#comment-14640016
]
Rakesh R commented on HDFS-8777:
--------------------------------
I have attached patch taken from HDFS-8266 jira. Earlier [~demongaorui] helped
in reviews and got few
[comments|https://issues.apache.org/jira/browse/HDFS-8266?focusedCommentId=14568815&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14568815]
in HDFS-8266. I have addressed (1) and (2). Could you please give few
clarifications on (3) and (4).
bq. (3) I think we could not confirm the older snapshots still have the old EZ
settings here, cause snap1Zone has the exactly same value as snap3Zone. Maybe,
we can make different settings of old EZ and new EZ, so that we can confirm the
older snapshot keep the old EZ settings.
Presently there is no option to add a new schema apart from the
{{SYS_DEFAULT_SCHEMA}}. I have tested the behavior by creating a new ec zone
with different schema. It will allow to create the eczone without any ecschema.
IMHO we could improve this by validating the user given schema with the
{{ErasureCodingSchemaManager#activeSchemas}}, if not should throw IOException
to the users, right.
Shall I raise a separate jira to validate the user passed ECSchema against
{{activeSchemas}} and work on this ?
{code}
fs.createErasureCodingZone(zone, customECSchema, 0);
{code}
bq. (4) In method testSnapshotsOnECZoneDir(), ECZone was created based on
zone(value: "/zone"). When we call fs.getErasureCodingZone() respectively with
parameter
snap1Zone(value:"/zone/.snapshot/snap1/zone")}}and{{snap1(value:"/zone/.snapshot/snap1"),
I think fs.getErasureCodingZone(snap1) actually returns the ECZone set to
zone(value:"/zone"), and {{fs.getErasureCodingZone(snap1Zone) returns the
ECZone set in the process of snapshot, right? If it's right, then ECZone can be
nested, so does fs.getErasureCodingZone() return the nearest parent dir which
is ECZone of the Path parameter (or the Path parameter itself if the Path
parameter is ECZone)?
IIUC {{fs.getErasureCodingZone}} will always returns the parent dir of the
ECZone. I have modified the testcase by giving a new snapfile name {{"file1"}}
instead of reusing the {{"zone"}} name to avoid confusion.
> Erasure Coding: add tests for taking snapshots on EC files
> ----------------------------------------------------------
>
> Key: HDFS-8777
> URL: https://issues.apache.org/jira/browse/HDFS-8777
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Jing Zhao
> Assignee: Rakesh R
> Attachments: HDFS-8777-HDFS-7285-00.patch
>
>
> We need to add more tests for (EC + snapshots). The tests need to verify the
> fsimage saving/loading is correct.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)