/** * Copy constructor. * * @param other The input Statistics object which is cloned. */ public Statistics(Statistics other) { this.scheme = other.scheme; this.rootData = new StatisticsData(); other.visitAll(new StatisticsAggregator<Void>() { @Override public void accept(StatisticsData data) { rootData.add(data); } public Void aggregate() { return null; } }); this.threadData = new ThreadLocal<>(); this.allData = new HashSet<>(); }
/** * Get the number of file system write operations such as create, append * rename etc. * @return number of write operations */ public int getWriteOps() { return visitAll(new StatisticsAggregator<Integer>() { private int writeOps = 0; @Override public void accept(StatisticsData data) { writeOps += data.writeOps; } public Integer aggregate() { return writeOps; } }); }
/** * Get the number of file system write operations such as create, append * rename etc. * @return number of write operations */ public int getWriteOps() { return visitAll(new StatisticsAggregator<Integer>() { private int writeOps = 0; @Override public void accept(StatisticsData data) { writeOps += data.writeOps; } public Integer aggregate() { return writeOps; } }); }
/** * 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 visitAll(new StatisticsAggregator<Integer>() { private int largeReadOps = 0; @Override public void accept(StatisticsData data) { largeReadOps += data.largeReadOps; } public Integer aggregate() { return largeReadOps; } }); }
/** * Get the total number of bytes read * @return the number of bytes */ public long getBytesRead() { return visitAll(new StatisticsAggregator<Long>() { private long bytesRead = 0; @Override public void accept(StatisticsData data) { bytesRead += data.bytesRead; } public Long aggregate() { return bytesRead; } }); }
/** * Get the total number of bytes read * @return the number of bytes */ public long getBytesRead() { return visitAll(new StatisticsAggregator<Long>() { private long bytesRead = 0; @Override public void accept(StatisticsData data) { bytesRead += data.bytesRead; } public Long aggregate() { return bytesRead; } }); }
/** * Get the total number of bytes written * @return the number of bytes */ public long getBytesWritten() { return visitAll(new StatisticsAggregator<Long>() { private long bytesWritten = 0; @Override public void accept(StatisticsData data) { bytesWritten += data.bytesWritten; } public Long aggregate() { return bytesWritten; } }); }
@Override public String toString() { return visitAll(new StatisticsAggregator<String>() { private StatisticsData total = new StatisticsData(); @Override public void accept(StatisticsData data) { total.add(data); } public String aggregate() { return total.toString(); } }); }
@Override public String toString() { return visitAll(new StatisticsAggregator<String>() { private StatisticsData total = new StatisticsData(); @Override public void accept(StatisticsData data) { total.add(data); } public String aggregate() { return total.toString(); } }); }
@Override public String toString() { return visitAll(new StatisticsAggregator<String>() { private StatisticsData total = new StatisticsData(); @Override public void accept(StatisticsData data) { total.add(data); } public String aggregate() { return total.toString(); } }); }
@Override public String toString() { return visitAll(new StatisticsAggregator<String>() { private StatisticsData total = new StatisticsData(); @Override public void accept(StatisticsData data) { total.add(data); } public String aggregate() { return total.toString(); } }); }
visitAll(new StatisticsAggregator<Void>() { private StatisticsData total = new StatisticsData();
/** * Get the number of file system write operations such as create, append * rename etc. * @return number of write operations */ public int getWriteOps() { return visitAll(new StatisticsAggregator<Integer>() { private int writeOps = 0; @Override public void accept(StatisticsData data) { writeOps += data.writeOps; } public Integer aggregate() { return writeOps; } }); }
/** * 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 visitAll(new StatisticsAggregator<Integer>() { private int largeReadOps = 0; @Override public void accept(StatisticsData data) { largeReadOps += data.largeReadOps; } public Integer aggregate() { return largeReadOps; } }); }
/** * Get all statistics data. * MR or other frameworks can use the method to get all statistics at once. * @return the StatisticsData */ public StatisticsData getData() { return visitAll(new StatisticsAggregator<StatisticsData>() { private StatisticsData all = new StatisticsData(); @Override public void accept(StatisticsData data) { all.add(data); } public StatisticsData aggregate() { return all; } }); }
/** * Get the number of file system read operations such as list files. * @return number of read operations */ public int getReadOps() { return visitAll(new StatisticsAggregator<Integer>() { private int readOps = 0; @Override public void accept(StatisticsData data) { readOps += data.readOps; readOps += data.largeReadOps; } public Integer aggregate() { return readOps; } }); }
/** * Get the total number of bytes read. * @return the number of bytes */ public long getBytesRead() { return visitAll(new StatisticsAggregator<Long>() { private long bytesRead = 0; @Override public void accept(StatisticsData data) { bytesRead += data.bytesRead; } public Long aggregate() { return bytesRead; } }); }
/** * Get the total number of bytes read on erasure-coded files. * @return the number of bytes */ public long getBytesReadErasureCoded() { return visitAll(new StatisticsAggregator<Long>() { private long bytesReadErasureCoded = 0; @Override public void accept(StatisticsData data) { bytesReadErasureCoded += data.bytesReadErasureCoded; } public Long aggregate() { return bytesReadErasureCoded; } }); }
/** * Get the total number of bytes written. * @return the number of bytes */ public long getBytesWritten() { return visitAll(new StatisticsAggregator<Long>() { private long bytesWritten = 0; @Override public void accept(StatisticsData data) { bytesWritten += data.bytesWritten; } public Long aggregate() { return bytesWritten; } }); }
@Override public String toString() { return visitAll(new StatisticsAggregator<String>() { private StatisticsData total = new StatisticsData(); @Override public void accept(StatisticsData data) { total.add(data); } public String aggregate() { return total.toString(); } }); }