ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Plekhanov (Jira)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-12625) Thin client: Marshaling/unmarshaling of objects performed twice
Date Wed, 05 Feb 2020 14:13:00 GMT
Aleksey Plekhanov created IGNITE-12625:

             Summary: Thin client: Marshaling/unmarshaling of objects performed twice
                 Key: IGNITE-12625
                 URL: https://issues.apache.org/jira/browse/IGNITE-12625
             Project: Ignite
          Issue Type: Bug
          Components: binary, thin client
            Reporter: Aleksey Plekhanov

For each thin client cache operation marshaling/unmarshaling of objects performed twice. For
example, cache "put" operation marshal object on the client-side, then unmarshal object (with
keep binaries) on the server-side and marshal it again before putting it to the cache. It
causes some undesirable effects. For example, references to the same binary object in a collection
( {{new ArrayList(Arrays.asList(person, person))}} ) deserialized as different objects.
Also, with binary object full byte array of this object is marshaled, but object takes only
some part of this array, it causes size overhead for storing these objects.

To avoid double marshalling we could pass byte array from request content to cache directly
(for example using {{CacheObject}}), but we don't have object size in thin client protocol,
so in any case, we need to traverse the objects. Also, we don't have the ability to get {{CacheObject}} from
the cache now, so such an approach will only work in one way, for "put" operations, but not
for "get" operations.

This message was sent by Atlassian Jira

View raw message