Thanks for your reply. Since you mention " MariaDB Server was not designed with NUMA ", in theory would you recommend beefy single cpu servers for high load MariaDB rather than dual cpu servers? Also regarding "Lock elision thanks to hardware memory transactions could help reduce the rate of cache line invalidation under some workloads" is this related to NUMA? On Tue, Jan 2, 2024 at 5:05 PM Marko Mäkelä <marko.makela@mariadb.com> wrote:
On Sat, Dec 30, 2023 at 8:08 PM highclass99 via discuss <discuss@lists.mariadb.org> wrote:
In the past when 2nd gen EPYC's were launching and beating Intel servers on most benchmarks, I visited a MariaDB conference and when I asked a senior MariaDB engineer, and asked whether he recommended AMD servers.
At that time, he recommended Intel for MariaDB, because MariaDB had much more Intel testing equipment and was optimized for Intel.
I am curious whether that is still the case, and whether MariaDB should be more optimized for Intel?
For at least as long as I have been working for MariaDB (over 6 years), Intel supports the development of MariaDB both with hardware resources (such as huge servers that are used for stress testing and for running regular CI) and with dedicated performance testing. Off the top of my head, I can name a couple of performance bugs that were found by Intel employees: https://jira.mariadb.org/browse/MDEV-28369 ibuf_bitmap_mutex is an unnecessary contention point https://jira.mariadb.org/browse/MDEV-31953 madvise(frame, srv_page_size, MADV_FREE) is causing a performance regression
Neither of these is in any way specific to the x86-64 ISA or its implementations.
I don’t know if AMD ever contributed anything to MariaDB. Some 20 years ago, they may have worked with MySQL Ab or Innobase Oy to solve a problem that was reproduced on Opteron processors, which could have been a bug in the InnoDB synchronization primitives.
While we try to be CPU agnostic (for example, there exist SIMD implementations of the ISO 3309 CRC-32 as well as the CRC-32C for multiple ISA extensions, be it the ARMv8 PMULL or the x86-64 PCLMUL or the POWER VPMSUM), starting with MariaDB Server 10.6 we make use of one x86-64 extension that might only be available on select Intel CPU models: 2024-01-02 9:52:15 0 [Note] InnoDB: Using transactional memory I am under the impression that AMD has not implemented the Intel TSX-NI a.k.a. RTM extension (xbegin, xtest, xabort). Transactional memory (called HTM) is also available on POWER v2.09 and s390x.
Lock elision thanks to hardware memory transactions could help reduce the rate of cache line invalidation under some workloads. MariaDB Server was not designed with NUMA in mind, but I try to do what I can to avoid or fix some obvious bottlenecks in the InnoDB storage engine.
Marko -- Marko Mäkelä, Lead Developer InnoDB MariaDB plc