@@ -0,0 +1,2136 @@
+/**%0A * Set of evictors for evicting or moving blocks to other locations.%0A * %0A * The main entry point is %7B@link tachyon.worker.block.evictor.Evictor%7D which returns an%0A * evictor by calling %7B@link tachyon.worker.block.evictor.Evictor.Factory#%0A * createEvictor(tachyon.conf.TachyonConf, tachyon.worker.block.BlockMetadataManagerView)%7D.  %0A *%0A * %3Ch2%3EEvictor%3C/h2%3E%0A * %0A * All evictors implement %7B@link tachyon.worker.block.evictor.Evictor%7D interface. In order to%0A * evict blocks by different policies, each evictor only need to implement %7B@link tachyon.worker%0A * .block.evictor.Evictor#freeSpaceWithView(long, tachyon.worker.block.BlockStoreLocation, %0A * tachyon.worker.block.BlockMetadataManagerView)%7D method. When this method is called, blocks%0A * will be evicted or moved if no enough space left.%0A * %0A * %3Ch3%3ECascading Eviction%3C/h3%3E%0A * Cascading Eviction means evict blocks recursively and is only called in %7B@link tachyon.worker.%0A * block.evictor.Evictor#freeSpaceWithView(long, tachyon.worker.block.BlockStoreLocation, %0A * tachyon.worker.block.BlockMetadataManagerView)%7D method. %0A * Cascading Eviction will try to free space in next tier view where blocks need to be transferred%0A * to, if the next tier view does not have enough free space to hold the blocks, the next next tier%0A * view will be tried and so on until the bottom tier is reached, if blocks can not even be %0A * transferred to the bottom tier, they will be evicted, otherwise, only blocks to be freed in %0A * the bottom tier will be evicted.%0A * %0A * For example, %0A * %7B@link tachyon.worker.block.evictor.LRUEvictor#cascadingEvict(long, tachyon.worker.block%0A * .BlockStoreLocation,EvictionPlan)%7D is an implementation of Cascading Eviction.%0A * %0A * %3Ch3%3EEviction Plan%3C/h3%3E%0A * %0A * Eviction plan will be returned when %7B@link tachyon.worker.block.evictor.Evictor%0A * #freeSpaceWithView(long, tachyon.worker.block.BlockStoreLocation, tachyon.worker.block%0A * .BlockMetadataManagerView)%7D is called. The eviction plan will return two block lists, one%0A * is the blocks to be removed directly and another is the blocks to be moved to lower tier views.%0A */%0Apackage tachyon.worker.block.evictor;%0A

add package-info in evictor package