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

Jason Lowe commented on HADOOP-9639:
------------------------------------

Thanks for posting the design doc, Sangjin!  A few comments based on a cursory 
review:

* How does the client determine which job submission files are eligible for 
participating in the public cache?
* The algorithm refers to a file being uploaded and "fully written."  If files 
are only renamed to the advertised location after it has finished uploading to 
a temporary location first, how does a final name end up not being "fully 
written"?
* Speaking of temporary files, there probably should be an algorithm clients 
should use to try to derive a unique temporary name to avoid collisions, 
similar to the mechanism to derive a unique reader lock.  Bonus points if the 
cleaner service recognizes and acts upon orphaned temporary files from clients 
that crashed/disconnected during upload.
* When a client uploads a new file, loses the race with another client, and 
determines for some reason that the version that won is bad, do we really want 
that client removing the file?  That seems like it will break the job that won 
the race.
* Many workflows use "fire-and-forget" clients that do not have the job 
submission client waiting for job completion.  In that case the read lock will 
be leaked by the client and the cleaner must remove any read lock files that 
are considered stale even if it finds there is an active reference to the cache 
entry.  Failure to do so for a consistently active entry in the cache leads to 
unbounded namespace leaks.
                
> truly shared cache for jars (jobjar/libjar)
> -------------------------------------------
>
>                 Key: HADOOP-9639
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9639
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: filecache
>    Affects Versions: 2.0.4-alpha
>            Reporter: Sangjin Lee
>            Assignee: Sangjin Lee
>         Attachments: shared_cache_design.pdf
>
>
> Currently there is the distributed cache that enables you to cache jars and 
> files so that attempts from the same job can reuse them. However, sharing is 
> limited with the distributed cache because it is normally on a per-job basis. 
> On a large cluster, sometimes copying of jobjars and libjars becomes so 
> prevalent that it consumes a large portion of the network bandwidth, not to 
> speak of defeating the purpose of "bringing compute to where data is". This 
> is wasteful because in most cases code doesn't change much across many jobs.
> I'd like to propose and discuss feasibility of introducing a truly shared 
> cache so that multiple jobs from multiple users can share and cache jars. 
> This JIRA is to open the discussion.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to