- 02 Apr, 2019 3 commits
-
-
Alexander Barkov authored
Tests for MDEV-18595 Assertion `0' failed in Item_cache_timestamp::val_datetime_packed / Predicant_to_list_comparator::cmp_arg The patch for MDEV-18240 fixed this problem earlier. Adding tests only.
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 01 Apr, 2019 10 commits
-
-
Monty authored
Fixed by adding more rows to a table Other things: - Speed up index_merge tests 20% by adding begin/commit around loops that generated rows.
-
Monty authored
Fixed by caching last binary log number used in last_used_log_number Other things: - Moved locking of LOCK_log form new_file_impl() to new_file(). This fixed a bug where LOCK_log could have been unlocked even if 'need_lock' was not set. Removed not anymore used argument need_lock. - Made generate_new_name() virtual to simplify the code between other logs and binary log. Reviewed by Andrei Elkin
-
Monty authored
On some systems with 10,000+ binlogs, show binary logs could block log rotation for more than 10 seconds. This patch fixes this by first caching all binary log names and releases all mutexes while calculating the sizes of the binary logs. Other things: - Ensure that reinit_io_cache() sets end_of_file when moving to read_cache. This ensures that external changes of the underlying file is known to the cache. - get_binlog_list() is made more efficent and show_binlogs() is changed to call get_binlog_list() Reviewed by Andrei Elkin
-
Monty authored
-
Michael Widenius authored
Idea comes from MySQL which does something similar
-
Michael Widenius authored
-
Monty authored
-
Michael Widenius authored
-
Marko Mäkelä authored
For tablespaces that do not reside on spinning storage, it does not make sense to attempt to write nearby pages when writing out dirty pages from the InnoDB buffer pool. It is actually detrimental to performance and to the life span of flash ROM storage. With this change, MariaDB will detect whether an InnoDB file resides on solid-state storage. The detection has been implemented for Linux and Microsoft Windows. For other systems, we will err on the safe side and assume that files reside on SSD. As part of this change, we will reduce the number of fstat() calls when opening data files on POSIX systems and slightly clean up some file I/O code. FIXME: os_is_sparse_file_supported() on POSIX works in a destructive manner. Thus, we can only invoke it when creating files, not when opening them. For diagnostics, we introduce the column ON_SSD to the table INFORMATION_SCHEMA.INNODB_TABLESPACES_SCRUBBING. The table INNODB_SYS_TABLESPACES might seem more appropriate, but its purpose is to reflect the contents of the InnoDB system table SYS_TABLESPACES, which we would like to remove at some point. On Microsoft Windows, querying StorageDeviceSeekPenaltyProperty sometimes returns ERROR_GEN_FAILURE instead of ERROR_INVALID_FUNCTION or ERROR_NOT_SUPPORTED. We will silently ignore also this error, and assume that the file does not reside on SSD. On Linux, the detection will be based on the files /sys/block/*/queue/rotational and /sys/block/*/dev. Especially for USB storage, it is possible that /sys/block/*/queue/rotational will wrongly report 1 instead of 0. fil_node_t::on_ssd: Whether the InnoDB data file resides on solid-state storage. fil_system_t::ssd: Collection of Linux block devices that reside on non-rotational storage. fil_system_t::create(): Detect ssd on Linux based on the contents of /sys/block/*/queue/rotational and /sys/block/*/dev. fil_system_t::is_ssd(dev_t): Determine if a Linux block device is non-rotational. Partitions will be identified with the containing block device by assuming that the least significant 4 bits of the minor number identify a partition, and that the "partition number" of the entire device is 0.
-
Alexander Barkov authored
-
- 29 Mar, 2019 5 commits
-
-
Heckad authored
This error occurred when the path to the project contained regular expression characters.
-
Vladislav Vaintroub authored
-
Ian Gilfillan authored
-
Jan Lindström authored
Add wsrep sync waits and if expected result is not reached print out current contents.
-
Alexander Barkov authored
-
- 28 Mar, 2019 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 27 Mar, 2019 1 commit
-
-
Daniele Sciascia authored
Disabled autocommit retry (set wsrep_retry_autocommit to 0) so that BF aborted autocommit statement always results in ER_LOCK_DEADLOCK.
-
- 26 Mar, 2019 13 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Occasionally, the test innodb_gis.rtree_recovery,4k runs out of buffer pool during crash recovery. This test might have started failing in connection with MDEV-18726. Work around it by reserving a little more overhead for the recovery hash tables. FIXME: Propagate the "out of memory" error to recv_add_to_hash_table() and transition to multi-batch recovery with a finer granularity.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Item_cond::eval_not_null_tables(): Use Item::eval_const_cond(), just like Item_cond::fix_fields(). This inconsistency was found while merging to 10.3, where the Microsoft compiler is configured to report an error for comparing longlong to bool.
-
Aleksey Midenkov authored
MDEV-18869 Assertion `!((field)->vcol_info && (field)->stored_in_db())' failed in innodb_col_no upon altering table with system versioning WITH/WITHOUT SYSTEM VERSIONING is not supported for generated columns at parser level (see definition of field_def rule).
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Before MDEV-12113 (MariaDB Server 10.1.25), on shutdown InnoDB would write the current LSN to the first page of each file of the system tablespace. This is incompatible with MariaDB's InnoDB table encryption, because encryption repurposed the field for an encryption key ID and checksum. buf_page_is_corrupted(): For the InnoDB system tablespace, skip FIL_PAGE_FILE_FLUSH_LSN when checking if a page is all zero, because the first page of each file in the system tablespace can contain nonzero bytes in the field.
-
Alexander Barkov authored
-
- 25 Mar, 2019 6 commits
-
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_cur_compress_recommendation(): Backport a change from 10.3. This is a follow-up to commit 1bd98154.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The test case for reproducing MDEV-14126 demonstrates that InnoDB can end up with an index tree where a non-leaf page has only one child page. The test case innodb.innodb_bug14676111 demonstrates that such pages are sometimes unavoidable, because InnoDB does not implement any sort of B-tree rotation. But, there is no reason to allow a root page with only one child page. btr_cur_node_ptr_delete(): Replaces btr_node_ptr_delete(). btr_page_get_father(): Declare globally. btr_discard_only_page_on_level(): Declare with ATTRIBUTE_COLD. It turns out that this function is not covered by the innodb.innodb_bug14676111 test case after all. btr_discard_page(): If the root page ends up having only one child page, shrink the tree by invoking btr_lift_page_up().
-
Marko Mäkelä authored
This is follow-up to commit 1bd98154.
-