- 12 Nov, 2019 1 commit
-
-
Eugene Kosov authored
New iterator has the fastest possible implementation: just moves one pointer. It's faster that List_iterator and List_iterator_fast: both do more on increment. Overall patch brings: 1) work compile times 2) possibly(!) worse debug build performance 3) definitely better optimized build performance 4) ability to write less code 5) ability to write less bug-prone code
-
- 11 Nov, 2019 12 commits
-
-
Marko Mäkelä authored
fseg_create(): Initialize FSEG_FRAG_ARRY by a single MLOG_MEMSET record. flst_zero_addr(), flst_init(): Optimize away redundant writes. fseg_free_page_low(): Write FIL_NULL by MLOG_MEMSET.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The XDES_CLEAN_BIT is always set for every element of the page allocation bitmap in the extent descriptor pages. Do not bother touching it, to avoid redundant writes.
-
Marko Mäkelä authored
The DICT_HDR_MAX_SPACE_ID was already zero-initialized at page allocation.
-
Marko Mäkelä authored
page_rec_write_field(): Remove. dict_create_index_tree_step(): If the SYS_INDEXES.PAGE does not change, do not update it in the data dictionary. Typically, all index page numbers would be unchanged before and after IMPORT TABLESPACE, except if some secondary indexes were created after loading some data. btr_root_fseg_adjust_on_import(): Remove the redundant mtr_t* parameter. Redo logging is disabled during the page adjustments that IMPORT TABLESPACE is performing.
-
Marko Mäkelä authored
The root page must never have any siblings, so it is unnecessary to clear those fields.
-
Marko Mäkelä authored
fsp_alloc_seg_inode_page(): Ever since commit 3926673c all newly allocated pages are zero-initialized. Assert that this is the case for the FSEG_ID fields.
-
Marko Mäkelä authored
btr_store_big_rec_extern_fields(): Remove the redundant initialization of the most significant 32 bits of BTR_EXTERN_LEN. InnoDB never supported BLOBs that are longer than 4GiB. In fact, dtuple_convert_big_rec() would write emit an error message if a clustered index record tuple would exceed 1,000,000,000 bytes in length. The BTR_EXTERN_LEN in the BLOB pointers in clustered index leaf page records is zero-initialized at least since commit 41bb3537
-
Marko Mäkelä authored
Remove the unnecessary retrieval and null-modifications of the preceding page.
-
Marko Mäkelä authored
Remove the redundant parameter mtr_t*. Make use of page_has_prev(), page_has_next() whenever possible.
-
Marko Mäkelä authored
Remove the unnecessary retrieval and null-modifications of the preceding page.
-
- 08 Nov, 2019 6 commits
-
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The function mach_read_ulint() is a wrapper for the lower-level functions mach_read_from_1(), mach_read_from_2(), mach_read_from_8(). Invoke those functions directly, for better readability of the code. mtr_t::read_ulint(), mtr_read_ulint(): Remove. Yes, we will lose the ability to assert that the read is covered by the mini-transaction. We would still check that on writes, and any writes that wrongly bypass mini-transaction logging would likely be caught by stress testing with Mariabackup.
-
Marko Mäkelä authored
Always use the MLOG_MEMSET record for writing FIL_NULL, because it is more compact.
-
- 07 Nov, 2019 1 commit
-
-
Marko Mäkelä authored
-
- 06 Nov, 2019 8 commits
-
-
Marko Mäkelä authored
Due to MDEV-12288, the slow shutdown in MariaDB 10.3 will include resetting the DB_TRX_ID for all inserted records. This might cause the 60-second shutdown_server timeout to be exceeded. Let us wait for the purge to complete before initiating slow shutdown.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
dict_index_add_to_cache(): Make the 'index' a reference to a pointer, so that the caller will avoid the expensive call to dict_index_get_if_in_cache_low().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Due to a data corruption bug that may have occurred a long time earlier (possibly involving physical backup and MySQL Bug #69122, which was addressed in commit f166ec71) it seems possible that the InnoDB change buffer might end up containing entries, while no buffered changes exist according to the change buffer bitmap pages in the .ibd files. ibuf_delete_recs(): New function, to be invoked on slow shutdown only. Remove all buffered changes for a specific page. ibuf_merge_or_delete_for_page(): If the change buffer bitmap is clean and a slow shutdown is in progress, invoke ibuf_delete_recs(). We do not want to do that during normal operation, due to the additional overhead that is involved. The bitmap page should be consistent with the change buffer in the first place.
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
InnoDB: Assertion failure in file .../dict/dict0dict.cc line ... InnoDB: Failing assertion: table->can_be_evicted This fixes a regression that was caused by the fix of MDEV-20621 (commit a41d4297). MySQL 5.6 (and MariaDB 10.0) introduced eviction of tables from the InnoDB data dictionary cache. Tables that are connected to FOREIGN KEY constraints or FULLTEXT INDEX are exempt of the eviction. With the problematic change, a table that would already be exempt from eviction due to FOREIGN KEY would cause the problem if there also was a FULLTEXT INDEX defined on it. dict_load_table(): Only prevent eviction if table->can_be_evicted holds.
-
- 05 Nov, 2019 5 commits
-
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
- 04 Nov, 2019 3 commits
-
-
Vladislav Vaintroub authored
Do not rely on existence of CMakeFiles/${target}.dir directory existence It is not there for custom targets in Ninja build.
-
Sergei Golubchik authored
Don't save/restore HP_INFO as it could be changed by a concurrent thread. different parts of HP_INFO are protected by different mutexes and the mutex that protect most of the HP_INFO does not protect its open_list data. As a bonus, make heap_check_heap() to take const HP_INFO* and not make any changes there whatsoever.
-
Marko Mäkelä authored
dict_table_rename_in_cache(): Use strcpy() instead of strncpy(), because they are known to be equivalent in this case (the length of old_name was already validated). mariabackup: Invoke strncpy() with one less than the buffer size, and explicitly add NUL as the last byte of the buffer.
-
- 03 Nov, 2019 2 commits
-
-
Elena Stepanova authored
-
Elena Stepanova authored
-
- 02 Nov, 2019 2 commits
-
-
Oleksandr Byelkin authored
This reverts commit dacd1794.
-
pkubaj authored
Do the same that newer branches do and don't include glibc-related headers on non-glibc environment.
-