Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-23 Thread Pavel Tupitsyn
Ivan, Yes, this proposal is about the binary protocol - the way we serialize primitive values, the foundation for the thin client protocol. Key-value API still has some uncertainty around it, we'll discuss it separately. On Wed, Jun 23, 2021 at 2:31 PM Ivan Daschinsky wrote: > Pavel, let me c

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-23 Thread Ivan Daschinsky
Pavel, let me clarify one thing. 1. If this proposal is about binary protocol, then there is no objection I suppose. 2. If this proposal about serialization of key-value, there are some uncertainties, especially about complex objects. In this case this proposal needs more work. ср, 23 июн. 2021 г

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-23 Thread Pavel Tupitsyn
Igniters, Looks like there are no objections and we can accept the proposal. I will close it tomorrow and move on to the thin client protocol itself. On Fri, Jun 18, 2021 at 12:10 PM Ivan Daschinsky wrote: > >> To make it fair. Ignite uses thread-local reusable buffers, see [1]. > I know, but P

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-18 Thread Ivan Daschinsky
>> To make it fair. Ignite uses thread-local reusable buffers, see [1]. I know, but PooledMessageBufferOutput is not about thread-local, isn't it? I'm not against about MsgPack, I'm for fair and not biased comparison. I suppose that MsgPack is an ideal candidate for thin client binary protocol, n

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-18 Thread Pavel Tupitsyn
Ivan, > why do you use PooledMessageBufferOutput in benchmarks? To make it fair. Ignite uses thread-local reusable buffers, see [1]. > why packer from msgpack-core show better performance than > BinaryWriter. And I suppose that benchmark is not quite fair. MsgPack writes and reads less bytes,

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
Andrey, here we discuss serialization format, as far as I understand. Current implementation of ignite binary object serialization can be rewritten. If we do not care about fast (O(1)) field lookup, about schema validation and so on, msgpack is a really good option. It is also good for client binar

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Andrey Mashenkov
Ivan, thankd for clarification. Binarilizable interface forces user to write serialization code. We can support this or similar interface. But I'd like Ignite has some default serializer in addition. It can be also useful e.g. in compute for param and result serialization. BinaryObjectBuider requ

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
>> Double checked -- there is not any links to PR either in IEP or in jira issue Sorry, there is a link in IEP, but not in jira ticket. чт, 17 июн. 2021 г. в 21:39, Ivan Daschinsky : > Andrey, > >> arbitrary object graph > Also, that is not true, msgpack format doesn't handle circular graphs. > T

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
Andrey, >> arbitrary object graph Also, that is not true, msgpack format doesn't handle circular graphs. Think about msgpack as binary json. You couldn't understand full structure of message if you didn't deserialize it fully before, maps and arrays are serialized just as contiguos chunks of value

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Andrey Mashenkov
Ivan, Ok, I've just thought if "fields are not included" then we need to bother about them by ourselves. чт, 17 июн. 2021 г., 20:10 Ivan Daschinsky : > Andrey, i'm sorry but what do you mean as additional code harness? Usually, > POJO is serialized simply as map. > > чт, 17 июн. 2021 г., 19:55 A

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
Andrey, i'm sorry but what do you mean as additional code harness? Usually, POJO is serialized simply as map. чт, 17 июн. 2021 г., 19:55 Andrey Mashenkov : > Hi Pavel, > > What you suggest looks promising: arbitrary object graph and platform > independence aspects in particular. > > In IEP-54 we

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Andrey Mashenkov
Hi Pavel, What you suggest looks promising: arbitrary object graph and platform independence aspects in particular. In IEP-54 we support only flat objects and only some standard types and assume inner objects of custom types will be serialized to byte[] somehow and their schema will not be manage

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
Also, it's well known use case of msgpack in the world of memory grids -- tarantool.io uses msgpack for clients binary protocol [1] So writing connectors to tarantool is quite easy task. [1] -- https://www.tarantool.io/en/doc/latest/dev_guide/internals/box_protocol/ чт, 17 июн. 2021 г. в 16:15, P

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Pavel Tupitsyn
Ivan, > Have you considered format with schema? 1. We should be able to serialize arbitrary user data on the client side. I think we don't want to require extra steps from the user. 2. MsgPack can be also used in a schemaful way, when user objects are written as arrays, not as maps - so that

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
Could you please share your code for benchmarks? чт, 17 июн. 2021 г. в 15:56, Ivan Daschinsky : > Hi, Pavel. Have you considered format with schema? Or schemaless of a > candidate format was a prerequisite? > As for me, msgpack is great, but I suppose that we should benchmark > formats thoroughl

Re: IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Ivan Daschinsky
Hi, Pavel. Have you considered format with schema? Or schemaless of a candidate format was a prerequisite? As for me, msgpack is great, but I suppose that we should benchmark formats thoroughly. And not only for Java. чт, 17 июн. 2021 г. в 15:29, Pavel Tupitsyn : > Igniters, > > I have drafted a

IEP-75 Thin Client MsgPack Serialization for 3.0

2021-06-17 Thread Pavel Tupitsyn
Igniters, I have drafted an IEP on thin client serialization format [1], please review and let me know what you think. [1] https://cwiki.apache.org/confluence/display/IGNITE/IEP-75+Thin+Client+Serialization