[Tarantool-patches] [PATCH v4 0/9] implement iproto streams

mechanik20051988 mechanik20051988 at tarantool.org
Thu Aug 12 12:50:37 MSK 2021


branch: https://github.com/tarantool/tarantool/tree/mechanik20051988/gh-5860-iproto-streams-v1
pr: https://github.com/tarantool/tarantool/pull/6139

Changes in v4:
1 - 4: commits was approved.
5: move 'if (stream == NULL)' check into 'iproto_msg_finish_processing_in_stream' function.
6: - rename test
   - rename 'local new_stream' function to 'stream_new_stream'.
   - we unable to use 'self._stream_id' in _request method, because when we call
     it for spaces and indexes, 'self' == 'remote', which has no stream_id.
7: - add RAFT prefix for all requests types in iproto.
8: - rename 'rollback_on_disconnect_stream_route' ot 'rollback_on_disconnect_route'.
   - rename 'iproto_stream_push_on_disconnect_msg' to 'iproto_stream_rollback_on_disconnect'
   - add comment why we need 'mh_size(streams) == 0' check in iproto_connection_is_idle.
   - add some asserts as indicated in the review.
9: - rename begin, commit, rollback functions to stream_begin, stream_commit and stream_rollback.
   - add separate test for transactions.

Vladimir Davydov (2):
  xrow: remove unused call_request::header
  iproto: clear request::header for client requests

mechanik20051988 (7):
  iproto: implement stream id in binary iproto protocol
  salad: fix segfault in case when mhash table allocation failure
  iproto: implement streams in iproto
  net.box: add stream support to net.box
  iproto: add RAFT prefix for all requests related to 'raft'.
  iproto: implement interactive transactions over iproto streams
  net.box: add interactive transaction support in net.box

 .../gh-5860-implement-streams-in-iproto.md    |   26 +
 src/box/box.cc                                |    4 +-
 src/box/call.c                                |   12 -
 src/box/errcode.h                             |    2 +
 src/box/iproto.cc                             |  479 ++-
 src/box/iproto_constants.c                    |   10 +-
 src/box/iproto_constants.h                    |   29 +-
 src/box/lua/net_box.c                         |  144 +-
 src/box/lua/net_box.lua                       |  240 +-
 src/box/memtx_engine.c                        |    4 +-
 src/box/txn.c                                 |   25 +-
 src/box/txn.h                                 |   19 +
 src/box/txn_limbo.c                           |   18 +-
 src/box/xrow.c                                |    9 +-
 src/box/xrow.h                                |   13 +-
 src/lib/core/errinj.h                         |    2 +
 src/lib/salad/mhash.h                         |   99 +-
 test/box-tap/feedback_daemon.test.lua         |    2 +-
 test/box/access.result                        |    6 +-
 test/box/access.test.lua                      |    6 +-
 test/box/errinj.result                        |    2 +
 test/box/error.result                         |    2 +
 test/box/iproto_streams.lua                   |   13 +
 test/box/misc.result                          |    5 +-
 ...net.box_console_connections_gh-2677.result |    2 +-
 ...t.box_console_connections_gh-2677.test.lua |    2 +-
 .../net.box_incorrect_iterator_gh-841.result  |    4 +-
 ...net.box_incorrect_iterator_gh-841.test.lua |    4 +-
 test/box/net.box_iproto_hangs_gh-3464.result  |    2 +-
 .../box/net.box_iproto_hangs_gh-3464.test.lua |    2 +-
 test/box/net.box_iproto_streams.result        |  473 +++
 test/box/net.box_iproto_streams.test.lua      |  182 +
 ...ox_iproto_transactions_over_streams.result | 3009 +++++++++++++++++
 ..._iproto_transactions_over_streams.test.lua | 1238 +++++++
 .../net.box_long-poll_input_gh-3400.result    |    8 +-
 .../net.box_long-poll_input_gh-3400.test.lua  |    8 +-
 test/box/suite.ini                            |    2 +-
 test/unit/mhash_body.c                        |    4 +-
 test/unit/xrow.cc                             |    7 +-
 test/unit/xrow.result                         |  168 +-
 40 files changed, 6021 insertions(+), 265 deletions(-)
 create mode 100644 changelogs/unreleased/gh-5860-implement-streams-in-iproto.md
 create mode 100644 test/box/iproto_streams.lua
 create mode 100644 test/box/net.box_iproto_streams.result
 create mode 100644 test/box/net.box_iproto_streams.test.lua
 create mode 100644 test/box/net.box_iproto_transactions_over_streams.result
 create mode 100644 test/box/net.box_iproto_transactions_over_streams.test.lua

--
2.20.1



More information about the Tarantool-patches mailing list