From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp58.i.mail.ru (smtp58.i.mail.ru [217.69.128.38]) (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 45FCC43D678 for ; Tue, 22 Oct 2019 01:58:58 +0300 (MSK) From: Vladislav Shpilevoy Reply-To: tarantool-patches@freelists.org References: <4885469.V32OVRv9ck@home.lan> <2210179.PDX6z0RLMb@home.lan> <68c06ac1-3a3f-bae2-ebf4-79c1ae63cb64@tarantool.org> Message-ID: Date: Tue, 22 Oct 2019 01:04:12 +0200 MIME-Version: 1.0 In-Reply-To: <68c06ac1-3a3f-bae2-ebf4-79c1ae63cb64@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [tarantool-patches] Re: [PATCH v2 2/4] wal: wal memory buffer List-Id: Tarantool development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Georgy Kirichenko , tarantool-patches@freelists.org, Konstantin Osipov , tarantool-patches@dev.tarantool.org >>>>>> + /* Decoded xrow header. */ >>>>>> + struct xrow_header xrow; >>>>>> + /* Pointer to the xrow encoded raw data. */ >>>>>> + void *data; >>>>>> + /* xrow raw data size. */ >>>>>> + size_t size; >>>>>> +}; >>>>>> + >>>>>> +/* >>>>>> + * Xrow memory data chunk info contains >>>>>> + * a vclock just before the first stored row, >>>>>> + * an ibuf with row descriptors >>>>>> + * an obuf with encoded data >>>>> >>>>> 29. I don't think it really makes sense to just dupicate here >>>>> the comments of each attribute of the structure. Please, >>>>> better use that space to explain, why you need vclock, why >>>>> 'before first row' instead of just 'first row', or 'last row'. >>>>> >>>>> What is a 'row descriptor'? >>>>> >>>>> Why do you need both initial xrows and encoded? I thought, that >>>>> xrow_buf stores only encoded rows. >>>> >>>> Relay will need initial xrows to perform filtering (replication group, lsn >>>> and e.t.c.) without xrow encoded body to decode. >>> >>> Hm, it looks quite expensive just for filtering. But assume it is ok. >>> 1) Why can't you store only a header instead of the whole xrow with a >>> body? As I understand, for any filtering the header is enough. Or not? >> I should also store xrow bodies and then encode the xrow as many times as >> count of replicas I have. > > Why do you need to encode it multiple times? Why not to send the same > encoded record? > Also, I don't see where do you encode more than once. > Please, say anything. I still don't understand it.