Skip to content

Commit 2524ab9

Browse files
committed
Added regression test case for SPARK-1194
1 parent 6e40c22 commit 2524ab9

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

core/src/test/scala/org/apache/spark/storage/BlockManagerSuite.scala

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,4 +662,18 @@ class BlockManagerSuite extends FunSuite with BeforeAndAfter with PrivateMethodT
662662
assert(store.getSingle("a1") == None, "a1 should not be in store")
663663
}
664664
}
665+
666+
test("SPARK-1194 regression: fix the same-RDD rule for cache replacement") {
667+
store = new BlockManager("<driver>", actorSystem, master, serializer, 1200, conf, securityMgr)
668+
store.putSingle(rdd(0, 0), new Array[Byte](400), StorageLevel.MEMORY_ONLY)
669+
store.putSingle(rdd(1, 0), new Array[Byte](400), StorageLevel.MEMORY_ONLY)
670+
// Access rdd_1_0 to ensure it's not least recently used.
671+
assert(store.getSingle(rdd(1, 0)).isDefined, "rdd_1_0 was not in store")
672+
// According to the same-RDD rule, rdd_1_0 should be replaced here.
673+
store.putSingle(rdd(0, 1), new Array[Byte](400), StorageLevel.MEMORY_ONLY)
674+
// rdd_1_0 should have been replaced, even it's not least recently used.
675+
assert(store.memoryStore.contains(rdd(0, 0)), "rdd_0_0 was not in store")
676+
assert(store.memoryStore.contains(rdd(0, 1)), "rdd_0_1 was not in store")
677+
assert(!store.memoryStore.contains(rdd(1, 0)), "rdd_1_0 was in store")
678+
}
665679
}

0 commit comments

Comments
 (0)