diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/IndexDataCapacityMonitor.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/IndexDataCapacityMonitor.java index 752991ac7..66e827d80 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/IndexDataCapacityMonitor.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/IndexDataCapacityMonitor.java @@ -60,14 +60,21 @@ public class IndexDataCapacityMonitor { public static void start() { long timestamp = BlockIndexEngine.newFinder().findLastBlockIndex(); - IndexDBConnector dbConnector = new IndexDBConnector(timestamp); - long count = 0; + //TODO: 为IndexDBConnector增加闭包执行函数 + IndexDBConnector dbConnector = null; try { - count = dbConnector.fetchIndexSize(); - } catch (SQLException e) { - logger.error("Failed to to fetch index size from DB:{}", timestamp, e); + dbConnector = new IndexDBConnector(timestamp); + long count = 0; + try { + count = dbConnector.fetchIndexSize(); + } catch (SQLException e) { + logger.error("Failed to to fetch index size from DB:{}", timestamp, e); + } + detector = new Detector(timestamp, count); + } finally { + if(dbConnector != null){ + dbConnector.close(); + } } - detector = new Detector(timestamp, count); - } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexDBConnector.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexDBConnector.java index c021189ec..272663be0 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexDBConnector.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexDBConnector.java @@ -136,4 +136,8 @@ public class IndexDBConnector { return "jdbc:hsqldb:file:" + basePath + "/" + timestamp + "/" + dbFileName; } } + + public void close(){ + //TODO: + } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexMetaCollection.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexMetaCollection.java index 33778effe..cf8d4e7fa 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexMetaCollection.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/data/index/IndexMetaCollection.java @@ -11,35 +11,11 @@ import java.util.List; public class IndexMetaCollection implements Iterable { private List metaInfo; - private BlockFinder finder; public IndexMetaCollection() { metaInfo = new ArrayList<>(); - finder = BlockIndexEngine.newFinder(); } - public Iterator group() { - List indexMetaGroups = new ArrayList(); - for (IndexMetaInfo info : metaInfo) { - long timestamp = finder.find(info.getStartTime()); - - int index = indexMetaGroups.indexOf(new IndexMetaGroup(timestamp)); - IndexMetaGroup metaGroup; - - if (index == -1) { - metaGroup = new IndexMetaGroup(timestamp); - indexMetaGroups.add(metaGroup); - } else { - metaGroup = indexMetaGroups.get(index); - } - - metaGroup.addIndexMetaInfo(info); - } - - return indexMetaGroups.iterator(); - } - - public void add(IndexMetaInfo info) { metaInfo.add(info); }