HADOOP-6859 - Introduce additional statistics to FileSystem to track file system operations. Contributed by Suresh Srinivas.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@964689 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7f14e37076
commit
0ac05814c2
|
@ -18,6 +18,9 @@ Trunk (unreleased changes)
|
||||||
|
|
||||||
HADOOP-6853. Common component of HDFS-1045. (jghoman)
|
HADOOP-6853. Common component of HDFS-1045. (jghoman)
|
||||||
|
|
||||||
|
HADOOP-6859 - Introduce additional statistics to FileSystem to track
|
||||||
|
file system operations (suresh)
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
|
|
||||||
HADOOP-6644. util.Shell getGROUPS_FOR_USER_COMMAND method name
|
HADOOP-6644. util.Shell getGROUPS_FOR_USER_COMMAND method name
|
||||||
|
|
|
@ -33,8 +33,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
@ -42,7 +42,6 @@ import org.apache.hadoop.classification.InterfaceAudience;
|
||||||
import org.apache.hadoop.classification.InterfaceStability;
|
import org.apache.hadoop.classification.InterfaceStability;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.conf.Configured;
|
import org.apache.hadoop.conf.Configured;
|
||||||
import org.apache.hadoop.fs.Options.CreateOpts;
|
|
||||||
import org.apache.hadoop.fs.Options.Rename;
|
import org.apache.hadoop.fs.Options.Rename;
|
||||||
import org.apache.hadoop.fs.permission.FsPermission;
|
import org.apache.hadoop.fs.permission.FsPermission;
|
||||||
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
||||||
|
@ -1783,6 +1782,9 @@ public abstract class FileSystem extends Configured implements Closeable {
|
||||||
private final String scheme;
|
private final String scheme;
|
||||||
private AtomicLong bytesRead = new AtomicLong();
|
private AtomicLong bytesRead = new AtomicLong();
|
||||||
private AtomicLong bytesWritten = new AtomicLong();
|
private AtomicLong bytesWritten = new AtomicLong();
|
||||||
|
private AtomicInteger readOps = new AtomicInteger();
|
||||||
|
private AtomicInteger largeReadOps = new AtomicInteger();
|
||||||
|
private AtomicInteger writeOps = new AtomicInteger();
|
||||||
|
|
||||||
public Statistics(String scheme) {
|
public Statistics(String scheme) {
|
||||||
this.scheme = scheme;
|
this.scheme = scheme;
|
||||||
|
@ -1804,6 +1806,30 @@ public abstract class FileSystem extends Configured implements Closeable {
|
||||||
bytesWritten.getAndAdd(newBytes);
|
bytesWritten.getAndAdd(newBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increment the number of read operations
|
||||||
|
* @param count number of read operations
|
||||||
|
*/
|
||||||
|
public void incrementReadOps(int count) {
|
||||||
|
readOps.getAndAdd(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increment the number of large read operations
|
||||||
|
* @param count number of large read operations
|
||||||
|
*/
|
||||||
|
public void incrementLargeReadOps(int count) {
|
||||||
|
largeReadOps.getAndAdd(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increment the number of write operations
|
||||||
|
* @param count number of write operations
|
||||||
|
*/
|
||||||
|
public void incrementWriteOps(int count) {
|
||||||
|
writeOps.getAndAdd(count);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the total number of bytes read
|
* Get the total number of bytes read
|
||||||
* @return the number of bytes
|
* @return the number of bytes
|
||||||
|
@ -1820,9 +1846,36 @@ public abstract class FileSystem extends Configured implements Closeable {
|
||||||
return bytesWritten.get();
|
return bytesWritten.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of file system read operations such as list files
|
||||||
|
* @return number of read operations
|
||||||
|
*/
|
||||||
|
public int getReadOps() {
|
||||||
|
return readOps.get() + largeReadOps.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of large file system read operations such as list files
|
||||||
|
* under a large directory
|
||||||
|
* @return number of large read operations
|
||||||
|
*/
|
||||||
|
public int getLargeReadOps() {
|
||||||
|
return largeReadOps.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of file system write operations such as create, append
|
||||||
|
* rename etc.
|
||||||
|
* @return number of write operations
|
||||||
|
*/
|
||||||
|
public int getWriteOps() {
|
||||||
|
return writeOps.get();
|
||||||
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return bytesRead + " bytes read and " + bytesWritten +
|
return bytesRead + " bytes read, " + bytesWritten + " bytes written, "
|
||||||
" bytes written";
|
+ readOps + " read ops, " + largeReadOps + " large read ops, "
|
||||||
|
+ writeOps + " write ops";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue