- 16 Jun, 2019 1 commit
-
-
Alexander Barkov authored
-
- 13 Jun, 2019 1 commit
-
-
Marko Mäkelä authored
-
- 12 Jun, 2019 6 commits
-
-
Marko Mäkelä authored
page_zip_compress(), page_zip_compress_write_log(), page_zip_copy_recs(): Replace the parameters page,page_zip with block, and set buf_page_t::init_on_flush on success if innodb_log_optimize_ddl=OFF. page_zip_parse_compress_no_data(): Merge with the only caller recv_parse_or_apply_log_rec_body().
-
Marko Mäkelä authored
Thanks to MDEV-12699, the doublewrite buffer will only be needed in those cases when a page is being updated in the data file. If the page had never been written to the data file since it was initialized, then recovery will be able to reconstruct the page based solely on the contents of the redo log files. The doublewrite buffer is only really needed when recovery needs to read the page in order to apply redo log. Note: As noted in MDEV-19739, we cannot safely disable the doublewrite buffer if any MLOG_INDEX_LOAD records were written in the past or will be written in the future. These records denote that redo logging was disabled for some pages in a tablespace. Ideally, we would have the setting innodb_log_optimize_ddl=OFF by default, and would not allow it to be set while the server is running. If we wanted to make this safe, assignments with SET GLOBAL innodb_log_optimize_ddl=... should not only issue a redo log checkpoint (including a write of all dirty pages from the entire buffer pool), but it should also wait for all pending ALTER TABLE activity to complete. We elect not to do this. Avoiding unnecessary use of the doublewrite buffer should improve the write performance of InnoDB. buf_page_t::init_on_flush: A new flag to indicate whether it is safe to skip doublewrite buffering when writing the page. fsp_init_file_page(): When writing a MLOG_INIT_FILE_PAGE2 record, set the init_on_flush flag if innodb_log_optimize_ddl=OFF. This is the only function that writes that log record. buf_flush_write_block_low(): Skip doublewrite if init_on_flush is set. fil_aio_wait(): Clear init_on_flush.
-
Marko Mäkelä authored
recv_apply_hashed_log_recs(): Refer directly to recs.last->end_lsn instead of iterating the entire list starting from recs.log.
-
Kentoku SHIBA authored
-
Jan Lindström authored
when plugins_are_initialized we already called unlink_thd() and that calls server_threads.erase()
-
Marko Mäkelä authored
-
- 11 Jun, 2019 12 commits
-
-
Vladislav Vaintroub authored
GCC crashes during compilation, on a code fragment that was added to workaround code generation bug on GCC. To fix, I randomly moved pragmas around, which seems to make GCC happy.
-
Sergei Golubchik authored
MDEV-19706 RPM no longer installs init script on systemd systems, but preun script still tries to erase it
-
Sergei Golubchik authored
MDEV-16249 CHECKSUM TABLE for a spider table is not parallel and saves all data in memory in the spider head by default (#1328) followup for be5c432a ha_partition::calculate_checksum() has to invoke calculate_checksum() for partitions unconditionally, not under (HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM). Because the server uses ::info() to ask for a live checksum, while calculate_checksum() must, precisely, calculate it the slow way, also for tables that don't have the live checksum at all. Also, fix the compilation on Windows (ha_checksum/ulonglong type mix).
-
Eugene Kosov authored
-
Marko Mäkelä authored
-
Varun authored
-
Varun authored
Introduced a print_key_value function to makes sure that the trace prints data in readable format for readable characters and the rest of the characters are printed as hexadecimal.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
InnoDB crash recovery buffers redo log records in a hash table. The function recv_read_in_area() would pick a random hash bucket and then try to submit read requests for a few nearby pages. Let us replace the recv_sys.addr_hash with a std::map, which will automatically be iterated in sorted order. recv_sys_t::pages: Replaces recv_sys_t::addr_hash, recv_sys_t::n_addrs. recv_sys_t::recs: Replaces most of recv_addr_t. recv_t: Encapsulate a raw singly-linked list of records. This reduces overhead compared to std::forward_list. Storage and cache overhead, because the next-element pointer also points to the data payload. Processing overhead, because recv_sys_t::recs_t::last will point to the last record, so that recv_sys_t::add() can append straight to the end of the list. RECV_PROCESSED, RECV_DISCARDED: Remove. When a page is fully processed, it will be deleted from recv_sys.pages. recv_sys_t::trim(): Replaces recv_addr_trim(). recv_sys_t::add(): Use page_id_t for identifying pages. recv_fold(), recv_hash(), recv_get_fil_addr_struct(): Remove. recv_read_in_area(): Simplify the iteration.
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
Older GCC generates SSE instruction on not-128-bit-aligned data in Bitmap<128>::buffer Workaround by forcing GCC not to use SSE on Bitmap<N> template.
-
Alexander Barkov authored
-
- 10 Jun, 2019 4 commits
-
-
Kentoku SHIBA authored
MDEV-16249 CHECKSUM TABLE for a spider table is not parallel and saves all data in memory in the spider head by default (#1328) add checksum_null for setting null value of checksum
-
Marko Mäkelä authored
Some I/O functions and macros that are declared in os0file.h used to return a Boolean status code (nonzero on success). In MySQL 5.7, they were changed to return dberr_t instead. Alas, in MariaDB Server 10.2, some uses of functions were not adjusted to the changed return value. Until MDEV-19231, the valid values of dberr_t were always nonzero. This means that some code that was incorrectly checking for a zero return value from the functions would never detect a failure. After MDEV-19231, some tests for ALTER ONLINE TABLE would fail with cmake -DPLUGIN_PERFSCHEMA=NO. It turned out that the wrappers pfs_os_file_read_no_error_handling_int_fd_func() and pfs_os_file_write_int_fd_func() were wrongly returning bool instead of dberr_t. Also the callers of these functions were wrongly expecting bool (nonzero on success) instead of dberr_t. This mistake had been made when the addition of these functions was merged from MySQL 5.6.36 and 5.7.18 into MariaDB Server 10.2.7. This fix also reverts commit 40becbc3 which attempted to work around the problem.
-
Alexander Barkov authored
-
Otto Kekäläinen authored
-
- 07 Jun, 2019 7 commits
-
-
Sergei Petrunia authored
Make it visible
-
Sergei Golubchik authored
MDEV-18788 Live upgrade from MySQL 5.6/5.7 to MariaDB 10.4 fails with "Event Scheduler: An error occurred when initializing system tables" if columns or indexes are modified/renamed/dropped in an ALTER TABLE, stat tables must be updated accordingly (e.g. all statistics for a column should be dropped). But if a stat table doesn't exist, it's not a reason to fail the whole ALTER TABLE operation - such an error should be ignored.
-
Sergei Golubchik authored
comments, rename a function to reflect its usage better
-
Daniele Sciascia authored
-
Alexander Barkov authored
-
Alexander Barkov authored
- Field::compatible_field_size(), and its "Relay_log_info *rli" argument - Field::pack_length_from_metadata
-
- 06 Jun, 2019 7 commits
-
-
Sergei Golubchik authored
option values now have to be edited in-place, instead of replacing an option with another one that has the same name but a new value.
-
Robert Bindar authored
-
Monty authored
-
Monty authored
- --disable-plugin-load or --skip-plugin-load will now reset plugin load list. Needed for future changes to mtr tests
-
Monty authored
- multiple usage of plugin-load-add and optimizer-switch are now included in generated config files
-
Sergey Vojtovich authored
-
Thirunarayanan Balathandayuthapani authored
Problem: ======= fil_iterate() writes imported tablespace page0 as it is to discarded tablespace. Space id wasn't even changed. While opening the tablespace, tablespace fails with space id mismatch error. Fix: ==== fil_iterate() copies the page0 with discarded space id to imported tablespace.
-
- 05 Jun, 2019 2 commits
-
-
Sergei Golubchik authored
-
Zicheng Huang authored
fix MDEV-18750: failed to flashback large-size binlog file fix mysqlbinlog flashback failure caused by reading io_cache without MY_FULL_IO flag fix MDEV-18750: mysqlbinlog flashback failure on large binlog
-