I actually think that even comparing with the raw mode is not completely fair (but this is definitely much closer to be fair). Any serialization protocol based on precompiled schema will be very compact, because it provides almost zero overhead (protostuff doesn't require .proto files, but still requires to generate serialization code for POJOs). Such protocols are extremely compact, but functionally limited and mainly used in messaging systems. For example, we use something very similar internally in Ignite for communication between nodes (see TcpCommunicationSpi code and Message interface if interested in implementation details).
Binary format provides much more features. It is designed to avoid deserialization on server nodes, at the same time allowing to lookup field values and even run SQL queries. With the binary format you can also add any objects into the cache (even without changing class definitions at all) and dynamically change the schema. Obviously, all this adds meta information into the protocol, but Ignite's binary format is still very compact if you compare it with others that provide similar functionality. -Val -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/How-about-adding-kryo-or-protostuff-as-an-optional-marshaller-tp6309p6462.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.
