MariaDB си сътрудничи с Qualcomm Datacenter Technologies за повишаване на производителността чрез използване на иновативна хардуерна архитектура, базирана на ARM, с уникалната архитектура на базата данни на MariaDB. Като част от пускането на продукта Qualcomm Centriq™ 2400 през ноември 2017 г. демонстрирахме силната скалируемост на MariaDB при четене на този чип. Оттогава MariaDB и Qualcomm инженеринг работят за подобряване на мащабируемостта на операциите за запис, които бихме искали да споделим с общността на разработчиците днес.
Имаме удоволствието да обявим редица подобрения в производителността, които се предлагат в наскоро доставения кандидат за версия 10.3 10.3.4. Чрез използването на силно паралелизирания 48-ядрен процесор Qualcomm Centriq 2400, работещ на 2,6 GHz с 6 канала на паметта в напълно кохерентна пръстеновидна архитектура, нашият интерес е да извлечем оптимизация на производителността на запис в случай на използване на запис в един ред за приложение с много нишки.
MariaDB използва софтуера за сравнителен анализ на sysbench за измерване на производителността. В този блог ще разгледаме следните 2 бенчмарка с помощта на sysbench 1.0:
- Oltp_update_index :Това симулира актуализиране на стойност на един ред чрез индекс на първичен ключ, където вторичен индекс трябва да бъде актуализиран в резултат на актуализацията.
- Oltp_update_nonindex:Това симулира актуализиране на стойност на един ред чрез индекс на първичен ключ, където няма вторичен индекс. Това очевидно изисква по-малко работа от oltp_update_index.
Това, което виждаме е, че с увеличаване на броя на едновременните нишки производителността е до 48% по-бърза в 10.3 от 10.2 на Centriq™ 2400:
Направените подобрения премахват спорни точки и оптимизират за чипсета ARM64, по-специално:
- MDEV-15090 :Намалете режийните разходи за писане на записи в регистъра за отмяна
- MDEV-15132 :Избягвайте достъп до страницата TRX_SYS
- MDEV-15019 :InnoDB:съхранявайте ReadView на trx
- MDEV-14756 :Премахнете trx_sys_t::rw_trx_list
- MDEV-14482 :Състезание на редове в кеша на ut_rnd_ulint_counter()
- MDEV-15158 :При записване не пишете на страницата TRX_SYS
- MDEV-15104 :Премахнете trx_sys_t::rw_trx_ids и trx_sys_t::serialisation_list
- MDEV-14638 :Заменете trx_sys_t::rw_trx_set с LF_HASH
- MDEV-14529 :InnoDB rw-locks:оптимизиране на бариерите за памет
- MDEV-14374 :UT_DELAY код :Премахване на хардуерната бариера за arm64 bit платформа
- MDEV-14505 :Threads_running става пречка за мащабируемост
В обобщение това означава, че MariaDB ще работи значително по-добре при високи нива на едновременни актуализации, подобрявайки времето за реакция във вашите приложения при пиково натоварване.
Подобренията ще осигурят предимства и за други архитектури на чипове, но много по-голяма печалба се наблюдава при Centriq™ 2400 поради неговия дизайн, който може да поддържа много голям брой нишки. Чрез използване на физически ядра срещу хипер-нишков по-нисък брой ядра, Centriq™ 2400 демонстрира допълнителна печалба от 13% спрямо сравнима референтна платформа Broadwell.
Тъй като системите Centriq™ 2400 излизат на пазара тази година, ние сме развълнувани да видим как работните натоварвания на клиентите се възползват от мащабируемостта, съчетана с по-ниска консумация на енергия, за да изпълняват високомащабни работни натоварвания на база данни.