From 3bc71c38ed3641e93cddb74d9259223368502b5f Mon Sep 17 00:00:00 2001 From: Ye Yangchen Date: Thu, 19 Jan 2023 17:54:03 -0600 Subject: [PATCH] Add local read benchmarks for PagedBlockStore --- .../src/main/java/alluxio/worker/BlockStoreBase.java | 7 ++++++- .../alluxio/worker/BlockStoreRandomReadBench.java | 12 ++++++++++++ .../worker/BlockStoreSequentialReadBench.java | 12 ++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/microbench/src/main/java/alluxio/worker/BlockStoreBase.java b/microbench/src/main/java/alluxio/worker/BlockStoreBase.java index 7b0170ae79cc..fcb4bdb9194c 100644 --- a/microbench/src/main/java/alluxio/worker/BlockStoreBase.java +++ b/microbench/src/main/java/alluxio/worker/BlockStoreBase.java @@ -124,7 +124,12 @@ public void prepareLocalBlock(long blockId, long blockSize, byte[] data) } mMonoBlockStore.commitBlock(1, blockId, false); - // todo(yangchen): create local block for PagedBlockStore + mPagedBlockStore.createBlock(1, blockId, 0, + new CreateBlockOptions(null, null, blockSize)); + try (BlockWriter writer = mPagedBlockStore.createBlockWriter(1, blockId)) { + writer.append(ByteBuffer.wrap(data)); + } + mPagedBlockStore.commitBlock(1, blockId, false); } /** diff --git a/microbench/src/main/java/alluxio/worker/BlockStoreRandomReadBench.java b/microbench/src/main/java/alluxio/worker/BlockStoreRandomReadBench.java index f3d471bc81d2..bfbec647c903 100644 --- a/microbench/src/main/java/alluxio/worker/BlockStoreRandomReadBench.java +++ b/microbench/src/main/java/alluxio/worker/BlockStoreRandomReadBench.java @@ -145,6 +145,18 @@ public void monoBlockStoreRandReadUfs(RandomReadParams params) throws Exception params.mUfsMountId, params.mUfsPath, params.mBlockSize, params.mOffsets, params.mReadSize); } + @Benchmark + public void pagedBlockStoreRandReadLocal(RandomReadParams params) throws Exception { + randReadLocal(params.mBlockStoreBase.mPagedBlockStore, + params.mLocalBlockId, params.mBlockSize, params.mOffsets, params.mReadSize); + } + + @Benchmark + public void pagedBlockStoreRandTransferLocal(RandomReadParams params) throws Exception { + randTransferLocal(params.mBlockStoreBase.mPagedBlockStore, + params.mLocalBlockId, params.mBlockSize, params.mOffsets, params.mReadSize); + } + @Benchmark public void pagedBlockStoreRandReadUfs(RandomReadParams params) throws Exception { randReadUfs(params.mBlockStoreBase.mPagedBlockStore, params.mUfsBlockId, diff --git a/microbench/src/main/java/alluxio/worker/BlockStoreSequentialReadBench.java b/microbench/src/main/java/alluxio/worker/BlockStoreSequentialReadBench.java index e34bfe177c42..d2a0face43ff 100644 --- a/microbench/src/main/java/alluxio/worker/BlockStoreSequentialReadBench.java +++ b/microbench/src/main/java/alluxio/worker/BlockStoreSequentialReadBench.java @@ -133,6 +133,18 @@ public void monoBlockStoreTransferLocal(BlockStoreParams params) throws Exceptio params.mLocalBlockId, params.mBlockSizeByte); } + @Benchmark + public void pagedBlockStoreReadLocal(BlockStoreParams params) throws Exception { + readFullyLocal(params.mBlockStoreBase.mPagedBlockStore, + params.mLocalBlockId, params.mBlockSizeByte); + } + + @Benchmark + public void pagedBlockStoreTransferLocal(BlockStoreParams params) throws Exception { + transferFullyLocal(params.mBlockStoreBase.mPagedBlockStore, + params.mLocalBlockId, params.mBlockSizeByte); + } + /** * Use {@link BlockReader#read} to read all block cached locally to memory. * This method simulates {@link alluxio.worker.grpc.BlockReadHandler}'s use of BlockStore