Skip to content
Permalink
Browse files
MDEV-27787 mariadb-backup --backup is allocating extra memory for log…
… records

In commit 685d958 (MDEV-14425),
the log parsing in mariadb-backup --backup was rewritten.
The parameter STORE_IF_EXISTS that is being passed to recv_sys.parse_mtr()
or recv_sys.parse_pmem() instead of STORE_NO caused unnecessary additional
memory allocation for redo log records.
  • Loading branch information
dr-m committed Feb 10, 2022
1 parent e375f51 commit 8c7c92a
Showing 1 changed file with 4 additions and 4 deletions.
@@ -3003,7 +3003,7 @@ static bool xtrabackup_copy_logfile()
#ifdef HAVE_PMEM
if (log_sys.is_pmem())
{
if ((ut_d(r=) recv_sys.parse_pmem(STORE_IF_EXISTS)) != recv_sys_t::OK)
if ((ut_d(r=) recv_sys.parse_pmem(STORE_NO)) != recv_sys_t::OK)
{
ut_ad(r == recv_sys_t::GOT_EOF);
goto retry;
@@ -3073,7 +3073,7 @@ static bool xtrabackup_copy_logfile()

start_offset= recv_sys.offset;
}
while ((ut_d(r=)recv_sys.parse_pmem(STORE_IF_EXISTS)) == recv_sys_t::OK);
while ((ut_d(r=)recv_sys.parse_pmem(STORE_NO)) == recv_sys_t::OK);

ut_ad(r == recv_sys_t::GOT_EOF);
pthread_cond_broadcast(&scanned_lsn_cond);
@@ -3109,7 +3109,7 @@ static bool xtrabackup_copy_logfile()
if (log_sys.buf[recv_sys.offset] <= 1)
break;

if (recv_sys.parse_mtr(STORE_IF_EXISTS) == recv_sys_t::OK)
if (recv_sys.parse_mtr(STORE_NO) == recv_sys_t::OK)
{
do
{
@@ -3119,7 +3119,7 @@ static bool xtrabackup_copy_logfile()
sequence_offset));
*seq= 1;
}
while ((r= recv_sys.parse_mtr(STORE_IF_EXISTS)) == recv_sys_t::OK);
while ((r= recv_sys.parse_mtr(STORE_NO)) == recv_sys_t::OK);

if (ds_write(dst_log_file, log_sys.buf + start_offset,
recv_sys.offset - start_offset))

0 comments on commit 8c7c92a

Please sign in to comment.