mariadb/storage/innobase/include
Marko Mäkelä 8f486f2f74 MDEV-36301 SET GLOBAL innodb_log_file_disabled, ...
innodb_log_file_disabled: A new Boolean settable global parameter,
for disabling the InnoDB redo log. When set, the server is not
crash safe.

innodb_log_group_home_dir: Allow the value to be changed with
SET GLOBAL, as long as the log remains in the same file system
or innodb_log_file_disabled=ON was set.

innodb_log_update(): A common function for implementing
SET GLOBAL innodb_log_file_size, innodb_log_file_disabled,
innodb_log_checkpoint_now, innodb_log_group_home_dir.

log_sys.buf_size_requested: The configured innodb_log_buffer_size.
While the log is disabled, we may set log_sys.buf_size
(the actual size of log_sys.buf) differently.

log_sys.disabled: The current setting of innodb_log_file_disabled.

log_t::append_prepare(): Instead of referring to file_size or
capacity() for mmap=true, always refer to buf_size.
When log_sys.disabled holds, log_sys.buf may be much smaller than
log_sys.file_size. Its size is always reflected by log_sys.buf_size.

log_t::attach(): Handle log_sys.disabled.

log_t::disable(): Implements SET innodb_log_file_disabled=ON.
Even if the log used to be in persistent memory, here we will
set up dummy log_sys.buf and log_sys.flush_buf so that the dummy
writes will appear to use file based writes.

log_t::skip_write_buf(): A dummy log writer implementation that is
used when log_sys.disabled holds and the log is not being resized.

log_t::resize_abort(): When the log remains disabled,
"persist" all the log and advance the group_lock and flush_lock
to the current LSN, just like log_t::disable() does.

log_t::resize_start(): Handle log_sys.disabled, that is,
SET GLOBAL innodb_log_file_disabled=OFF when the redo log had
previously been disabled.  If we are on persistent memory,
we will "fake" the dummy log_sys.buf to appear as memory-mapped
as well, so that log_t::resize_write() and log_t::resize_write_buf()
can assume that both log files are of the same type (memory-mapped
or file-based).  The dummy log_sys.flush_buf will be stored in
log_sys.resize_flush_buf in that case.  When moving from memory-mapped
to a regular log file, we will allocate log_sys.checkpoint_buf.
It will be freed in log_t::close().

log_t::resize_rename(): When innodb_log_group_home_dir
is changed between file systems, handle the non-atomic
replacement of the log file in a special way.  For a moment,
a recoverable ib_logfile0 will exist in both locations.

log_t::resize_write(): Detect memory-mapped log by
!resize_log.is_opened().  If the memory-mapped log is being re-enabled,
log_sys.resize_flush_buf may temporarily store the value of a dummy
log_sys.flush_buf.  During any log resizing or disabling or enabling,
both buf and resize_buf must appear to be either file-based or
memory-mapped.

log_t::write_buf(), log_write_up_to(): Handle the special case that
disable() executed or resize_start() started re-enabling the log while
we were waiting for flush_lock or write_lock. In the latter case,
log_sys.writer will be changed from log_t::skip_write_buf to
log_writer_resizing during the execution of log_write_up_to().

log_t::persist(): Skip the writes if the log is disabled, that is,
a memory-mapped log is in the process being re-enabled. In this case,
we cannot trust log_sys.file_size, and the pmem_persist() could be
invoked on an invalid address range.

log_resize_acquire_group(): Acquier the group locks for write and flush.

log_resize_release_group(): Release the group locks for write and flush.

log_resize_acquire(): Return whether the group locks were elided.

log_write_and_flush_prepare(), log_write_and_flush(): Protect also the
log_sys.is_mmap() case with write_lock and flush_lock, in order to
prevent a race condition between mtr_t::commit_file() and
log_t::disable().

log_t::persist(): Remove the assertions about not holding write_lock or
flush_lock.  We will hold them during DDL operations.
2025-05-28 14:14:20 +03:00
..
btr0btr.h Merge 10.11 into 11.4 2024-12-02 11:35:34 +02:00
btr0btr.inl MDEV-29603 btr_cur_open_at_index_side() is missing some consistency checks 2022-11-17 08:19:01 +02:00
btr0bulk.h MDEV-13542: Crashing on corrupted page is unhelpful 2022-06-06 14:03:22 +03:00
btr0cur.h MDEV-35049: Fix bogus BTR_CUR_HASH_FAIL on contention 2025-01-10 16:40:30 +02:00
btr0cur.inl MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
btr0pcur.h Merge 10.5 into 10.6 2024-04-19 16:01:26 +03:00
btr0pcur.inl MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
btr0sea.h Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
btr0types.h MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
buf0buddy.h MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00
buf0buf.h Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
buf0buf.inl MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00
buf0checksum.h MDEV-35049: Privatize ut_fold_ulint_pair() 2025-01-10 16:40:22 +02:00
buf0dblwr.h Merge 10.11 into 11.4 2025-04-02 10:15:08 +03:00
buf0dump.h
buf0flu.h Merge branch '10.6' into 10.11 2025-01-10 13:14:42 +01:00
buf0lru.h Merge 10.11 into 11.4 2025-03-28 13:55:21 +02:00
buf0rea.h Merge branch '10.11' into 11.4 2025-01-14 23:45:41 +01:00
buf0types.h Merge branch '10.6' into 10.11 2025-01-10 13:14:42 +01:00
cache.h MDEV-33447 fixup for POWER 8 2024-04-24 12:39:30 +03:00
data0data.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
data0data.inl MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
data0type.h MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
data0type.inl MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
data0types.h
db0err.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
dict0boot.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
dict0crea.h MDEV-34823 Invalid arguments in ib_push_warning() 2024-09-06 14:29:09 +03:00
dict0crea.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
dict0dict.h Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
dict0dict.inl Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
dict0load.h MDEV-34529 Shrink the system tablespace when system tablespace contains MDEV-30671 leaked undo pages 2024-10-16 21:34:24 +05:30
dict0mem.h Fix remaining typos 2025-04-29 11:18:00 +10:00
dict0mem.inl Merge 10.5 into 10.6 2024-04-17 14:14:58 +03:00
dict0pagecompress.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
dict0pagecompress.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
dict0stats.h Merge 10.11 into 11.4 2025-03-03 11:07:56 +02:00
dict0stats_bg.h Merge 10.5 into 10.6 2022-04-26 15:21:20 +03:00
dict0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
dyn0buf.h Merge branch '10.6' into 10.11 2024-04-22 15:23:10 +02:00
dyn0types.h Merge from 10.4 to 10.5 2024-04-15 17:46:49 +02:00
eval0eval.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
eval0eval.inl Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
eval0proc.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
eval0proc.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fil0crypt.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fil0crypt.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
fil0fil.h MDEV-21923: LSN allocation is a bottleneck 2025-05-22 09:40:30 +03:00
fil0pagecompress.h
fsp0file.h Merge 10.11 into 11.2 2024-10-18 11:32:22 +03:00
fsp0fsp.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fsp0space.h
fsp0sysspace.h MDEV-34529 Shrink the system tablespace when system tablespace contains MDEV-30671 leaked undo pages 2024-10-16 21:34:24 +05:30
fsp0types.h MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
fts0ast.h
fts0blex.h
fts0fts.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts0opt.h
fts0pars.h
fts0plugin.h
fts0priv.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts0priv.inl MDEV-33383: Corrupted red-black tree due to incorrect comparison 2024-02-12 17:01:45 +02:00
fts0tlex.h
fts0tokenize.h
fts0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts0types.inl Merge branch '11.4' into 11.5 2024-05-23 17:01:43 +02:00
fts0vlc.h
fut0lst.h Merge branch '11.1' into 11.2 2024-05-13 10:00:26 +02:00
gis0geo.h
gis0rtree.h Merge 10.11 into 11.0 2023-01-25 10:17:54 +02:00
gis0rtree.inl MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
gis0type.h Merge 10.5 into 10.6 2024-04-17 14:14:58 +03:00
ha0storage.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ha0storage.inl Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
ha_prototypes.h Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
handler0alter.h
hash0hash.h MDEV-34877 Port "Bug #11745929 Change lock priority so that the transaction holding S-lock gets X-lock first" fix from MySQL to MariaDB 2025-01-23 17:38:32 +03:00
ibuf0ibuf.h MDEV-35000 preparation: Clean up dict_table_t::stat 2025-02-28 08:55:16 +02:00
lock0iter.h
lock0lock.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
lock0lock.inl MDEV-34877 Port "Bug #11745929 Change lock priority so that the transaction holding S-lock gets X-lock first" fix from MySQL to MariaDB 2025-01-23 17:38:32 +03:00
lock0prdt.h Fix remaining typos 2025-04-29 11:18:00 +10:00
lock0priv.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
lock0priv.inl MDEV-34877 Port "Bug #11745929 Change lock priority so that the transaction holding S-lock gets X-lock first" fix from MySQL to MariaDB 2025-01-23 17:38:32 +03:00
lock0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
log0crypt.h Merge 10.11 into 11.0 2024-03-28 10:51:36 +02:00
log0log.h MDEV-36301 SET GLOBAL innodb_log_file_disabled, ... 2025-05-28 14:14:20 +03:00
log0recv.h Merge 10.11 into 11.4 2025-03-28 13:55:21 +02:00
log0types.h Remove bogus references to replaced Google contributions 2023-08-21 15:51:16 +03:00
mach0data.h Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
mach0data.inl Merge branch '10.5' into 10.6 2024-08-03 09:04:24 +02:00
mariadb_stats.h MDEV-34190: r_engine_stats.pages_read_count is unrealistically low 2024-07-04 15:24:49 +03:00
mem0mem.h MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
mem0mem.inl MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
mtr0log.h Merge 10.6 into 10.11 2024-11-29 13:43:17 +02:00
mtr0mtr.h MDEV-21923: LSN allocation is a bottleneck 2025-05-22 09:40:30 +03:00
mtr0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
os0file.h Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
os0file.inl Merge branch '10.6' into 10.11 2024-10-29 15:24:38 +01:00
page0cur.h MDEV-35312 page_cur_search_with_match() could avoid rec_get_offsets() 2025-01-10 16:40:55 +02:00
page0cur.inl Merge 10.11 into 11.2 2024-08-29 16:02:57 +03:00
page0page.h MDEV-35312 page_cur_search_with_match() could avoid rec_get_offsets() 2025-01-10 16:40:55 +02:00
page0page.inl MDEV-32175: Reduce page_align(), page_offset() calls 2024-11-21 11:01:30 +02:00
page0types.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
page0zip.h MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
page0zip.inl MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
pars0grm.h
pars0opt.h
pars0pars.h
pars0sym.h
pars0types.h
que0que.h MDEV-34515: Reduce context switching in purge 2024-08-26 12:23:17 +03:00
que0que.inl Merge branch '10.5' into 10.6 2022-02-03 17:01:31 +01:00
que0types.h
read0types.h MDEV-24402: InnoDB CHECK TABLE ... EXTENDED 2022-10-21 10:02:54 +03:00
rem0cmp.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
rem0rec.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
rem0rec.inl MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
rem0types.h
row0ext.h Merge branch '10.3' into 10.4 2022-01-30 09:46:52 +01:00
row0ext.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
row0ftsort.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0import.h MDEV-26137 Improve import tablespace workflow. 2023-07-04 17:56:27 +10:00
row0ins.h Merge 10.5 into 10.6 2023-03-28 15:25:52 +03:00
row0log.h MDEV-15250 UPSERT during ALTER TABLE results in 'Duplicate entry' error for alter 2022-04-26 16:22:56 +05:30
row0merge.h MDEV-34703 LOAD DATA INFILE using Innodb bulk load aborts 2025-01-15 23:49:13 +05:30
row0mysql.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0purge.h MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
row0quiesce.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0row.h Merge 10.11 into 11.4 2025-03-03 11:07:56 +02:00
row0row.inl MDEV-36015: unrepresentable value in row_parse_int() 2025-02-13 15:10:53 +01:00
row0sel.h MDEV-36015: unrepresentable value in row_parse_int() 2025-02-13 15:10:53 +01:00
row0types.h
row0uins.h
row0umod.h
row0undo.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0upd.h Merge 10.5 into 10.6 2023-01-03 18:13:11 +02:00
row0upd.inl Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
row0vers.h MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
rw_lock.h MDEV-34983: Remove x86 asm from InnoDB 2024-09-23 12:51:27 +03:00
small_vector.h MDEV-35701 trx_t::autoinc_locks causes unnecessary dynamic memory allocation 2025-01-15 16:55:01 +02:00
srv0mon.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
srv0mon.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
srv0srv.h Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
srv0start.h MDEV-19229 Allow innodb_undo_tablespaces to be changed after database creation 2022-10-25 11:19:36 +05:30
srw_lock.h Merge 10.6 into 10.11 2024-10-03 10:55:08 +03:00
sux_lock.h Merge branch '10.11' into 11.4 2025-01-14 23:45:41 +01:00
transactional_lock_guard.h MDEV-34973 fixup for POWER,s390x 2024-10-01 13:29:59 +03:00
trx0i_s.h MDEV-35189: Updating cache for INNODB_LOCKS et al is suboptimal 2024-11-12 12:17:34 +02:00
trx0purge.h Fix remaining typos 2025-04-29 11:18:00 +10:00
trx0rec.h Merge 10.6 into 10.11 2024-08-29 07:47:29 +03:00
trx0roll.h Merge 11.4 into 11.7 2025-01-09 09:41:38 +02:00
trx0rseg.h Merge 10.6 into 10.11 2024-10-03 10:55:08 +03:00
trx0sys.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
trx0trx.h Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
trx0trx.inl MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
trx0types.h Merge 10.6 into 10.11 2024-12-19 15:38:53 +02:00
trx0undo.h Merge 10.11 into 11.4 2024-12-02 11:35:34 +02:00
trx0undo.inl MDEV-33819 The purge of committed history is mis-parsing some log 2024-04-08 11:48:46 +03:00
trx0xa.h
univ.i Fix remaining typos 2025-04-29 11:18:00 +10:00
ut0byte.h MDEV-21174 fixup: Remove unused ut_bit_set_nth() 2023-09-19 18:02:56 +03:00
ut0byte.inl MDEV-21174 fixup: Remove unused ut_bit_set_nth() 2023-09-19 18:02:56 +03:00
ut0counter.h Merge 10.5 into 10.6 2024-06-17 08:40:07 +03:00
ut0dbg.h
ut0list.h MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0list.inl MDEV-27494 Rename .ic files to .inl 2022-01-17 16:41:51 +01:00
ut0lst.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
ut0mem.h Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
ut0mem.inl Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
ut0new.h Merge 10.5 into 10.6 2024-03-27 15:00:56 +02:00
ut0pool.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
ut0rbt.h
ut0rnd.h MDEV-35049: Privatize ut_fold_ulint_pair() 2025-01-10 16:40:22 +02:00
ut0sort.h
ut0stage.h
ut0ut.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
ut0vec.h MDEV-33383: Replace fts_doc_id_cmp, ib_vector_sort 2024-02-12 17:01:17 +02:00
ut0vec.inl MDEV-33383: Replace fts_doc_id_cmp, ib_vector_sort 2024-02-12 17:01:17 +02:00
ut0wqueue.h