[ https://issues.apache.org/jira/browse/IGNITE-2492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16021262#comment-16021262 ]
Pavel Tupitsyn commented on IGNITE-2492: ---------------------------------------- [~vozerov], peer deploying assemblies to a separate AppDomain allows unloading, but has the following issues: * Multiple AppDomains are not supported in .NET Core (Cross-platform .NET, IGNITE-2662) * AppDomains do not share anything. Static variables have different values, you can't pass object references from one to another. So user code will observer unexpected behavior with static state * AppDomains are expensive. We'll have to spin up all Ignite APIs in a separate domain again, register binary types, prepare reflective actions, and so on. Managing lifetime of these objects and JNI interop will be complicated. Given all of the above, I propose the following: * Replace {{IgniteConfiguration.PeerAssemblyLoadingEnabled}} with an enum {{IgniteConfiguration.PeerAssemblyLoadingMode}} with values {{None}} (default) and {{SameAppDomain}}. * Release current implementation and implement isolated mode later. This way users have clear understanding of what is going on and that other modes will be added in future. Agreed? > .NET: Peer assembly loading > --------------------------- > > Key: IGNITE-2492 > URL: https://issues.apache.org/jira/browse/IGNITE-2492 > Project: Ignite > Issue Type: New Feature > Components: platforms > Affects Versions: 1.1.4 > Reporter: Pavel Tupitsyn > Assignee: Pavel Tupitsyn > Labels: .net, important > Fix For: 2.1 > > > Similar to peer class loading in Java, we can provide a possibility to load > assemblies on already started nodes, so that a node can execute jobs that are > not present on other nodes. > Considerations: > * Can we unload assemblies after use to free memory? This requires a separate > AppDomain, can we work with that? -- This message was sent by Atlassian JIRA (v6.3.15#6346)