Skip to content
Snippets Groups Projects
Commit 37fef8eb authored by Roman Tsisyk's avatar Roman Tsisyk
Browse files

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!
parent f154da08
No related branches found
No related tags found
No related merge requests found
Showing with 603 additions and 658 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment