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

Mingliang Liu commented on HADOOP-13449:
----------------------------------------

Thanks for your insightful comments, [~fabbri]. You summary looks very good to 
me. Having follow-up JIRAs looks a good step as most of them can be addressed 
separately === parallelly. 

# For point 1, I'll change this in the new patch. I think by induction it is 
good enough to include this optimization which should be minor change.
# For the example of pre-existing items, I was thinking the import phase may 
have already loaded the S3 directory tree to the DDB table, e.g. by command 
line tool. For better implementing {{isEmpty}}, I think working with 
S3AFileStatus is a good idea. Steve also suggested we should query DDB lazily 
only when we need the isEmpty information. Obviously we can't enable this 
within DDBMetatdataStore itself.
# The integration tests you shared are very helpful. I'll have a look at the 
{{ITestS3AFileOperationCost#testFakeDirectoryDeletion}} first. Will get back to 
this the day after tomorrow.
# For the invalid creds in URI, the DDBClientFactory itself uses the same 
{{createAWSCredentialProviderSet}} as S3ClientFactory does so it should honor 
the creds in URI name. But after FS#initialization, S3AFS has stripped the 
creds and returns the scheme://host only URI to create a MetadataStore. We can 
refuse to support this case as it's very unsafe and deprecated. One approach 
though is to pass the {{name}} URI which contains the creds to 
{{S3Guard#getMetadataStore()}}.
{code:title=S3AFileSystem#initialize()}
-      metadataStore = S3Guard.getMetadataStore(this);
+      metadataStore = S3Guard.getMetadataStore(this, name);
{code}

By the way, do you have suggestions about the failing {{testPutNew}} unit test? 
My current idea is to override this test method in DDB and local so they can 
have different behaviors; alternatively we can enforce the put API of metadata 
store so both DDB and local implement that for newly put item, all its 
ancestors are existent.

> S3Guard: Implement DynamoDBMetadataStore.
> -----------------------------------------
>
>                 Key: HADOOP-13449
>                 URL: https://issues.apache.org/jira/browse/HADOOP-13449
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>            Reporter: Chris Nauroth
>            Assignee: Mingliang Liu
>         Attachments: HADOOP-13449-HADOOP-13345.000.patch, 
> HADOOP-13449-HADOOP-13345.001.patch, HADOOP-13449-HADOOP-13345.002.patch, 
> HADOOP-13449-HADOOP-13345.003.patch, HADOOP-13449-HADOOP-13345.004.patch, 
> HADOOP-13449-HADOOP-13345.005.patch, HADOOP-13449-HADOOP-13345.006.patch, 
> HADOOP-13449-HADOOP-13345.007.patch, HADOOP-13449-HADOOP-13345.008.patch, 
> HADOOP-13449-HADOOP-13345.009.patch, HADOOP-13449-HADOOP-13345.010.patch, 
> HADOOP-13449-HADOOP-13345.011.patch
>
>
> Provide an implementation of the metadata store backed by DynamoDB.



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