From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: Aleksandr Lyapunov <alyapunov@tarantool.org>, tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH 03/16] tx: introduce dirty tuples Date: Sun, 12 Jul 2020 19:15:56 +0200 [thread overview] Message-ID: <cd3e9b95-6ce4-e641-5f68-f84632b891d4@tarantool.org> (raw) In-Reply-To: <1594221263-6228-4-git-send-email-alyapunov@tarantool.org> I still have the same question as in the previous review: How are the dirty tuples going to be used? Why don't we have such a flag for vinyl tuples? > diff --git a/src/box/tuple.h b/src/box/tuple.h > index 9a88772..4752323 100644 > --- a/src/box/tuple.h > +++ b/src/box/tuple.h > @@ -319,7 +319,13 @@ struct PACKED tuple > /** > * Offset to the MessagePack from the begin of the tuple. > */ > - uint16_t data_offset; > + uint16_t data_offset : 15; > + /** > + * The tuple (if it's found in index for example) could be invisible > + * for current transactions. The flag means that the tuple must > + * be clarified by transaction engine. What is current transaction? Assume, we can yield now. And there are some transactions. A new transaction appears and adds a tuple to an index. Will be it be visible for newer transactions? Since they are not 'current' in terms of when the tuple was added. Or will it be visible to this transaction only? > + */ > + bool is_dirty : 1; > /** > * Engine specific fields and offsets array concatenated > * with MessagePack fields array. > @@ -1081,8 +1087,10 @@ tuple_unref(struct tuple *tuple) > assert(tuple->refs - 1 >= 0); > if (unlikely(tuple->is_bigref)) > tuple_unref_slow(tuple); > - else if (--tuple->refs == 0) > + else if (--tuple->refs == 0) { > + assert(!tuple->is_dirty); Why? Is something supposed to clear this flag after it is set? > tuple_delete(tuple); > + } > }
next prev parent reply other threads:[~2020-07-12 17:15 UTC|newest] Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-08 15:14 [Tarantool-patches] [PATCH v2 00/16] Transaction engine for memtx engine Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 01/16] Update license file (2020) Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 02/16] Check data_offset overflow in struct tuple Aleksandr Lyapunov 2020-07-12 17:15 ` Vladislav Shpilevoy 2020-07-14 17:09 ` Aleksandr Lyapunov 2020-07-14 22:48 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 03/16] tx: introduce dirty tuples Aleksandr Lyapunov 2020-07-12 17:15 ` Vladislav Shpilevoy [this message] 2020-07-12 22:24 ` Nikita Pettik 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 04/16] vinyl: rename tx_manager -> vy_tx_manager Aleksandr Lyapunov 2020-07-12 17:14 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 05/16] tx: save txn in txn_stmt Aleksandr Lyapunov 2020-07-12 17:15 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 06/16] tx: add TX status Aleksandr Lyapunov 2020-07-12 17:15 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 07/16] tx: save preserve old tuple flag in txn_stmt Aleksandr Lyapunov 2020-07-12 17:14 ` Vladislav Shpilevoy 2020-07-14 23:46 ` Vladislav Shpilevoy 2020-07-15 7:53 ` Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 08/16] tx: introduce tx manager Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 09/16] tx: introduce prepare sequence number Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 10/16] tx: introduce txn_stmt_destroy Aleksandr Lyapunov 2020-07-12 17:15 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 11/16] tx: introduce conflict tracker Aleksandr Lyapunov 2020-07-12 17:15 ` Vladislav Shpilevoy 2020-07-14 23:51 ` Vladislav Shpilevoy 2020-07-15 7:57 ` Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 12/16] introduce tuple smart pointers Aleksandr Lyapunov 2020-07-12 17:16 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 13/16] tx: introduce txm_story Aleksandr Lyapunov 2020-07-12 17:14 ` Vladislav Shpilevoy 2020-07-14 23:46 ` Vladislav Shpilevoy 2020-07-15 8:11 ` Aleksandr Lyapunov 2020-07-15 22:02 ` Vladislav Shpilevoy 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 14/16] tx: indexes Aleksandr Lyapunov 2020-07-14 23:50 ` Vladislav Shpilevoy 2020-07-15 10:02 ` Aleksandr Lyapunov 2020-07-15 22:08 ` Vladislav Shpilevoy 2020-07-15 10:19 ` Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 15/16] tx: introduce point conflict tracker Aleksandr Lyapunov 2020-07-08 15:14 ` [Tarantool-patches] [PATCH 16/16] tx: use new tx manager in memtx Aleksandr Lyapunov 2020-07-14 23:45 ` Vladislav Shpilevoy 2020-07-15 10:32 ` Aleksandr Lyapunov 2020-07-15 22:09 ` Vladislav Shpilevoy 2020-07-12 17:19 ` [Tarantool-patches] [PATCH v2 00/16] Transaction engine for memtx engine Vladislav Shpilevoy 2020-07-14 23:47 ` Vladislav Shpilevoy 2020-07-15 12:25 ` Aleksandr Lyapunov 2020-07-15 22:10 ` Vladislav Shpilevoy 2020-07-16 4:48 ` Aleksandr Lyapunov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cd3e9b95-6ce4-e641-5f68-f84632b891d4@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=alyapunov@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 03/16] tx: introduce dirty tuples' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox