Nowość – Amazon RDS Optimized Reads i Optimized Writes

29 listopada 2022

Już w 2009 roku Jeff Barr napisał Wprowadzenie do Amazon RDS – The Amazon Relational Database Service i powiedział:

„RDS ułatwia konfigurowanie, obsługę i skalowanie relacyjnej bazy danych w chmurze. Otrzymujesz bezpośredni dostęp do bazy danych bez martwienia się o udostępnianie infrastruktury, konserwację oprogramowania lub typowe zadania związane z zarządzaniem bazą danych”.

Od tej premiery twórcy AWS nadal robią wszystko, co w ich mocy, aby pomóc Ci uniknąć wszystkich tych elementów, jednocześnie pracując nad tym, aby RDS stał się coraz bardziej opłacalny. Przykładowo, niedawno uruchomiono Graviton2 DB Instances, które zapewniają do 52% lepszą cenę/wydajność oraz nową opcję wdrażania Multi-AZ, która zapewnia do 33% lepszą cenę/wydajność oraz 2x szybsze opóźnienie zatwierdzania transakcji.

Dzisiaj autorzy chcą opowiedzieć o dwóch nowych funkcjach, które przyspieszą Twoje obciążenia Amazon RDS for MySQL:

  • Amazon RDS Optimized Reads umożliwiają szybsze przetwarzanie zapytań poprzez umieszczanie tymczasowych tabel generowanych przez MySQL na blokowej pamięci masowej SSD opartej na NVMe, która jest fizycznie połączona z serwerem hosta. Zapytania korzystające z tabel tymczasowych, takie jak sortowanie, agregacja skrótów, sprzężenia o dużym obciążeniu i Wspólne Wyrażenia Tabeli (CTE), mogą być wykonywane nawet o 50% szybciej dzięki zoptymalizowanym odczytom.
  • Amazon RDS Optimized Writes zapewniają nawet dwukrotną poprawę przepustowości transakcji zapisu bez dodatkowych opłat i przy tym samym poziomie IOPS. Zoptymalizowane zapisy doskonale sprawdzają się w przypadku obciążeń z dużym obciążeniem zapisem, które generują wiele jednoczesnych transakcji. Obejmuje to płatności cyfrowe, platformy handlu finansowego i gry online.

Amazon RDS Optimized Reads

Amazon RDS for MySQL without Optimized Reads umieszcza tymczasowe tabele w woluminach Amazon Elastic Block Store (Amazon EBS). Zoptymalizowane odczyty przenoszą operacje na obiektach tymczasowych z EBS do magazynu instancji dołączonego do instancji r5d, m5d, r6gd i m6gd. W rezultacie woluminy EBS mogą być efektywniej wykorzystywane do odczytów i zapisów trwałych danych, a także operacji w tle, takich jak opróżnianie, scalanie buforów wstawiania i tak dalej. Ta zwiększona wydajność jest (oczywiście) zawsze miła, ale jest szczególnie korzystna w niektórych przypadkach użycia:

  • Zapytania analityczne obejmujące złożone wyrażenia tabelaryczne, tabele pochodne i operacje grupowania.
  • Repliki odczytu obsługujące niezoptymalizowane zapytania dla aplikacji.
  • Zapytania On-Demand lub Dynamic Reporting Query ze złożonymi operacjami, takimi jak GROUP BY i ORDER BY, które nie zawsze mogą używać odpowiednich indeksów.
  • Inne obciążenia korzystające z wewnętrznych tabel tymczasowych.

Możesz monitorować zmienną stanu MySQL created_tmp_files, aby obserwować tempo tworzenia tabel tymczasowych.

Ilość miejsca dostępnego w instancji różni się w zależności od rodziny i rozmiaru instancji. Oto przewodnik:

nstance Family Minimum Storage
Maximum Storage
m5d 75 GB 3.6 TB
m6gd 118 GB 3.8 TB
r5d 75 GB 3.6 TB
r6gd 118 GB 3.8 TB

Korzystanie z Optimized Reads

Aby skorzystać z tej nowej funkcji, wybierz silnik MySQL w wersji 8.0.28 lub nowszej i uruchom Amazon RDS for MySQL na jednym z typów instancji wymienionych powyżej:

Korzystanie z Optimized Reads

Możesz monitorować użycie pamięci instancji, obserwując nowe metryki CloudWatch, w tym FreeLocalStorage, ReadIOPSLocalStorage, WriteIOPSLocalStorage i tak dalej (pełną listę nowych i istniejących metryk znajdziesz w Podręczniku użytkownika).

Zoptymalizowane Odczyty są dostępne we wszystkich regionach AWS, w których dostępne są kwalifikujące się typy instancji bazy danych.

Amazon RDS Optimized Writes

Domyślnie MySQL używa bufora podwójnego zapisu na dysku, który służy jako przystanek pośredni między pamięcią a ostatecznym miejscem przechowywania na dysku. Każda strona bufora to 16 KiB, ale jest zapisywana w końcowej pamięci na dysku w porcjach 4 KiB. Ten dodatkowy krok pozwala zachować integralność danych, ale zużywa również dodatkową przepustowość I/O. W przypadku uruchamiania obciążeń wymagających dużej ilości zapisu, które opisano wcześniej, może to wymagać zapewnienia dodatkowych operacji I/O na sekundę, aby spełnić wymagania dotyczące wydajności i przepustowości.

Zoptymalizowane zapisy wykorzystują jednolite strony bazy danych o rozmiarze 16 KiB, bloki systemu plików i strony systemu operacyjnego oraz zapisują je w pamięci masowej w sposób atomowy (all or nothing), co skutkuje nawet dwukrotną poprawą wydajności, o której wspomniano wcześniej.

Wykorzystanie Optimized Writes

Aby korzystać ze zoptymalizowanych zapisów, należy utworzyć od podstaw nową instancję bazy danych na instancji db.r5b lub db.r6i z najnowszą wersją MySQL 8.0:

Wykorzystanie Optimized Writes

To ustawienie wpływa na format migawek bazy danych, co ma dwie ważne konsekwencje:

  1. Nie można przywrócić istniejącej niezoptymalizowanej migawki do nowej, zoptymalizowanej, aby włączyć Optimized Writes.
  2. Przywrócenie migawki utworzonej z włączoną optymalizacją spowoduje włączenie Optimized Writes w nowej instancji.

Jeśli skalujesz do typu instancji, który nie obsługuje Optimized Writes, Amazon RDS włączy tryb podwójnego zapisu MySQL w instancji jako awaryjną. Jeśli skalujesz do instancji obsługującej zoptymalizowane zapisy z takiej, która tego nie obsługuje, Amazon RDS uruchomi MySQL w trybie podwójnego zapisu, zaczeka na zakończenie odzyskiwania i odtwarzania dziennika, a następnie ponownie uruchomi MySQL z wyłączoną funkcją podwójnego zapisu.

Optimized Writes są teraz dostępne w regionach wschodnich Stanów Zjednoczonych (Ohio, Wirginia Północna), Zachodnich Stanów Zjednoczonych (Oregon), Azji i Pacyfiku (Singapur, Tokio) oraz Europy (Frankfurt, Irlandia, Paryż) i możesz zacząć z nich korzystać już dziś!

źródło: AWS

Case Studies
Referencje

Hostersi wsparli nas na każdym etapie projektowania i budowy infrastruktury. Finansowanie, które pomogli pozyskać nam od AWS, pozwoliło przetestować szereg różnych rozwiązań i wybrać konfigurację, która najlepiej odpowiada potrzebom naszej aplikacji. Hostersi stworzyli dla nas infrastrukturę „szytą na miarę”, którą dzięki programowi wsparcia startupów, pozyskaliśmy niemal bezkosztowo.

Wojciech Mróz
CEO & Co-founder Pagaspot
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.