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