Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: lvasiliev <lvasiliev@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v2 4/5] iproto: Add session settings for IPROTO
Date: Thu, 16 Apr 2020 02:06:07 +0200	[thread overview]
Message-ID: <5c3af252-f1ce-3e93-ac64-135eed764e06@tarantool.org> (raw)
In-Reply-To: <b92bd606-731c-c04a-33d0-551109142307@tarantool.org>

Hi! Thanks for the fixes!

>>> @TarantoolBot document
>>>      Title: Add session_setting
>>
>> The doc request is corrupted, docbot won't understand that because
>> of leading whitespaces.
>>
>>> iproto_error_format setting has been added to _session_settings
>>
>> Looks like there is a lack of global setting similar to what we had
>> for tracebacks. Currently, when the option is false (by default), and
>> I want to use the new format everywhere, I need to find every single
>> place where I create a new session, and put there code saying
>>
>>      box.session.settings.error_format = new/old/whatever
>>
>> I think there should be a global option when a user's application is
>> ready to switch to the new format completely. Otherwise it is going
>> to be hell to find all places where a new session is created, and patch
>> them.
>>
>> Just a reminder - every fiber.new(), fiber.create() creates a session,
>> every iproto connection is a session.
> This was discussed in TPT chat with Mons and Nazarov, and after that with you, Turenko, Mons ... in zoom. I was orienteted by the net.box session and I might not know something. Where do you suggest storing the setting?

Looks like you didn't understood me. I don't propose to remove the
session local option. I propose to provide an ability to override it
with a global option if necessary. So we have session option by
default with the old format, and global option unset.

If someone is ready to start using new errors everywhere, he just turns
the global option on.

If someone is not ready, he continues using session local option.

Why that may be needed - I said above. Turning that option on for every
session is going to be very tricky. But maybe it can be moved to the next
release (the global option). Don't know. The issue is already a huge
blackhole which absorbed lots of independent initially unplanned
features. The more we move for later, the better.

You should try to ask users in the red chat. It helps sometimes, they
can share their opinions and experience of upgrades. Just formulate your
question in a short but detailed manner, provide a couple of
ready-to-choose answers, probably a poll.

>>> +        local ext_err_supported = version_at_least(remote.peer_version_id, 2, 4, 1)
>>
>> 3. This won't work in case it is an instance bootstrapped from the master
>> branch before 2.4.1 was released. I don't know how to fix it now.
> Sorry, I think this should not work until the release.

Exactly for 'between-releases' users we introduced the new versioning schema
with 4 numbers. I don't think we can just say fuck off to them now. I
would better drop this from the patchset and added when somebody explicitly
asks for that, with good design and planning.

>>
>>> +        if not ext_err_supported then
>>> +            box.error(box.error.PROC_LUA,
>>> +                      "Server doesn't support extended error format")
>>> +        end
>>> +        remote.space._session_settings:update('iproto_error_format',
>>> +                                              {{'=', 2, 1}})
>>
>> 4. This is additional network hop. I don't think it should be done
>> automatically. I would let users do that.
> It's network hop only if option will be set.As optimization it can be included to auth packet in future.

Auth packets have nothing to do with session settings. It would be
encapsulation violation. Moreover, in addition to settings we may
want to configure more things in future. What if an encryption will
be added to Tarantool? What if we will add key exchange? I think we
should not add a new option + 1 network hop for every 'negotiation'
thing. Better omit this for now and design this properly when we have
more time.

I don't propose to remove your code. I just propose to finish some
non-critical parts of it later.

  reply	other threads:[~2020-04-16  0:06 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-10  8:10 [Tarantool-patches] [PATCH v2 0/5] Extending error functionality Leonid Vasiliev
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 1/5] error: Add a Lua backtrace to error Leonid Vasiliev
2020-04-14  1:11   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:00       ` Vladislav Shpilevoy
2020-04-16  1:11         ` Alexander Turenko
2020-04-16  8:58           ` lvasiliev
2020-04-16  9:30             ` Alexander Turenko
2020-04-16 12:27               ` lvasiliev
2020-04-16 12:45                 ` Alexander Turenko
2020-04-16 17:48                   ` lvasiliev
2020-04-16  8:40         ` lvasiliev
2020-04-16  9:04           ` lvasiliev
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 2/5] error: Add the custom error type Leonid Vasiliev
2020-04-14  1:11   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:02       ` Vladislav Shpilevoy
2020-04-16  9:18         ` lvasiliev
2020-04-16 21:03           ` Vladislav Shpilevoy
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 3/5] error: Increase the number of fields transmitted through IPROTO Leonid Vasiliev
2020-04-14  1:12   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:02       ` Vladislav Shpilevoy
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 4/5] iproto: Add session settings for IPROTO Leonid Vasiliev
2020-04-14  1:12   ` Vladislav Shpilevoy
2020-04-15  9:26     ` lvasiliev
2020-04-16  0:06       ` Vladislav Shpilevoy [this message]
2020-04-16  9:36         ` lvasiliev
2020-04-16 21:04           ` Vladislav Shpilevoy
2020-04-10  8:10 ` [Tarantool-patches] [PATCH v2 5/5] iproto: Update error MsgPack encoding Leonid Vasiliev
2020-04-14  1:12   ` Vladislav Shpilevoy
2020-04-15  9:25     ` lvasiliev
2020-04-16  0:11       ` Vladislav Shpilevoy
2020-04-16 10:04         ` lvasiliev
2020-04-16 21:06           ` Vladislav Shpilevoy
2020-04-14  1:10 ` [Tarantool-patches] [PATCH v2 0/5] Extending error functionality Vladislav Shpilevoy
2020-04-15  9:48   ` lvasiliev

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=5c3af252-f1ce-3e93-ac64-135eed764e06@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=lvasiliev@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v2 4/5] iproto: Add session settings for IPROTO' \
    /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