Github user Leemoonsoo commented on the pull request:

    https://github.com/apache/incubator-zeppelin/pull/782#issuecomment-201719098
  
    ResourcePool supposed to allow any resource. From not serializable object 
such as SparkContext, to very large object. `Object r` field in `class 
Resource` holds user object.
    
    This PR makes `Object r` serialized when `class Resource` is serialized. I 
think it will brings following problems,
    
    - DistributedResourcePool.getAll() method returns list of `Resource` of all 
remote interpreters. And this change will serialize all user object pointed by 
`Object r`, regardless of user want to access or not.
    - It'll make some error on DistributedResourcePool.getAll() when user put 
some unserializable object.
    
    Current implementation supposed to read user object from remote process 
only when Resource.get() method is called explicitly. please see 
https://github.com/apache/incubator-zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/resource/DistributedResourcePool.java#L72
    
    I think field `Object r` in the class `Resource` remains as transitive and 
shouldn't be serialized with `class Resource` for efficiency.


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to