Hi all, I drafted a proposal for a new data format for Apache Ignite 3.0. For lack of a better name it is called Binary Tuple Format [1]. The idea is to have a common representation of rows and other similar data whenever that data is transferred and handled in binary form by different database modules. For instance, a storage engine could produce a batch of rows for the SQL engine, the SQL engine might do some operations over it like filtering, projection, joining and then pass the result further for another round of operations on a different node, and then the final result will be delivered to the client. It seems beneficial to use the same format everywhere as long as it is possible. Please note that the final SQL query result may have very little to do with any actual table schema stored in the database. So here, in contrast with e.g. IEP-54 [2], a tuple does not necessarily equate to a table row and has a broader meaning.
I would ask the community for a review. Any feedback would be greatly appreciated. Regards, Aleksey [1] https://cwiki.apache.org/confluence/display/IGNITE/IEP-92%3A+Binary+Tuple+Format [2] https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach