MariaDB współpracuje z Qualcomm Datacenter Technologies w celu zwiększenia wydajności, wykorzystując innowacyjną architekturę sprzętową opartą na architekturze ARM z unikalną architekturą bazy danych MariaDB. W ramach wprowadzenia produktu Qualcomm Centriq™ 2400 w listopadzie 2017 r. wykazaliśmy dużą skalowalność odczytu MariaDB na tym chipie. Od tego czasu inżynierowie MariaDB i Qualcomm pracują nad poprawą skalowalności operacji zapisu, którymi chcielibyśmy dziś podzielić się ze społecznością programistów.
Z przyjemnością ogłaszamy szereg ulepszeń wydajności, które są udostępniane w niedawno wydanej wersji 10.3 kandydata do wydania 10.3.4. Wykorzystując wysoce zrównoleglony 48-rdzeniowy procesor Qualcomm Centriq 2400 działający z częstotliwością 2,6 GHz z 6 kanałami pamięci w w pełni spójnej architekturze pierścieniowej, naszym celem jest wyodrębnienie optymalizacji wydajności zapisu w przypadku zapisu w jednym wierszu dla aplikacji wielowątkowych.
MariaDB używa oprogramowania testowego sysbench do pomiaru wydajności. W tym blogu przyjrzymy się następującym 2 testom porównawczym przy użyciu sysbench 1.0:
- Oltp_update_index :symuluje aktualizowanie wartości pojedynczego wiersza według indeksu klucza podstawowego, w którym indeks dodatkowy musi zostać zaktualizowany w wyniku aktualizacji.
- Oltp_update_nonindex:symuluje aktualizowanie wartości pojedynczego wiersza według indeksu klucza podstawowego, gdy nie ma indeksu dodatkowego. To oczywiście wymaga mniej pracy niż oltp_update_index.
Widzimy, że wraz ze wzrostem liczby jednoczesnych wątków wydajność jest do 48% szybsza w 10.3 niż 10.2 na Centriq™ 2400:
Wprowadzone ulepszenia usuwają punkty sporne i optymalizują dla chipsetu ARM64, w szczególności:
- MDEV-15090:zmniejsz obciążenie związane z zapisywaniem rekordów dziennika cofania
- MDEV-15132:Unikaj dostępu do strony TRX_SYS
- MDEV-15019:InnoDB:przechowuj ReadView na trx
- MDEV-14756:Usuń trx_sys_t::rw_trx_list
- MDEV-14482:Rywalizacja linii pamięci podręcznej na ut_rnd_ulint_counter()
- MDEV-15158:Po zatwierdzeniu nie pisz na stronie TRX_SYS
- MDEV-15104:Usuń trx_sys_t::rw_trx_ids i trx_sys_t::serialisation_list
- MDEV-14638:Zastąp trx_sys_t::rw_trx_set LF_HASH
- MDEV-14529:InnoDB rw-locks:optymalizuj bariery pamięci
- MDEV-14374:Kod UT_DELAY:Usuwanie bariery sprzętowej dla platformy arm64-bitowej
- MDEV-14505:Threads_running staje się wąskim gardłem skalowalności
Podsumowując, oznacza to, że MariaDB będzie działać znacznie lepiej w przypadku wysokich poziomów współbieżnych aktualizacji, poprawiając czasy odpowiedzi w aplikacjach przy szczytowym obciążeniu.
Ulepszenia przyniosą również korzyści innym architektom chipów, ale znacznie większe korzyści można zaobserwować w Centriq™ 2400 ze względu na jego konstrukcję zdolną do obsługi dużej liczby wątków. Wykorzystując fizyczne rdzenie zamiast hiper-wątkowości mniejszej liczby rdzeni, Centriq™ 2400 wykazuje dodatkowy 13% wzrost w porównaniu z porównywalną referencyjną platformą Broadwell.
Ponieważ systemy Centriq™ 2400 wchodzą na rynek w tym roku, cieszymy się, że obciążenia klientów wykorzystują skalowalność w połączeniu z niższym zużyciem energii do obsługi obciążeń baz danych na dużą skalę.