[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;
+    }
 }

Reply via email to