Thank you for the explanation. But here is the problem is not exactly with deserialization but with that a user-defined key is being marshalled to a binary object with the compact footer set to true, while the key for putting has the footer set to false (which is server default). Thus we have a different thing for the key when we try to retrieve and getting null. Therefore, I suppose switching client to server defaults is what has to be done. If the user decides to switch to full schema mode, at least he/she will be aware of it. And for deserialization, the schema will be retrieved, as you explained. What do you think?
-- Roman On Friday, January 18, 2019, 10:52:11 p.m. GMT+9, Vladimir Ozerov <voze...@gridgain.com> wrote: "Compact footer" is optimization which saves a lot of space. Object serialized in this form do not have the full information required for deserialization. Metadata necessary for deserialization (aka "schema") is located on cluster nodes. For this client it could be requested through special command. Pleass see ClientOperation.GET_BINARY_TYPE as a starting point. On Fri, Jan 18, 2019 at 1:32 PM Igor Sapego <isap...@apache.org> wrote: I'm not sure, that such a change should be done in minor release, maybe in 3.0 Vova, what do you think? It was you, who designed and developed compact footer, right? Best Regards,Igor On Fri, Jan 18, 2019 at 4:20 AM Roman Shtykh <rsht...@yahoo.com.invalid> wrote: > I believe it has something to do with backward compatibility.That's what I > would like to know.If there's no strong reason to set it to false, it should > be as Ignite's default -- that's what a user would expect. And if the user > changes the configuration at the cluster, he/she will be aware of that and > change it at thin client.If we cannot set it to Ignite's default, we can add > a log message saying we force it to false. -- Roman On Thursday, January 17, 2019, 7:11:05 p.m. GMT+9, Igor Sapego <isap...@apache.org> wrote: First of all, I do not like that thin client is silently returns null. It should be fixed. For the compact footer being set to false by default - I believe it has something to do withbackward compatibility. Best Regards,Igor On Thu, Jan 17, 2019 at 7:37 AM Roman Shtykh <rsht...@yahoo.com.invalid> wrote: Igniters, After putting some data with a user-defined key with a thick client, it's impossible to retrieve it with a thin client.https://issues.apache.org/jira/browse/IGNITE-10960(I was not sure it was a bug, so I first reported the issue to the user ml, Mikhail thanks for checking and the jira issue) That happens because for Ignite `compactFooter` is `true` by default, but `ClientBinaryMarshaller` forces it to `false` if `BinaryConfiguration` is not created explicitly (see ClientBinaryMarshaller#createImpl). Any reason to force it to false? I would like to align it with Ignite defaults (by setting to true). -- Roman