Steve Loughran created HADOOP-19354:
---------------------------------------

             Summary: S3AInputStream to be created by factory under S3AStore
                 Key: HADOOP-19354
                 URL: https://issues.apache.org/jira/browse/HADOOP-19354
             Project: Hadoop Common
          Issue Type: Sub-task
          Components: fs/s3
    Affects Versions: 3.4.2
            Reporter: Steve Loughran
            Assignee: Steve Loughran


Migrate S3AInputStream creation into a factory pattern, push down into S3AStore.

Proposed factories
* default: whatever this release has as default
* classic: current S3AInputStream
* prefetch: prefetching
* analytics: new analytics stream
* other: reads a classname from another prop, instantiates.

Also proposed
* stream to implement some stream capability to declare what they are (classic, 
prefetch, analytics, other). 

h2. Implementation

All callbacks used by the stream also to call directly onto S3AStore.
S3AFileSystem must not be invoked at all (if it is needed: PR is still not 
ready).
Some interface from Instrumentation will be passed to factory; this shall 
include a way to create new per-stream 
The factory shall implement org.apache.hadoop.service.Service; S3AStore shall 
do same and become a subclass of CompositeService. It shall attach the factory 
as a child, so they can follow the same lifecycle. We shall do the same for 
anything else that gets pushed down.

Everything related to stream creation must go from s3afs; and creation of the 
factory itself. This must be done in S3AStore.initialize(). 

As usual, this will complicate mocking. But the streams themselves should not 
require changes, at least significant ones.

Testing.
* The huge file tests should be tuned so each of the different ones uses a 
different stream, always.
* use a -Dstream="factory name" to choose factory, rather than the -Dprefetch
* if not set, whatever is in auth-keys gets picked up.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-dev-h...@hadoop.apache.org

Reply via email to