ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Tupitsyn (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-2703) .NET: Dynamically registered classes must use binary serialization if possible
Date Fri, 10 Feb 2017 10:57:41 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-2703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15861060#comment-15861060
] 

Pavel Tupitsyn edited comment on IGNITE-2703 at 2/10/17 10:57 AM:
------------------------------------------------------------------

Added more tests for various types being put to cache and retrieved back.
There is a problem with typed arrays: Java side reads them in binary mode, which produces
{{Object[]}}, and type information is lost. This is not an issue when array is part of a binary
object, only when array is put directly to cache:
{code}
var cache = ignite.GetCache<int, object>("foos");
cache[1] = new Foo[] {new Foo(1)};
Foo[] res = (Foo[]) cache[1];  // case fails
{code}


was (Author: ptupitsyn):
Added more tests for various types being put to cache and retrieved back.
There is a problem with typed arrays: Java side reads them in binary mode, which produces
{{Object[]}}, and type information is lost.

> .NET: Dynamically registered classes must use binary serialization if possible
> ------------------------------------------------------------------------------
>
>                 Key: IGNITE-2703
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2703
>             Project: Ignite
>          Issue Type: Task
>          Components: platforms
>    Affects Versions: 1.5.0.final
>            Reporter: Vladimir Ozerov
>            Assignee: Pavel Tupitsyn
>              Labels: .net, breaking-api
>             Fix For: 2.0
>
>
> At present we support dynamic class registration in .NET, but they are written using
deafult .NET mechanism. This is counterintuitive for users and not consistent with Java, where
such classes are written in binary form.
> Proposed implementation plan:
> 1) For each dynamically registered class we must understand whether it could be serialized
through binary or not. If not - print a warning and fallback to .NET.
> 2) Before writing a class we must ensure that it's [typeId -> name] pair is known
to the cluster. If not - write full class name instead of type ID. Java already do that.
> 3) Last, to support backward compatibility we must be able to fallback to current mode
with help of some boolean flag.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message