[
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)