summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-12-04 18:25:01 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-12-04 18:25:01 +0200
commit2352f51625e5045649c7190774c8a200f3388359 (patch)
treeb24a1b544d2dca5a2ea227f9393f730fbd597fa1
parent6b5cdd4ff745e3254cb05935bd1efa4b48a29549 (diff)
downloadmariadb-git-2352f51625e5045649c7190774c8a200f3388359.tar.gz
MDEV-21174: Fix Galera
trx_rseg_write_wsrep_checkpoint(): Use mtr_t::OPT, because much of the time, the redo log writes would be redundant. This was broken in commit 56f6dab1d0e5a464ea49c1e5efb0032a0f5cea3e.
-rw-r--r--storage/innobase/trx/trx0rseg.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/storage/innobase/trx/trx0rseg.cc b/storage/innobase/trx/trx0rseg.cc
index 691dc9a65bd..546a4c51e03 100644
--- a/storage/innobase/trx/trx0rseg.cc
+++ b/storage/innobase/trx/trx0rseg.cc
@@ -55,17 +55,20 @@ trx_rseg_write_wsrep_checkpoint(
DBUG_ASSERT(xid->bqual_length >= 0);
DBUG_ASSERT(xid->gtrid_length + xid->bqual_length < XIDDATASIZE);
- mtr->write<4>(*rseg_header, TRX_RSEG + TRX_RSEG_WSREP_XID_FORMAT
- + rseg_header->frame,
- uint32_t(xid->formatID));
+ mtr->write<4,mtr_t::OPT>(*rseg_header,
+ TRX_RSEG + TRX_RSEG_WSREP_XID_FORMAT
+ + rseg_header->frame,
+ uint32_t(xid->formatID));
- mtr->write<4>(*rseg_header, TRX_RSEG + TRX_RSEG_WSREP_XID_GTRID_LEN
- + rseg_header->frame,
- uint32_t(xid->gtrid_length));
+ mtr->write<4,mtr_t::OPT>(*rseg_header,
+ TRX_RSEG + TRX_RSEG_WSREP_XID_GTRID_LEN
+ + rseg_header->frame,
+ uint32_t(xid->gtrid_length));
- mtr->write<4>(*rseg_header, TRX_RSEG + TRX_RSEG_WSREP_XID_BQUAL_LEN
- + rseg_header->frame,
- uint32_t(xid->bqual_length));
+ mtr->write<4,mtr_t::OPT>(*rseg_header,
+ TRX_RSEG + TRX_RSEG_WSREP_XID_BQUAL_LEN
+ + rseg_header->frame,
+ uint32_t(xid->bqual_length));
const ulint xid_length = static_cast<ulint>(xid->gtrid_length
+ xid->bqual_length);