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

Abraham Fine commented on HADOOP-14757:
---------------------------------------

[[email protected]] I'm not sure how much value we would get from doing 
something like this relative to the amount of work involved. The single file 
copy case is trivial but the second case gets a bit more complicated.

My guess is that this ticket refers to the {{dstMetas}} list created in 
{{innerRename}}.

We have multiple layers of iterators in play here and we would need to bubble 
up a guess for the size size of the list which could be quite ugly.

I think another possible option would be to use a Linked List since we do not 
do any random access but any benchmarks I found for ArrayList vs LinkedList 
performance showed minimal to know gains and occasional slowdowns. I think the 
best action here may be no action. What do you think?

> S3AFileSystem.innerRename() to size metadatastore lists better
> --------------------------------------------------------------
>
>                 Key: HADOOP-14757
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14757
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 3.0.0-beta1
>            Reporter: Steve Loughran
>            Assignee: Abraham Fine
>            Priority: Minor
>             Fix For: 3.1.0
>
>
> In {{S3AFileSystem.innerRename()}}, various ArrayLists are created to track 
> paths to update; these are created with the default size. It could/should be 
> possible to allocate better, so avoid expensive array growth & copy 
> operations while iterating through the list of entries.
> # for a single file copy, sizes == 1
> # for a recursive copy, the outcome of the first real LIST will either 
> provide the actual size, or, if the list == the max response, a very large 
> minimum size.
> For #2, we'd need to get the hint of iterable length rather than just iterate 
> through...some interface {{{IterableLength.expectedMinimumSize()}} could do 
> that.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to