Replace BER encoding with MsgPack everywhere
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!
Showing
- .gitmodules 6 additions, 0 deletions.gitmodules
- CMakeLists.txt 1 addition, 0 deletionsCMakeLists.txt
- client/tarantar/CMakeLists.txt 2 additions, 1 deletionclient/tarantar/CMakeLists.txt
- client/tarantar/update.cc 6 additions, 0 deletionsclient/tarantar/update.cc
- cmake/BuildLibYAML.cmake 3 additions, 0 deletionscmake/BuildLibYAML.cmake
- doc/box-protocol.txt 6 additions, 53 deletionsdoc/box-protocol.txt
- include/errcode.h 2 additions, 2 deletionsinclude/errcode.h
- include/lua/init.h 10 additions, 0 deletionsinclude/lua/init.h
- include/lua/msgpack.h 109 additions, 0 deletionsinclude/lua/msgpack.h
- include/lua/utils.h 157 additions, 0 deletionsinclude/lua/utils.h
- include/pickle.h 0 additions, 152 deletionsinclude/pickle.h
- include/tarantool/util.h 9 additions, 0 deletionsinclude/tarantool/util.h
- src/CMakeLists.txt 2 additions, 0 deletionssrc/CMakeLists.txt
- src/bootstrap.snap 0 additions, 0 deletionssrc/bootstrap.snap
- src/box/CMakeLists.txt 1 addition, 1 deletionsrc/box/CMakeLists.txt
- src/box/alter.cc 4 additions, 5 deletionssrc/box/alter.cc
- src/box/bitset_index.cc 39 additions, 12 deletionssrc/box/bitset_index.cc
- src/box/box.cc 0 additions, 3 deletionssrc/box/box.cc
- src/box/box_lua.cc 245 additions, 429 deletionssrc/box/box_lua.cc
- src/box/box_lua.h 1 addition, 0 deletionssrc/box/box_lua.h
Loading
Please register or sign in to comment