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. ---