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

Steve Loughran commented on HADOOP-13449:
-----------------------------------------

I'm just catching up with this, apologies if I say things that are clearly 
wrong to anyone who knows the code or its history: I don't, yet.

h2. Build

# [~cnauroth] I see your point about declaring the dependency; you are correct. 
It does need to be something published for downstream users.
# I do still want the AWS update to be a standalone patch, and with a matching 
Jackson update. Those can perhaps be done to trunk/ itself, and merged in here, 
so that any/all other trunk work will be with the upgraded artifacts.

h2. Code

Anything in source marked TODO scares me. There's a lot here. Presumably the 
plan is to have them addressed by the time the patch goes in? Or at least 
pulled out into explicit followup JIRAs?

h3. {{DynamoDBMetadataStore}}

* just use .* on the static imports of the s3a constant, util, 
PathMetadataDynamoDBTranslation entries
* L108: no need to mix {{@code}} and {{<pre>}} tags. For multiline, {{<pre>}} 
should suffice ... check with the generated javadocs to see
* L218: that endpoint map/convert logic should be pulled into a static s3a util 
method, with tests.
* L465: what if close() is called twice? If a re-entrant call is made?
* L492, 531: Throw {{InterruptedIOException}}, or set the thread's interrupted 
bit again. We don't want that thread interrupt to be lost if at all possible.
* Most of those info-level per-operation logs should be at Debug
* Operation param to calls of {{translateException}} could be more informative. 
Consider: what info would you need there in order to debug this from the logs.


h2. Tests

As well as the unit tests, I need to be able to run the entire existing suite 
with s3guard enabled. This could be done with a new maven profile which would 
enable it, or simply a property passed down through the build. That's what's 
done in the scale tests in trunk, using methods in {{S3ATestUtils}} to allow a 
maven-defined property to override one in the core-site.xml, allowing you to 
enable it permanently in your {{test/resources/auth-keys.xml}} reference, or 
via maven.


I see that the tests are using java 8 language features. That is going to make 
backporting to branch-2 in future harder. Is everyone happy there (i.e. willing 
to do the effort to downgrade the code if the need arises)? 


h3. {{MetadataStoreTestBase}}

* L234: I know it's not in this patch, but I think the path name should be 
changed to something else.


h3. {{TestDynamoDBMetadataStore}}

I'll need to spend some time looking/playing with this.

* There's an inevitable risk the native libs aren't around/going to work with 
the native OS running the build. What policy is good there? Fail? or downgrade 
to skip? It's probably easiest to leave it as it is now (fail) and see what 
needs to change as/when failures surface.
* Add {{S3AFS.close()}} call in  {{tearDownAfterClass}} just to make sure 
threads all get cleaned up.



> 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
>
>
> 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: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to