From 8d63c0e5f26878864973f734dc627def10ac4030 Mon Sep 17 00:00:00 2001 From: wusheng Date: Wed, 2 Nov 2016 21:35:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=B8=BB=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E5=91=BD=E5=90=8D=E4=B8=BA=E5=9D=97?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../index/BlockFinder.java} | 10 +++---- .../storage/block/index/BlockIndexEngine.java | 24 +++++++++++++++++ .../index/BlockIndexUpdator.java} | 26 +++++++++---------- .../index/L1Cache.java} | 12 +++++---- .../index/L2Cache.java} | 11 +++++--- .../BlockIndexPersistenceFailedException.java | 10 +++++++ .../storage/index/DataFileIndexEngine.java | 24 ----------------- .../DataFileIndexSaveFailedException.java | 10 ------- .../index/DataIndexFileOperator.java | 2 +- 9 files changed, 67 insertions(+), 62 deletions(-) rename skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/{index/DataFileFinder.java => block/index/BlockFinder.java} (59%) create mode 100644 skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexEngine.java rename skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/{index/DataFileIndexUpdator.java => block/index/BlockIndexUpdator.java} (75%) rename skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/{index/IndexL1Cache.java => block/index/L1Cache.java} (87%) rename skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/{index/IndexL2Cache.java => block/index/L2Cache.java} (82%) create mode 100644 skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/exception/BlockIndexPersistenceFailedException.java delete mode 100644 skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexEngine.java delete mode 100644 skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/exception/DataFileIndexSaveFailedException.java rename skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/{ => block}/index/DataIndexFileOperator.java (61%) diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileFinder.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockFinder.java similarity index 59% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileFinder.java rename to skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockFinder.java index e84dad1fe..452e0ce9d 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileFinder.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockFinder.java @@ -1,14 +1,14 @@ -package com.a.eye.skywalking.storage.index; +package com.a.eye.skywalking.storage.block.index; /** * Created by xin on 2016/11/2. */ -public class DataFileFinder { +public class BlockFinder { - private IndexL1Cache l1Cache; - private IndexL2Cache l2Cache; + private L1Cache l1Cache; + private L2Cache l2Cache; - public DataFileFinder(IndexL1Cache l1Cache, IndexL2Cache l2Cache) { + public BlockFinder(L1Cache l1Cache, L2Cache l2Cache) { this.l1Cache = l1Cache; this.l2Cache = l2Cache; } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexEngine.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexEngine.java new file mode 100644 index 000000000..85b0f9a96 --- /dev/null +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexEngine.java @@ -0,0 +1,24 @@ +package com.a.eye.skywalking.storage.block.index; + + +public class BlockIndexEngine { + + private static L1Cache l1Cache; + private static L2Cache l2Cache; + + + public static void start(){ + l1Cache = new L1Cache(); + l2Cache = new L2Cache(); + newUpdator().init(); + } + + public static BlockFinder newFinder() { + return new BlockFinder(l1Cache, l2Cache); + } + + + public static BlockIndexUpdator newUpdator() { + return new BlockIndexUpdator(l1Cache, l2Cache); + } +} diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexUpdator.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexUpdator.java similarity index 75% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexUpdator.java rename to skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexUpdator.java index e19a7250d..c71090c89 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexUpdator.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/BlockIndexUpdator.java @@ -1,6 +1,6 @@ -package com.a.eye.skywalking.storage.index; +package com.a.eye.skywalking.storage.block.index; -import com.a.eye.skywalking.storage.index.exception.DataFileIndexSaveFailedException; +import com.a.eye.skywalking.storage.block.index.exception.BlockIndexPersistenceFailedException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,13 +12,13 @@ import java.util.List; import static com.a.eye.skywalking.storage.config.Config.DataFileIndex.DATA_FILE_INDEX_FILE_NAME; import static com.a.eye.skywalking.storage.config.Config.DataFileIndex.STORAGE_BASE_PATH; -public class DataFileIndexUpdator { +public class BlockIndexUpdator { - private static Logger logger = LogManager.getLogger(DataFileIndexUpdator.class); - private IndexL1Cache l1Cache; - private IndexL2Cache l2Cache; + private static Logger logger = LogManager.getLogger(BlockIndexUpdator.class); + private L1Cache l1Cache; + private L2Cache l2Cache; - public DataFileIndexUpdator(IndexL1Cache l1Cache, IndexL2Cache l2Cache) { + public BlockIndexUpdator(L1Cache l1Cache, L2Cache l2Cache) { this.l1Cache = l1Cache; this.l2Cache = l2Cache; } @@ -34,12 +34,12 @@ public class DataFileIndexUpdator { } private void updateCache(long timestamp) { - l1Cache.update(timestamp); - l2Cache.update(timestamp); + l1Cache.add2Rebuild(timestamp); + l2Cache.add2Rebuild(timestamp); } - private void updateFile(long timestamp) throws DataFileIndexSaveFailedException { + private void updateFile(long timestamp) throws BlockIndexPersistenceFailedException { BufferedWriter writer = null; try { writer = new BufferedWriter(new FileWriter(new File(STORAGE_BASE_PATH, DATA_FILE_INDEX_FILE_NAME))); @@ -47,7 +47,7 @@ public class DataFileIndexUpdator { writer.newLine(); writer.close(); } catch (IOException e) { - throw new DataFileIndexSaveFailedException("Failed to save index[" + timestamp + "]", e); + throw new BlockIndexPersistenceFailedException("Failed to save index[" + timestamp + "]", e); } finally { if (writer != null) { try { @@ -83,7 +83,7 @@ public class DataFileIndexUpdator { } Collections.reverse(indexData); - l1Cache.initData(indexData); - l2Cache.initData(indexData); + l1Cache.init(indexData); + l2Cache.init(indexData); } } diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/IndexL1Cache.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/L1Cache.java similarity index 87% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/IndexL1Cache.java rename to skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/L1Cache.java index b50042979..f8f9a3e65 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/IndexL1Cache.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/L1Cache.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.index; +package com.a.eye.skywalking.storage.block.index; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -10,16 +10,18 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** + * 块索引的一级缓存 + * * Created by xin on 2016/11/2. */ -public class IndexL1Cache { +public class L1Cache { private static final int MAX_DATA_KEEP_SIZE = 30; - private static Logger logger = LogManager.getLogger(IndexL1Cache.class); + private static Logger logger = LogManager.getLogger(L1Cache.class); private TreeSet cacheData = new TreeSet(); private final ReadWriteLock updateLock = new ReentrantReadWriteLock(); - void initData(List data) { + void init(List data) { for (int i = 0; i < MAX_DATA_KEEP_SIZE; i++) { this.cacheData.add(data.get(i)); } @@ -35,7 +37,7 @@ public class IndexL1Cache { } } - public void update(long timestamp) { + public void add2Rebuild(long timestamp) { TreeSet newCacheData = new TreeSet<>(cacheData); newCacheData.add(timestamp); diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/IndexL2Cache.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/L2Cache.java similarity index 82% rename from skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/IndexL2Cache.java rename to skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/L2Cache.java index 5f59cb0f5..f1ed5ad01 100644 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/IndexL2Cache.java +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/L2Cache.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.index; +package com.a.eye.skywalking.storage.block.index; import java.util.List; import java.util.TreeSet; @@ -6,12 +6,15 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; -public class IndexL2Cache { +/** + * 块索引的二级缓存 + */ +public class L2Cache { private TreeSet cacheData = new TreeSet(); private ReadWriteLock updateLock = new ReentrantReadWriteLock(); - void initData(List data) { + void init(List data) { this.cacheData.addAll(cacheData); } @@ -25,7 +28,7 @@ public class IndexL2Cache { } } - public void update(long timestamp) { + public void add2Rebuild(long timestamp) { TreeSet newCacheData = new TreeSet<>(cacheData); newCacheData.add(timestamp); Lock lock = updateLock.writeLock(); diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/exception/BlockIndexPersistenceFailedException.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/exception/BlockIndexPersistenceFailedException.java new file mode 100644 index 000000000..03b2ef169 --- /dev/null +++ b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/block/index/exception/BlockIndexPersistenceFailedException.java @@ -0,0 +1,10 @@ +package com.a.eye.skywalking.storage.block.index.exception; + +/** + * Created by xin on 2016/11/2. + */ +public class BlockIndexPersistenceFailedException extends Exception { + public BlockIndexPersistenceFailedException(String message, Exception e) { + super(message, e); + } +} diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexEngine.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexEngine.java deleted file mode 100644 index 7591cc95d..000000000 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/DataFileIndexEngine.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.a.eye.skywalking.storage.index; - - -public class DataFileIndexEngine { - - private static IndexL1Cache l1Cache; - private static IndexL2Cache l2Cache; - - - public static void start(){ - l1Cache = new IndexL1Cache(); - l2Cache = new IndexL2Cache(); - newUpdator().init(); - } - - public static DataFileFinder newFinder() { - return new DataFileFinder(l1Cache, l2Cache); - } - - - public static DataFileIndexUpdator newUpdator() { - return new DataFileIndexUpdator(l1Cache, l2Cache); - } -} diff --git a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/exception/DataFileIndexSaveFailedException.java b/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/exception/DataFileIndexSaveFailedException.java deleted file mode 100644 index 8cfa047f2..000000000 --- a/skywalking-storage-center/skywalking-storage/src/main/java/com/a/eye/skywalking/storage/index/exception/DataFileIndexSaveFailedException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.a.eye.skywalking.storage.index.exception; - -/** - * Created by xin on 2016/11/2. - */ -public class DataFileIndexSaveFailedException extends Exception { - public DataFileIndexSaveFailedException(String message, Exception e) { - super(message, e); - } -} diff --git a/skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/index/DataIndexFileOperator.java b/skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/block/index/DataIndexFileOperator.java similarity index 61% rename from skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/index/DataIndexFileOperator.java rename to skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/block/index/DataIndexFileOperator.java index 770b2113b..66024e856 100644 --- a/skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/index/DataIndexFileOperator.java +++ b/skywalking-storage-center/skywalking-storage/src/test/java/com/a/eye/skywalking/storage/block/index/DataIndexFileOperator.java @@ -1,4 +1,4 @@ -package com.a.eye.skywalking.storage.index; +package com.a.eye.skywalking.storage.block.index; /** * Created by xin on 2016/10/31.