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 binary protocol, i.e. tarantool uses it.
>> Binarilizable interface forces user to write serialization code I am talking about speed comparison. You can see from Pavel's data, jackson-msgpack shows a pathetic performance comparing with a ignite's default binary marshaller. If you want really fast serialization -- the only option is to write code by yourself or use code generation. Default packer from msgpack-core java package is similar to BinaryWriter. So I am wondering why packer from msgpack-core show better performance than BinaryWriter. And I suppose that benchmark is not quite fair. чт, 17 июн. 2021 г. в 22:19, Andrey Mashenkov <andrey.mashen...@gmail.com>: > 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 requires an Ignite node for object construction, but we > are looking for a detached builder and won't care about schemas. > > AFAIR, BinaryObject creates an objectReader on every single field read > operation. > So, BO solution produces a lot of garbage and BO has noticable overhead > which affects the object footprint. > > чт, 17 июн. 2021 г., 21:41 Ivan Daschinsky <ivanda...@gmail.com>: > > > >> 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 <ivanda...@gmail.com>: > > > > > 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 values/kv-pairs. Msgpack is a really dumb and simple format. > > > > > > Also, as for me, I cannot understand why current ignite serialization > > > (BinaryObjectBuilder or Binarilizable) is slower than raw message pack > > > serializer. > > > I suppose that this is an issue and we should investigate it. > > > > > > Pavel, why do you use PooledMessageBufferOutput in benchmarks? I'm > > > sorry, but is it fair to use it? > > > > > > >> The code is linked in the IEP [2] > > > Double checked -- there is not any links to PR either in IEP or in jira > > > issue > > > > > > > > > -- > > Sincerely yours, Ivan Daschinskiy > > > -- Sincerely yours, Ivan Daschinskiy