[ https://issues.apache.org/jira/browse/HDFS-10175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15256108#comment-15256108 ]
Steve Loughran commented on HDFS-10175: --------------------------------------- +one more thing that would be nice would be for all classes which collect stats to implement an interface to publish those stats: {code} pubic interface StatisticsSource { Map<String, Long> snapshot(); } {code} Why? It's something which filesystems subclasses can implement, IO Streams, etc. The FSData streams would implement and pass on to wrapped streams, or return an empty map. Having a uniform mech like this would make it easy for tests to grab the before/after data, look for diffs, display counts, etc. By avoiding any enums in the returned snapshot, it'd be easy for applications that aren't built against a specific Hadoop version (Spark, etc) to grab all stats available to the app, without knowing the exact mappings, and present them to users in reports . > add per-operation stats to FileSystem.Statistics > ------------------------------------------------ > > Key: HDFS-10175 > URL: https://issues.apache.org/jira/browse/HDFS-10175 > Project: Hadoop HDFS > Issue Type: Improvement > Components: hdfs-client > Reporter: Ram Venkatesh > Assignee: Mingliang Liu > Attachments: HDFS-10175.000.patch, HDFS-10175.001.patch, > HDFS-10175.002.patch, HDFS-10175.003.patch, HDFS-10175.004.patch, > HDFS-10175.005.patch, HDFS-10175.006.patch, TestStatisticsOverhead.java > > > Currently FileSystem.Statistics exposes the following statistics: > BytesRead > BytesWritten > ReadOps > LargeReadOps > WriteOps > These are in-turn exposed as job counters by MapReduce and other frameworks. > There is logic within DfsClient to map operations to these counters that can > be confusing, for instance, mkdirs counts as a writeOp. > Proposed enhancement: > Add a statistic for each DfsClient operation including create, append, > createSymlink, delete, exists, mkdirs, rename and expose them as new > properties on the Statistics object. The operation-specific counters can be > used for analyzing the load imposed by a particular job on HDFS. > For example, we can use them to identify jobs that end up creating a large > number of files. > Once this information is available in the Statistics object, the app > frameworks like MapReduce can expose them as additional counters to be > aggregated and recorded as part of job summary. -- This message was sent by Atlassian JIRA (v6.3.4#6332)