From 536057798fc00c00c14c722eebdf3fa28ba1949b Mon Sep 17 00:00:00 2001 From: Serge Petrenko <sergepetrenko@tarantool.org> Date: Wed, 22 Nov 2023 09:47:17 +0300 Subject: [PATCH] xrow: remove SYNCHRO_BODY_LEN_MAX constant Synchronous requests will receive a new field encoding a full vclock soon. Theoretically a vclock may take up to ~ 300-400 bytes (3 bytes for a map header + 32 components each taking up 1 byte for replica id and up to 9 bytes for lsn). So it makes no sense to increase SYNCHRO_BODY_LEN_MAX from 32 to 400-500. It would become almost the same as plain BODY_LEN_MAX. Simply reuse the latter everywhere. In-scope-of #9138 NO_DOC=refactoring NO_TEST=refactoring NO_CHANGELOG=refactoring --- src/box/memtx_engine.cc | 2 +- src/box/relay.cc | 2 +- src/box/txn_limbo.c | 2 +- src/box/xrow.c | 2 +- src/box/xrow.h | 1 - 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/box/memtx_engine.cc b/src/box/memtx_engine.cc index 94c3500ff4..d93cc9abad 100644 --- a/src/box/memtx_engine.cc +++ b/src/box/memtx_engine.cc @@ -939,7 +939,7 @@ static int checkpoint_write_synchro(struct xlog *l, const struct synchro_request *req) { struct xrow_header row; - char body[XROW_SYNCHRO_BODY_LEN_MAX]; + char body[XROW_BODY_LEN_MAX]; xrow_encode_synchro(&row, body, req); return checkpoint_write_row(l, &row); } diff --git a/src/box/relay.cc b/src/box/relay.cc index fb72aff969..bec8b76bf3 100644 --- a/src/box/relay.cc +++ b/src/box/relay.cc @@ -511,7 +511,7 @@ relay_initial_join(struct iostream *io, uint64_t sync, struct vclock *vclock, xrow_encode_raft(&row, &fiber()->gc, &raft_req); xstream_write(&relay->stream, &row); - char body[XROW_SYNCHRO_BODY_LEN_MAX]; + char body[XROW_BODY_LEN_MAX]; xrow_encode_synchro(&row, body, &req); row.replica_id = req.replica_id; xstream_write(&relay->stream, &row); diff --git a/src/box/txn_limbo.c b/src/box/txn_limbo.c index fac921c44e..d78775bcc6 100644 --- a/src/box/txn_limbo.c +++ b/src/box/txn_limbo.c @@ -372,7 +372,7 @@ synchro_request_write(const struct synchro_request *req) * This is a synchronous commit so we can * allocate everything on a stack. */ - char body[XROW_SYNCHRO_BODY_LEN_MAX]; + char body[XROW_BODY_LEN_MAX]; struct xrow_header row; char buf[sizeof(struct journal_entry) + sizeof(struct xrow_header *)]; diff --git a/src/box/xrow.c b/src/box/xrow.c index ec39367db8..9f9e12194e 100644 --- a/src/box/xrow.c +++ b/src/box/xrow.c @@ -1259,7 +1259,7 @@ xrow_encode_synchro(struct xrow_header *row, char *body, pos = mp_encode_uint(pos, req->term); } - assert(pos - body < XROW_SYNCHRO_BODY_LEN_MAX); + assert(pos - body < XROW_BODY_LEN_MAX); memset(row, 0, sizeof(*row)); row->type = req->type; diff --git a/src/box/xrow.h b/src/box/xrow.h index f81c69af04..8dc5e461cd 100644 --- a/src/box/xrow.h +++ b/src/box/xrow.h @@ -51,7 +51,6 @@ enum { XROW_IOVMAX = XROW_HEADER_IOVMAX + XROW_BODY_IOVMAX, XROW_HEADER_LEN_MAX = 52, XROW_BODY_LEN_MAX = 512, - XROW_SYNCHRO_BODY_LEN_MAX = 32, IPROTO_HEADER_LEN = 32, /** 7 = sizeof(iproto_body_bin). */ IPROTO_SELECT_HEADER_LEN = IPROTO_HEADER_LEN + 7, -- GitLab