Tarantool development patches archive
 help / color / mirror / Atom feed
From: Konstantin Osipov <kostja@tarantool.org>
To: tarantool-patches@freelists.org
Cc: Georgy Kirichenko <georgy@tarantool.org>
Subject: [tarantool-patches] Re: [PATCH 1/2] Update lua space cache just after creation
Date: Thu, 30 Aug 2018 15:31:07 +0300	[thread overview]
Message-ID: <20180830123106.GB30997@chai> (raw)
In-Reply-To: <52f6dd8a94f65030216f78796b8ed3d7f91f5eb2.1535472838.git.georgy@tarantool.org>

* Georgy Kirichenko <georgy@tarantool.org> [18/08/28 19:20]:
> The lua space cache (box.space.*) should be valid just after space is
> created because space is ready to accept new records or does not exists
> before wal would be written. So invoke a space create/drop trigger after
> a space is changed and recall it in a case of rollback.

I understand what this patch is doing, but I don't understand why
you need it.

We need to alert the user about system events, such as newly
created spaces, including system spaces.

We can well use txn->on_commit trigger for this purpose, having
set an on_commit trigger which pushes on_ctl events. This trigger
is invoked *after* a record is written to wal in txn.cc. Why do
you need to manipulate with the internal alter.cc triggers at all?
Why is the order of invocation of these triggers important? 

Ideally, your on_ctl trigger should be invoked after all the alter
triggers ahve been invoked. For that, all you need to do is to
ensure that on_ctl trigger is added *after* the alter trigger -
i.e. it has a lower priority/order than alter trigger. Is your
problem with trigger ordering? Is it that you've been trying to
add alter trigger *after* you added the on_ctl trigger, and, since
triggers are normally added to the end of the list, when on_ctl
trigger was invoked the space was not yet available in box.space?

If it is the case, then I think we should simply add
trigger_add_first() function, and use this function to add alter
triggers to the beginning of the list.

That would solve the problem until we have more strict ordering
requirements, at which point we could add trigger->order member
and trigger_add_with_order() method.

Finally, I don't see how the test case is testing the order. I
believe the test case should pass both before and after the patch.

> @@ -1571,3 +1571,64 @@ fio = require('fio')
>  box.space.test:drop()
>  ---
>  ...
> +-- allocate a space id to prevent max space id update

Why is test description missing in the result file?


Nitpick: please add leading -- and trailing -- to the test
description, start it with a capital letter and end with a dot.


Thanks for the patch,


-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov

  parent reply	other threads:[~2018-08-30 12:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-28 16:19 [tarantool-patches] [PATCH 0/2] Box control event trigger Georgy Kirichenko
2018-08-28 16:19 ` [tarantool-patches] [PATCH 1/2] Update lua space cache just after creation Georgy Kirichenko
2018-08-30 12:06   ` Vladimir Davydov
2018-08-31  4:57     ` [tarantool-patches] " Georgy Kirichenko
2018-08-30 12:31   ` Konstantin Osipov [this message]
2018-08-31  4:53     ` Georgy Kirichenko
2018-08-28 16:19 ` [tarantool-patches] [PATCH 2/2] On ctl event trigger Georgy Kirichenko
2018-08-30 12:07   ` Vladimir Davydov
2018-08-30 12:10   ` Vladimir Davydov
2018-08-30 12:38   ` Vladimir Davydov
2018-08-30 13:04     ` Georgy Kirichenko
2018-08-30 13:21     ` Vladimir Davydov
2018-08-30 14:45       ` [tarantool-patches] " Konstantin Osipov
2018-08-30 14:40     ` Konstantin Osipov
2018-08-30 12:50   ` Konstantin Osipov

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=20180830123106.GB30997@chai \
    --to=kostja@tarantool.org \
    --cc=georgy@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [PATCH 1/2] Update lua space cache just after creation' \
    /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