[ 
https://issues.apache.org/jira/browse/SPARK-17535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Owen resolved SPARK-17535.
-------------------------------
    Resolution: Won't Fix

I don't think volatile matters here. It's not the point I was making actually; 
it was about the fact that this makes it possible to make this code 
un-thread-safe later if you happened to do extra init after the reference was 
set. It's not worth the complexity if there's no problem.a

> Performance Improvement of Signleton pattern in SparkContext
> ------------------------------------------------------------
>
>                 Key: SPARK-17535
>                 URL: https://issues.apache.org/jira/browse/SPARK-17535
>             Project: Spark
>          Issue Type: Improvement
>          Components: Spark Core
>    Affects Versions: 2.0.0
>            Reporter: Jianfei Wang
>              Labels: easyfix, performance
>
> I think the singleton pattern of SparkContext is inefficient if there are 
> many request to get the SparkContext,
> So we can write the singleton pattern as below,The second way if more 
> efficient when there are many request to get the SparkContext.
> {code}
>  // the current version
>   def getOrCreate(): SparkContext = {
>     SPARK_CONTEXT_CONSTRUCTOR_LOCK.synchronized {
>       if (activeContext.get() == null) {
>         setActiveContext(new SparkContext(), allowMultipleContexts = false)
>       }
>       activeContext.get()
>     }
>   }
>   // by myself
>   def getOrCreate(): SparkContext = {
>     if (activeContext.get() == null) {
>       SPARK_CONTEXT_CONSTRUCTOR_LOCK.synchronized {
>         if(activeContext.get == null) {
>           @volatile val sparkContext = new SparkContext()
>           setActiveContext(sparkContext, allowMultipleContexts = false)
>         }
>       }
>       activeContext.get()
>     }
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to