From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 7EC5D6EC59; Wed, 10 Mar 2021 22:12:28 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 7EC5D6EC59 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1615403548; bh=ki7VP+tOushhe9l74NJuCI70tf2mMyPJ0UruQYhCBPM=; h=To:Cc:References:Date:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=aWP0wN5VZohTthXBJdghuTqBrGQs3s24uE+btbLmazqOB4Lz4V25q3tRxu2ZXbNRz 30EPCPVsSONaLeetANUWOJ+XHIC125NrkZ8gK1ntF6FuiBVoc5W4hiJvJc5EhVsFn6 SucKCbPCP9SwNF7qw1flDIGaWMq7N8cJUr8iDnrE= Received: from smtp57.i.mail.ru (smtp57.i.mail.ru [217.69.128.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 4A8146EC59 for ; Wed, 10 Mar 2021 22:12:27 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 4A8146EC59 Received: by smtp57.i.mail.ru with esmtpa (envelope-from ) id 1lK4Fu-00075o-BE; Wed, 10 Mar 2021 22:12:26 +0300 To: Serge Petrenko , gorcunov@gmail.com Cc: tarantool-patches@dev.tarantool.org References: <20210310134824.33794-1-sergepetrenko@tarantool.org> Message-ID: <200dc67f-45e4-bff5-5105-eb99baca8d07@tarantool.org> Date: Wed, 10 Mar 2021 20:12:25 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <20210310134824.33794-1-sergepetrenko@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD9D3134714A9BDB69B9676070C5F64E418DB309FBA590CF44700894C459B0CD1B9DDD6FC7667E04A0667EF78375F0C767220D4BC6D3AC06611DC3326C543D49E8D X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7495A032B936E882FEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063771C846A5973DEE7E8638F802B75D45FF914D58D5BE9E6BC131B5C99E7648C95C11F5982A89E0728CA1BF482AEF62CFCA7D8E5D3EC901A3CDA471835C12D1D9774AD6D5ED66289B5278DA827A17800CE73AFA331E307B52169FA2833FD35BB23D2EF20D2F80756B5F868A13BD56FB6657A471835C12D1D977725E5C173C3A84C3643C8550F8485502117882F4460429728AD0CFFFB425014E868A13BD56FB6657D81D268191BDAD3DC09775C1D3CA48CFEE95CEFCEDEAA6E8BA3038C0950A5D36C8A9BA7A39EFB766EC990983EF5C0329BA3038C0950A5D36D5E8D9A59859A8B66FAD99D6CE36569A76E601842F6C81A1F004C90652538430CDED94BCBF13EF3B93EC92FD9297F6718AA50765F7900637BC468E7E89D8C5D6A7F4EDE966BC389F395957E7521B51C24C7702A67D5C33162DBA43225CD8A89FC0F9454058DFE53C57739F23D657EF2BB5C8C57E37DE458B4C7702A67D5C3316FA3894348FB808DBAF038BB36E94EA6B574AF45C6390F7469DAA53EE0834AAEE X-B7AD71C0: AC4F5C86D027EB782CDD5689AFBDA7A2BBE337FB72E92315FF39D8DB89857825EFA8BF88FCBFD63CE0852D54D1EC51810460571BCABD25ADF2A60C812E5B390E X-C1DE0DAB: 0D63561A33F958A5BC20EE326C3ED952C717C3560DF8E34D9BBB5A1FD6B68CC0D59269BC5F550898D99A6476B3ADF6B47008B74DF8BB9EF7333BD3B22AA88B938A852937E12ACA75F04B387B5D7535DE410CA545F18667F91A7EA1CDA0B5A7A0 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34A9A0A0BF1A2CAC626D59154B912AB1F36C8DA097C50EA04DAFF4DAF4A7832320E1CDD486796F0B5E1D7E09C32AA3244CA2CB591BAFA5037E05A9144BA3B25B9FF522A1CF68F4BE05FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojeUfzg2H8wDTwkfSly0os3Q== X-Mailru-Sender: 504CC1E875BF3E7D9BC0E5172ADA31103A848D45935C5082C4E8694364FE5297F5D6EDA0DBF7CC7C07784C02288277CA03E0582D3806FB6A5317862B1921BA260ED6CFD6382C13A6112434F685709FCF0DA7A0AF5A3A8387 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH] replication: send only confirmed data during final join X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Vladislav Shpilevoy via Tarantool-patches Reply-To: Vladislav Shpilevoy Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi! Thanks for the patch! See 3 comments below. > diff --git a/src/box/applier.cc b/src/box/applier.cc > index 8d7ce5d99..2af7693a0 100644 > --- a/src/box/applier.cc > +++ b/src/box/applier.cc > @@ -526,7 +528,8 @@ applier_wait_register(struct applier *applier, uint64_t row_count) > while (true) { > coio_read_xrow(coio, ibuf, &row); > applier->last_row_time = ev_monotonic_now(loop()); > - if (iproto_type_is_dml(row.type)) { > + if (iproto_type_is_dml(row.type) || > + row.type == IPROTO_CONFIRM) { > vclock_follow_xrow(&replicaset.vclock, &row); > if (apply_final_join_row(&row) != 0) 1. apply_final_join_row() internally simply ignores synchro rows. Including the rollbacks. You might want to handle synchro rows separately from apply_final_join_row(). Just follow vclock and increase row_count. apply_final_join_row() would assert that the row is DML then. 2. What if we meet ROLLBACK during final join rows retrieval? It could be stored in xlogs created during initial join. It might even be followed for CONFIRMs of newer synchro transactions. Or might now, it does not matter. Won't ROLLBACK among final join rows result into unknown request type again? > diag_raise(); > diff --git a/src/box/relay.cc b/src/box/relay.cc > index 186f77ed4..5699b8a63 100644 > --- a/src/box/relay.cc > +++ b/src/box/relay.cc > @@ -381,6 +381,10 @@ relay_final_join(int fd, uint64_t sync, struct vclock *start_vclock, > relay_delete(relay); > }); > > + /* \sa relay_initial_join(). */ 3. Probably better stick with @sa, as we usually use @ instead of \ in the new code. > + if (txn_limbo_wait_confirm(&txn_limbo) != 0) > + diag_raise(); > + > relay->r = recovery_new(wal_dir(), false, start_vclock); > vclock_copy(&relay->stop_vclock, stop_vclock);