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 [email protected] or file a JIRA ticket
with INFRA.
---