Skip to content
Snippets Groups Projects
Commit a28c57bf authored by Konstantin Osipov's avatar Konstantin Osipov
Browse files

Modify format of server snapshot to version 12.

The new server snapshot format is identical to format of
XLOG, i.e. it contains REPLACE statements with BOX_INSERT
flags for every tuple in a space.

This allows to streamline recovery, since rows from a snapshot
can be treated the same as rows from the write ahead log (XLOG).

This is an incompatible change:
 - tarantool 1.5 won't be able to read data of tarantool 1.6
 - tarantool 1.6, without extra effort, won't be able
 to read data of tarantool 1.5 (a conversion procedure is needed).

 This change as such doesn't break replication, but further changes
are in the pipeline which will inevitably finish this matter up as well.

Why this patch is necessary
---------------------------

To create system spaces dict-v5 branch employs on_replace triggers
mechanism, fired off by txn_replace(). Thus it's vital that all changes
go into spaces using txn_replace().

What else this patch does
-------------------------

- since now XLOG and SNAP have the same format, log_io.cc
code has become a bit simpler
- struct key_def is re-factored to simplify dynamic creation/deletion
of keys
- reference counting for tuple formats is added
- a number of error messages is improved to provide part no
in a multipart key.
- space cache is split away from space.cc into a separate
module, schema.[h,cc]
parent 9629cff3
No related branches found
No related tags found
No related merge requests found
Showing with 579 additions and 156 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