Hi,
To proceed forward with this branch we need:
- agree on extension of the write ahead log format. The log should
be able to contain prepare records. We're synchronizing this
effort with our work on raft support
- work on a common mvcc transaction manager for vinyl and memtx. right
now memtx uses a very naive transaction manager when each
transaction runs in isolation on each node until it commits. If
it's a 2pc transaction, it has to block the scheduler on this
node until a distributed commit is achieved.
This in turn implies:
* rewriting memtx memory allocator to support multiple
consistent read views, right now it supports only 1, which
is used by the snapshot thread periodically
* making begin/commit messages available in the binary
protocol, which in turn implies
- implementing cluster-wide monotonic but cheap transaction
identifiers for distributed transactions.
The list goes on and on actually. Many of issues from this list
are in progress, namely, raft and extension of the write ahead log
is our top priority and @georgyk has written a draft patch for it.
To sum up, this was an experimental exploration branch, which we
used to come up with a more step-by-step plan of implementing this
feature in midterm future.
* Yuri Finkelstein <
yuri...@gmail.com> [18/12/21 20:21]:
--
Konstantin Osipov, Moscow, Russia,
+7 903 626 22 32
http://tarantool.io -
www.twitter.com/kostja_osipov