@ThreadSafe public class HeapBlockStore extends Object implements BlockStore
BlockStore.Block, BlockStore.Factory
Modifier and Type | Field and Description |
---|---|
TwoKeyConcurrentMap<Long,Long,Block.BlockLocation,Map<Long,Block.BlockLocation>> |
mBlockLocations |
Map<Long,Block.BlockMeta> |
mBlocks |
Constructor and Description |
---|
HeapBlockStore()
constructor a HeapBlockStore.
|
Modifier and Type | Method and Description |
---|---|
void |
addLocation(long blockId,
Block.BlockLocation location)
Adds a new block location.
|
void |
clear()
Removes all metadata from the block store.
|
void |
close()
Closes the block store and releases all resources.
|
Optional<Block.BlockMeta> |
getBlock(long id) |
List<Block.BlockLocation> |
getLocations(long blockid)
Gets locations for a block.
|
Iterator<BlockStore.Block> |
iterator() |
void |
putBlock(long id,
Block.BlockMeta meta)
Adds block metadata to the block store.
|
void |
removeBlock(long id)
Removes a block, or does nothing if the block does not exist.
|
void |
removeLocation(long blockId,
long workerId)
Removes a block location.
|
long |
size() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public final Map<Long,Block.BlockMeta> mBlocks
public final TwoKeyConcurrentMap<Long,Long,Block.BlockLocation,Map<Long,Block.BlockLocation>> mBlockLocations
public Optional<Block.BlockMeta> getBlock(long id)
getBlock
in interface BlockStore
id
- a block idpublic void putBlock(long id, Block.BlockMeta meta)
BlockStore
putBlock
in interface BlockStore
id
- the block idmeta
- the block metadatapublic void removeBlock(long id)
BlockStore
removeBlock
in interface BlockStore
id
- a block id to removepublic Iterator<BlockStore.Block> iterator()
iterator
in interface Iterable<BlockStore.Block>
public void clear()
BlockStore
clear
in interface BlockStore
public void close()
BlockStore
close
in interface BlockStore
public long size()
size
in interface BlockStore
public List<Block.BlockLocation> getLocations(long blockid)
BlockStore
getLocations
in interface BlockStore
blockid
- a block idpublic void addLocation(long blockId, Block.BlockLocation location)
BlockStore
addLocation
in interface BlockStore
blockId
- a block idlocation
- a block locationpublic void removeLocation(long blockId, long workerId)
BlockStore
removeLocation
in interface BlockStore
blockId
- a block idworkerId
- a worker idCopyright © 2023. All Rights Reserved.