aboutsummaryrefslogtreecommitdiff
path: root/project/MimaExcludes.scala
diff options
context:
space:
mode:
authorJosh Rosen <joshrosen@databricks.com>2016-03-21 17:19:39 -0700
committerJosh Rosen <joshrosen@databricks.com>2016-03-21 17:19:39 -0700
commitb5f1ab701a167a728bb006e01b392b203da84391 (patch)
treeaf002e40214b1029e7d6f99b7b61389dbdac6895 /project/MimaExcludes.scala
parentb3e5af62a1c9e11556c4721164e6539d7ecce8e7 (diff)
downloadspark-b5f1ab701a167a728bb006e01b392b203da84391.tar.gz
spark-b5f1ab701a167a728bb006e01b392b203da84391.tar.bz2
spark-b5f1ab701a167a728bb006e01b392b203da84391.zip
[SPARK-13990] Automatically pick serializer when caching RDDs
Building on the `SerializerManager` introduced in SPARK-13926/ #11755, this patch Spark modifies Spark's BlockManager to use RDD's ClassTags in order to select the best serializer to use when caching RDD blocks. When storing a local block, the BlockManager `put()` methods use implicits to record ClassTags and stores those tags in the blocks' BlockInfo records. When reading a local block, the stored ClassTag is used to pick the appropriate serializer. When a block is stored with replication, the class tag is written into the block transfer metadata and will also be stored in the remote BlockManager. There are two or three places where we don't properly pass ClassTags, including TorrentBroadcast and BlockRDD. I think this happens to work because the missing ClassTag always happens to be `ClassTag.Any`, but it might be worth looking more carefully at those places to see whether we should be more explicit. Author: Josh Rosen <joshrosen@databricks.com> Closes #11801 from JoshRosen/pick-best-serializer-for-caching.
Diffstat (limited to 'project/MimaExcludes.scala')
-rw-r--r--project/MimaExcludes.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/project/MimaExcludes.scala b/project/MimaExcludes.scala
index 13caa54d06..68e9c50d60 100644
--- a/project/MimaExcludes.scala
+++ b/project/MimaExcludes.scala
@@ -569,6 +569,9 @@ object MimaExcludes {
if missing.map(_.fullName).sameElements(Seq("org.apache.spark.Logging")) => false
case _ => true
}
+ ) ++ Seq(
+ // [SPARK-13990] Automatically pick serializer when caching RDDs
+ ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.spark.network.netty.NettyBlockTransferService.uploadBlock")
)
case v if v.startsWith("1.6") =>
Seq(