[ 
https://issues.apache.org/jira/browse/IGNITE-15947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Semyon Danilov updated IGNITE-15947:
------------------------------------
    Fix Version/s: 3.0.0-alpha4

> Cross-node descriptors exchange
> -------------------------------
>
>                 Key: IGNITE-15947
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15947
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Semyon Danilov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-alpha4
>
>
> In order to support arbitrary class structure changes, the object 
> serialization must be performed according to the local class descriptor, but 
> the object deserialization must be performed according to the remote class 
> descriptor from the node that actually serialized the object. Therefore, the 
> descriptors must be shared between Ignite nodes to support the protocol:
>  * Trivially, the descriptors can be sent along with the object itself. This 
> approach can be used for debugging, but induces a significant serialization 
> overhead as the same descriptors will be sent with different object instances.
>  * Descriptor availability can be tracked on a per-session p2p level. If 
> there is a notion of a session between nodes, the sending side can track 
> which descriptors were already sent to the remote side before actually 
> sending the serialized object. If there are unsent descriptor, they are sent 
> to the remote side prior to sending the serialized object. The receiving side 
> must use the descriptor from the particular session to deserialize the 
> object. In this case, even if two different nodes send the class with the 
> same name and different structure, the receiving side will be able to 
> properly deserialize the object.
> See 
> https://github.com/gridgain/gridgain-9-ce/blob/iep-67/modules/network/README.md



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to