From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id E1C9E4696C4 for ; Thu, 5 Mar 2020 15:30:35 +0300 (MSK) Received: by mail-lf1-f66.google.com with SMTP id w27so4482765lfc.1 for ; Thu, 05 Mar 2020 04:30:35 -0800 (PST) From: Cyrill Gorcunov Date: Thu, 5 Mar 2020 15:29:37 +0300 Message-Id: <20200305122943.7324-5-gorcunov@gmail.com> In-Reply-To: <20200305122943.7324-1-gorcunov@gmail.com> References: <20200305122943.7324-1-gorcunov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH 04/10] box/txn: move setup of txn start to txn_prepare List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tml For unification sake, we will handle nop transactions via common helper for both sync and async cases. Signed-off-by: Cyrill Gorcunov --- src/box/txn.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/box/txn.c b/src/box/txn.c index 9f61303ab..5dd52e6db 100644 --- a/src/box/txn.c +++ b/src/box/txn.c @@ -554,6 +554,15 @@ txn_prepare(struct txn *txn) trigger_clear(&txn->fiber_on_stop); if (!txn_has_flag(txn, TXN_CAN_YIELD)) trigger_clear(&txn->fiber_on_yield); + + /* + * It is important to set start transaction + * time at the last moment, when everything + * is ready to initiate commit procedure, + * just to be more precise in timings to + * detect long WAL writes. + */ + txn->start_tm = ev_monotonic_now(loop()); return 0; } @@ -569,7 +578,6 @@ txn_commit_async(struct txn *txn) * After this point the transaction must not be used * so reset the corresponding key in the fiber storage. */ - txn->start_tm = ev_monotonic_now(loop()); if (txn->n_new_rows + txn->n_applier_rows == 0) { /* Nothing to do. */ txn->signature = 0; -- 2.20.1