[
https://issues.apache.org/jira/browse/IGNITE-15947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Semyon Danilov updated IGNITE-15947:
------------------------------------
Reviewer: Roman Puchkovskiy
> Cross-node descriptors exchange
> -------------------------------
>
> Key: IGNITE-15947
> URL: https://issues.apache.org/jira/browse/IGNITE-15947
> Project: Ignite
> Issue Type: Task
> Reporter: Semyon Danilov
> Assignee: 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)