You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2015/10/12 14:00:07 UTC

[jira] [Created] (IGNITE-1654) .Net: Ensure consistent "keepPortable" behavior.

Vladimir Ozerov created IGNITE-1654:
---------------------------------------

             Summary: .Net: Ensure consistent "keepPortable" behavior.
                 Key: IGNITE-1654
                 URL: https://issues.apache.org/jira/browse/IGNITE-1654
             Project: Ignite
          Issue Type: Task
          Components: interop
    Affects Versions: ignite-1.4
            Reporter: Vladimir Ozerov
            Priority: Critical
             Fix For: 1.5


We need to ensure that "keep portable" concept is
a) Consistent;
b) Exists for all logical units where it is necessary.

Lets split "keep portable" behavior in two scenarios:
1) Client mode. This is when client (caller) operates on portable objects. Example: ICache<IPortableObject, IPortableObject>.Get(...);
2) Server mode. This is when some server side object (caller) operates on portable objects. Example: a remote service which should not deserialize passed arguments and operate on portables instead.

Looks like both cases can be handled using the same "keep portable" flag on related logical unit.

Logical units affected:
1) Compute - at the very least closures can be executed in this mode;
2) Cache;
3) Data streamer;
4) Data structures: atomic stamped, atmoc reference;
5) Cache events;
6) Messages;
7) Services.

Probably we should introduce a kind of "IKeepPortableEnabled<T>" (or so) interface, which will have a method "T WithKeepPortable()". This way users will be able to easily understand that "keep portable" semantics is applicable.

Lets split it into several children tickets if necessary.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)