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

Steve Loughran commented on HADOOP-18617:
-----------------------------------------

actually, got my plan wrong

* new interface in o.a.h.fs.statistics
* leave all existing stuff in the same place as before
* but implement the new interface
* new builder builds the right thing. which is always a bit tricky in builder 
apis; we would have to wrap the impl builder

> Make IOStatisticsStore and binding APIs public for use beyond our code
> ----------------------------------------------------------------------
>
>                 Key: HADOOP-18617
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18617
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs
>    Affects Versions: 3.3.5
>            Reporter: Steve Loughran
>            Priority: Major
>
> it's really useful to be able to collect iostats in things other than the FS 
> classes -we do it in the S3A and manifest committers.
> But external code -such as the spark committers can't use the methods in 
> {{org.apache.hadoop.fs.statistics.impl))
> Proposed
> Make some classes/interfaces public
> * IOStatisticsBinding
> * IOStatisticsStore
> * IOStatisticsStoreBuilder
> Ideally we should actually move the IOStatisticsStore interface into 
> org.apache.hadoop.fs.statistics and the builder to match -but we can't do 
> that without causing trauma elsewhere (google gcs).
> Strategy there: Add a new interface IOStatisticsCollector in .impl which is 
> then implemented by IOStatisticsStore, and a new builder API which forwards 
> to IOStatisticsStoreBuilder.
> Side issue: we don't make any use of the "clever, elegant functional" bit of 
> DynamicIOStatisticsBuilder/DynamicIOStatistics, where every counter is mapped 
> to a function which is then invoked to get at the atomic longs. It's used in 
> IOStatisticsStoreImpl, but only with AtomicLong and MeanStatistic instances. 
> If we just move to simple maps we will save on lambda-expressions and on 
> lookup overhead. The original intent was something like coda hale metrics 
> where we could add dynamic lookup to other bits of instrumentation; in 
> practise we measure durations and build counts/min/max.



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

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

Reply via email to