Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-22090

Thin 3.0: Avoid TX_BEGIN round-trip

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.0.0-beta1
    • 3.0.0-beta2
    • thin client

    Description

      IGNITE-19681 implements tx partition awareness, where TX_BEGIN request is performed together with the first enlisted operation. However, this still involves a separate round-trip to start the transaction.

      We can change the protocol to do two things in one go:

      • Start the transaction
      • Enlist first operation

      See the comment from ascherbakov: https://github.com/apache/ignite-3/pull/3640#discussion_r1575943518

      This can be optimized even further.
      Currently we still have +1RTT due to begin tx request/response here, which may be sensitive to small transactions.
      A transaction should be started on first map request.
      For this to work logical client tx id should be assigned on client.
      For example, id can consist of local client counter combined with client unique id assigned by server on handshake.
      One bit of 64 bit id is reserved for "first" flag.
      If an operation is "first", the txn is implicitly started.
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ptupitsyn Pavel Tupitsyn
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: