diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-07-25 17:05:47 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-07-26 08:44:42 +0300 |
commit | 0f90728bc0f8bc946a61500801b23f8a316e73d5 (patch) | |
tree | 735b003cdecab7e6a866e49dba9fd0a32e4e8c36 /storage/innobase/include/buf0flu.h | |
parent | 32eb5823e42d488c2c8eb85fdf822733e0a482a3 (diff) | |
download | mariadb-git-0f90728bc0f8bc946a61500801b23f8a316e73d5.tar.gz |
MDEV-16809 Allow full redo logging for ALTER TABLE
Introduce the configuration option innodb_log_optimize_ddl
for controlling whether native index creation or table-rebuild
in InnoDB should keep optimizing the redo log
(and writing MLOG_INDEX_LOAD records to ensure that
concurrent backup would fail).
By default, we have innodb_log_optimize_ddl=ON, that is,
the default behaviour that was introduced in MariaDB 10.2.2
(with the merge of InnoDB from MySQL 5.7) will be unchanged.
BtrBulk::m_trx: Replaces m_trx_id. We must be able to check for
KILL QUERY even if !m_flush_observer (innodb_log_optimize_ddl=OFF).
page_cur_insert_rec_write_log(): Declare globally, so that this
can be called from PageBulk::insert().
row_merge_insert_index_tuples(): Remove the unused parameter trx_id.
row_merge_build_indexes(): Enable or disable redo logging based on
the innodb_log_optimize_ddl parameter.
PageBulk::init(), PageBulk::insert(), PageBulk::finish(): Write
redo log records if needed. For ROW_FORMAT=COMPRESSED, redo log
will be written in PageBulk::compress() unless we called
m_mtr.set_log_mode(MTR_LOG_NO_REDO).
Diffstat (limited to 'storage/innobase/include/buf0flu.h')
-rw-r--r-- | storage/innobase/include/buf0flu.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/storage/innobase/include/buf0flu.h b/storage/innobase/include/buf0flu.h index c3b518c4295..5c1dddd9a3b 100644 --- a/storage/innobase/include/buf0flu.h +++ b/storage/innobase/include/buf0flu.h @@ -371,9 +371,8 @@ public: m_interrupted = true; } - /** Check whether trx is interrupted - @return true if trx is interrupted */ - bool check_interrupted(); + /** Check whether the operation has been interrupted */ + void check_interrupted(); /** Flush dirty pages. */ void flush(); @@ -395,7 +394,7 @@ private: const ulint m_space_id; /** Trx instance */ - trx_t* const m_trx; + const trx_t* const m_trx; /** Performance schema accounting object, used by ALTER TABLE. If not NULL, then stage->begin_phase_flush() will be called initially, |