Skip navigation links

Package alluxio.worker.block.evictor

Set of evictors for evicting or moving blocks to other locations.

See: Description

Package alluxio.worker.block.evictor Description

Set of evictors for evicting or moving blocks to other locations. The main entry point is Evictor which returns an evictor by calling alluxio.worker.block.Evictor.Factory#create.

Evictor

All evictors implement Evictor interface. In order to evict blocks by different policies, each evictor only need to implement Evictor.freeSpaceWithView(long, alluxio.worker.block.BlockStoreLocation, alluxio.worker.block.BlockMetadataEvictorView) method. When this method is called, blocks will be evicted or moved if no enough space left.

Cascading Eviction

Cascading Eviction means evict blocks recursively and is only called in Evictor.freeSpaceWithView(long, alluxio.worker.block.BlockStoreLocation, alluxio.worker.block.BlockMetadataEvictorView) method. Cascading Eviction will try to free space in next tier view where blocks need to be transferred to, if the next tier view does not have enough free space to hold the blocks, the next next tier view will be tried and so on until the bottom tier is reached, if blocks can not even be transferred to the bottom tier, they will be evicted, otherwise, only blocks to be freed in the bottom tier will be evicted. For example, alluxio.worker.block.evictor.LRUEvictor#cascadingEvict(long, alluxio.worker.block.BlockStoreLocation,EvictionPlan) is an implementation of Cascading Eviction.

Eviction Plan

Eviction plan will be returned when Evictor.freeSpaceWithView(long, alluxio.worker.block.BlockStoreLocation, alluxio.worker.block.BlockMetadataEvictorView) is called. The eviction plan will return two block lists, one is the blocks to be removed directly and another is the blocks to be moved to lower tier views.
Skip navigation links

Copyright © 2020. All Rights Reserved.