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 c473ab3c8e94c6e6565d5fa4c6d2bb3439f91d0c..d5cc1d58e79960636466e0fa2b5a678c0c105c53 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
@@ -159,6 +159,30 @@ private[spark] class MemoryStore(
       entries.synchronized {
         entries.put(blockId, entry)
       }
+      // SS
+      val blockExInfos = blockManager.blockInfoManager.blockExInfos
+      val inMemExInfos = blockManager.blockInfoManager.inMemExInfos
+      if (blockId.isRDD) {
+        val curValue = blockExInfos.get(blockId)
+        curValue.size = size
+        curValue.writeFinAndCalCreatCost(System.currentTimeMillis())
+        // add to SortMap
+        inMemExInfos.synchronized {
+          logInfo("Phoenix: Add " + curValue.blockId + " to inMemBlockExInfo")
+            inMemExInfos.add(curValue)
+        }
+        logInfo("Create Block " + blockId + "and store in memory cost " + curValue.creatCost +
+          " and normCost is " + curValue.norCost)
+        // update son's start time in par's watching list
+        var sonSet = blockExInfos.get(blockId).sonSet
+        //          sonSet.synchronized
+        for (sonId <- sonSet) {
+          blockExInfos.get(sonId).creatStartTime = System.currentTimeMillis()
+          logInfo("Phoenix: update start time of sonId " + sonId)
+        }
+        sonSet = Set()
+      }
+      // SS
       logInfo("Block %s stored as bytes in memory (estimated size %s, free %s)".format(
         blockId, Utils.bytesToString(size), Utils.bytesToString(maxMemory - blocksMemoryUsed)))
       true