Thanks Marko for your comments and clarity ! We had also experienced serious performance outages with innodb_checksum_algorithm on MariaDB 10.4 with large RANGE scan with frequent concurrent UPDATEs so rolled back from full_crc32 . To be very honest, We are unhappy with SPACIAL INDEX performance on both MySQL 5.7 and MariaDB 10.2 with larger data sets. Yet to benchmark SPATIAL INDEX. I agree with you on “MDEV-15053 and some follow-up tasks” context, This should have been implemented with MariaDB 10.5.4 GA
]]>The checksum algorithm “crc32” was originally introduced in MySQL 5.6 (MariaDB 10.0 and 10.1) and was made the default in MySQL 5.7 (MariaDB 10.2). It is actually a XOR combination of CRC-32C checksums of two parts of the page. MySQL 5.7 weakened the algorithm further by introducing a variant that is compatible with the MySQL 5.6 / MariaDB 10.0/10.1 implementation that works incorrectly on big-endian systems. To make checksums more reliable, MDEV-17958 introduced and enabled a compile-time option to remove that variant.
SPATIAL INDEX support was introduced in MySQL 5.7 and MariaDB 10.2. For unencrypted pages, they “just work”. But, unfortunately when MariaDB 10.1 introduced support for encrypted tables, it repurposed the same previously unused bytes that were later repurposed for “split sequence number” (SSN) in SPATIAL INDEX. This is why spatial indexes do not work with encryption.
I would also like to point out that there are serious bugs in the InnoDB SPATIAL INDEX implementation. Some are fixed (sometimes earlier in MariaDB than MySQL; see https://jira.mariadb.org/browse/MDEV-22389 for an example). MDEV-15284 is a known race condition that leads to wrong results.
The InnoDB storage engine in MariaDB 10.5 should also perform much better than earlier MariaDB versions thanks to the improvements to redo logging, the I/O layer and the buffer pool. Unfortunately, the buffer pool refactoring effort (MDEV-15053 and some follow-up tasks) introduced a performance bug whose fix missed the 10.5.4 GA release: MDEV-23017.
]]>