Github user SemMulder commented on a diff in the pull request:

    https://github.com/apache/spark/pull/9244#discussion_r42932252
  
    --- Diff: core/src/main/scala/org/apache/spark/util/SizeEstimator.scala ---
    @@ -73,7 +74,8 @@ object SizeEstimator extends Logging {
       private val ALIGN_SIZE = 8
     
       // A cache of ClassInfo objects for each class
    -  private val classInfos = new ConcurrentHashMap[Class[_], ClassInfo]
    +  // We use weakKeys to allow GC of dynamically created classes
    +  private val classInfos = new MapMaker().weakKeys().makeMap[Class[_], 
ClassInfo]()
    --- End diff --
    
    A WeakHashMap would need to be synchronized and we would therefore lose 
concurrency.
    I don't know if the SizeEstimator is used concurrently and hence felt it 
was safer to keep the concurrency of the original code despite the added 
complexity of a Guava Map.
    
    Is it safe to drop the concurrency requirement?



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to