[tarantool-patches] Re: [PATCH v2 1/2] Journal transaction boundaries
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Mon Jan 28 16:08:45 MSK 2019
On 28/01/2019 16:00, Vladimir Davydov wrote:
> On Tue, Jan 22, 2019 at 01:57:36PM +0300, Georgy Kirichenko wrote:
>> Append txn_id, txn_replica_id and txn_last to xrow_header structure.
>> txn_replica_id identifies replica where transaction was started and
>> txn_id identifies transaction id on that replica. As transaction id
>> a lsn of the first row in this transaction is used.
>> txn_last set to true if it is the last row in a transaction, so we
>> could commit transaction with last row or use additional NOP requests
>> with txn_last = true ans valid txn_id and txn_replica_id.
>> For replication all local changes moved to xrows array tail to form
>> a separate transaction (like autonomous transaction) because it is not
>> possible to replicate such transaction back to it's creator.
>>
>> As encoding/deconding rules assumed:
>> 1. txn_replica_id is encoded only if it is not equal with replica
>> id. This might have point because of replication trigger
>> 2. txn_id and txn_last are encoded only for multi-row transaction.
>> So if we do not have txn_id in a xstream then this means that it
>> is a single row transaction.
>> This rules provides compatibility with previous xlog handling.
>>
>> Needed for: 2798
>> ---
>> src/box/iproto_constants.h | 3 ++
>> src/box/wal.c | 36 +++++++++++++++-
>> src/box/xrow.c | 38 +++++++++++++++++
>> src/box/xrow.h | 5 ++-
>> test/unit/xrow.cc | 3 ++
>> test/vinyl/errinj_stat.result | 8 ++--
>> test/vinyl/layout.result | 24 +++++------
>> test/vinyl/stat.result | 78 +++++++++++++++++------------------
>
> Also, forgot to say that this patch lacks a test case. We should
> probably check that transaction boundaries are written using the
> xlog reader module.
>
I have a test in my old branch on this issue. You can find it either
in the branches list, or in the issue GitHub webpage, because I referred
to it in the commit.
More information about the Tarantool-patches
mailing list