-
Roman Tsisyk authored
This commit completely changes the data format used by Tarantool. A new binary serialization format called MsgPack (http://msgpack.org) has been introduced to store tuples, keys, request members, etc. MsgPack supports various data types and hierarchical structures. Since tuple & keys format has been changed, the binary protocol is no more compatible with 1.5 clients. The list of major changes: * Add MsgPack library and unit tests as a submodule * Add Lua bindings for the library and unit tests for it * Update IPROTO to use MsgPack for all kinds of requests * Change struct tuple to use MsgPack Array instead of BER-encoded fields * Remove fixed offsets from tuples (cannot be supported by MsgPack) * Replace const char *key, key_part pairs with MsgPack Arrays * Rework comparators and indicies to support MsgPack'ed fields * Merge NUM and NUM64 types into the one single type (NUM) * Rewrite box_lua.cc functions to support MsgPack instead of BER * Rewrite tuple_update to support MsgPack instead of BER * Totaly remove varint32 functions from all modules * Rework lua_tofield and YAML encoder to properly support Lua tables * Modifie bootstrap files and system spaces to use the new format * Add MsgPack support to the test system via msgpack-python * Update tests to use proper data types and remove unneeded box.packs Tarantool 1.6 is the world's first MsgPack-based database!
Roman Tsisyk authoredThis commit completely changes the data format used by Tarantool. A new binary serialization format called MsgPack (http://msgpack.org) has been introduced to store tuples, keys, request members, etc. MsgPack supports various data types and hierarchical structures. Since tuple & keys format has been changed, the binary protocol is no more compatible with 1.5 clients. The list of major changes: * Add MsgPack library and unit tests as a submodule * Add Lua bindings for the library and unit tests for it * Update IPROTO to use MsgPack for all kinds of requests * Change struct tuple to use MsgPack Array instead of BER-encoded fields * Remove fixed offsets from tuples (cannot be supported by MsgPack) * Replace const char *key, key_part pairs with MsgPack Arrays * Rework comparators and indicies to support MsgPack'ed fields * Merge NUM and NUM64 types into the one single type (NUM) * Rewrite box_lua.cc functions to support MsgPack instead of BER * Rewrite tuple_update to support MsgPack instead of BER * Totaly remove varint32 functions from all modules * Rework lua_tofield and YAML encoder to properly support Lua tables * Modifie bootstrap files and system spaces to use the new format * Add MsgPack support to the test system via msgpack-python * Update tests to use proper data types and remove unneeded box.packs Tarantool 1.6 is the world's first MsgPack-based database!