diff --git a/core/src/main/scala/org/apache/spark/storage/BlockInfoManager.scala b/core/src/main/scala/org/apache/spark/storage/BlockInfoManager.scala index 219a0e799cc73e060b8205cef4670b91bcbed173..61a47ec112656060e3e7f0d5f77913f38b3d8a58 100644 --- a/core/src/main/scala/org/apache/spark/storage/BlockInfoManager.scala +++ b/core/src/main/scala/org/apache/spark/storage/BlockInfoManager.scala @@ -42,7 +42,7 @@ import org.apache.spark.internal.Logging * @param tellMaster whether state changes for this block should be reported to the master. This * is true for most blocks, but is false for broadcast blocks. */ -private[storage] class BlockInfo( +class BlockInfo( val level: StorageLevel, val classTag: ClassTag[_], val tellMaster: Boolean) { @@ -89,7 +89,7 @@ private[storage] class BlockInfo( checkInvariants() } -private[storage] object BlockInfo { +object BlockInfo { /** * Special task attempt id constant used to mark a block's write lock as being unlocked. diff --git a/core/src/main/scala/org/apache/spark/storage/BlockManager.scala b/core/src/main/scala/org/apache/spark/storage/BlockManager.scala index e0276a4dc4224a6d0f4793f188dd03fe7a68c21c..f852869123b8e0a62a0f1ffa941301071c7ab7c3 100644 --- a/core/src/main/scala/org/apache/spark/storage/BlockManager.scala +++ b/core/src/main/scala/org/apache/spark/storage/BlockManager.scala @@ -145,7 +145,7 @@ private[spark] class BlockManager( // Actual storage of where blocks are kept private[spark] val memoryStore = - new MemoryStore(conf, blockInfoManager, serializerManager, memoryManager, this) + new MemoryStore(conf, this, serializerManager, memoryManager, this) private[spark] val diskStore = new DiskStore(conf, diskBlockManager, securityManager) memoryManager.setMemoryStore(memoryStore) diff --git a/core/src/main/scala/org/apache/spark/storage/memory/MemoryStore.scala b/core/src/main/scala/org/apache/spark/storage/memory/MemoryStore.scala index c5fdada55a44e5b48a03d0036ba06664e2b8b16a..5a95229a912a92981eec346ed1c4d84e455e19de 100644 --- a/core/src/main/scala/org/apache/spark/storage/memory/MemoryStore.scala +++ b/core/src/main/scala/org/apache/spark/storage/memory/MemoryStore.scala @@ -79,12 +79,18 @@ private[storage] trait BlockEvictionHandler { */ private[spark] class MemoryStore( conf: SparkConf, - blockInfoManager: BlockInfoManager, + // SS { + blockManager: BlockManager, + // SS } serializerManager: SerializerManager, memoryManager: MemoryManager, blockEvictionHandler: BlockEvictionHandler) extends Logging { + // SS { + private val blockInfoManager = blockManager.blockInfoManager + // SS } + // Note: all changes to memory allocations, notably putting blocks, evicting blocks, and // acquiring or releasing unroll memory, must be synchronized on `memoryManager`!