[NO ISSUE][STO] Add API to Get Total Disk Usage - user model changes: no - storage format changes: no - interface changes: yes
Details: - Add new API to get total disk usage of all NC io devices. Change-Id: Iba1538205dbadefdddd8b50be6373dbe7525d0ef Reviewed-on: https://asterix-gerrit.ics.uci.edu/2943 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Till Westmann <ti...@apache.org> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/ecbb73fd Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/ecbb73fd Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/ecbb73fd Branch: refs/heads/master Commit: ecbb73fd6e9ec9737b9db5d822b5e2c97638a366 Parents: 8c88975 Author: Murtadha Hubail <mhub...@apache.org> Authored: Fri Aug 31 04:06:01 2018 +0300 Committer: Murtadha Hubail <mhub...@apache.org> Committed: Thu Aug 30 23:34:46 2018 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/hyracks/api/io/IIOManager.java | 7 +++++++ .../java/org/apache/hyracks/control/nc/io/IOManager.java | 10 ++++++++++ 2 files changed, 17 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ecbb73fd/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IIOManager.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IIOManager.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IIOManager.java index ff1e47f..962f826 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IIOManager.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/io/IIOManager.java @@ -97,4 +97,11 @@ public interface IIOManager extends Closeable { * @throws HyracksDataException */ FileReference createWorkspaceFile(String prefix) throws HyracksDataException; + + /** + * Gets the total disk usage in bytes of this {@link IIOManager} io devices handles. + * + * @return the total disk usage in bytes + */ + long getTotalDiskUsage(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ecbb73fd/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java index d13ca8d..b5cb21a 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/io/IOManager.java @@ -36,6 +36,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import org.apache.commons.io.FileUtils; import org.apache.hyracks.api.exceptions.ErrorCode; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.io.FileReference; @@ -416,4 +417,13 @@ public class IOManager implements IIOManager { Thread.currentThread().interrupt(); } } + + @Override + public long getTotalDiskUsage() { + long totalSize = 0; + for (IODeviceHandle handle : ioDevices) { + totalSize += FileUtils.sizeOfDirectory(handle.getMount()); + } + return totalSize; + } }