Hi! Well done but I have a minor remark about some renames you suggest. So if we would like to talk about synchronous replication then renaming txn_write to txn_commit seems quite incorrect as there would be two stages of transaction commit - transaction was written to journal and then transaction was completed(with commit or rollback). And the stages should be distinguishable. Obviously it depends on further implementation so I let the final resolution up to you. On Wednesday, February 19, 2020 9:37:06 PM MSK Cyrill Gorcunov wrote: > Plain txn_write is too general. > > Suggested-by: Konstantin Osipov > Signed-off-by: Cyrill Gorcunov > --- > src/box/applier.cc | 2 +- > src/box/txn.c | 4 ++-- > src/box/txn.h | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/box/applier.cc b/src/box/applier.cc > index ae3d281a5..10859a835 100644 > --- a/src/box/applier.cc > +++ b/src/box/applier.cc > @@ -805,7 +805,7 @@ applier_apply_tx(struct stailq *rows) > trigger_create(on_commit, applier_txn_commit_cb, NULL, NULL); > txn_on_commit(txn, on_commit); > > - if (txn_write(txn) < 0) > + if (txn_commit_async(txn) < 0) > goto fail; > > /* Transaction was sent to journal so promote vclock. */ > diff --git a/src/box/txn.c b/src/box/txn.c > index 05321e97d..0ad596c1e 100644 > --- a/src/box/txn.c > +++ b/src/box/txn.c > @@ -558,7 +558,7 @@ txn_prepare(struct txn *txn) > } > > int > -txn_write(struct txn *txn) > +txn_commit_async(struct txn *txn) > { > if (txn_prepare(txn) != 0) { > txn_rollback(txn); > @@ -585,7 +585,7 @@ txn_commit(struct txn *txn) > { > txn->fiber = fiber(); > > - if (txn_write(txn) != 0) > + if (txn_commit_async(txn) != 0) > return -1; > /* > * In case of non-yielding journal the transaction could already > diff --git a/src/box/txn.h b/src/box/txn.h > index fe13ef5f8..f2e0fa9e7 100644 > --- a/src/box/txn.h > +++ b/src/box/txn.h > @@ -302,7 +302,7 @@ txn_rollback(struct txn *txn); > * freed. > */ > int > -txn_write(struct txn *txn); > +txn_commit_async(struct txn *txn); > > /** > * Most txns don't have triggers, and txn objects