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.
next prev parent 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