PolarDB for MySQL menggunakan teknologi Remote Direct Memory Access (RDMA) untuk mengoptimalkan pengiriman log dan menyediakan solusi pengiriman log berbasis RDMA. Solusi ini menggantikan metode pengiriman tradisional berbasis penyimpanan bersama atau TCP, meningkatkan throughput pengiriman log hingga 100%, serta mengurangi latensi replikasi lebih dari 50%. Topik ini menjelaskan cara kerja pengiriman log berbasis RDMA, cara mengaktifkan fitur ini, dan performanya dalam skenario standar.
Cara pengiriman log berbasis RDMA bekerja
Secara default, PolarDB mensinkronkan log menggunakan metode berbasis penyimpanan bersama atau TCP. Untuk mempercepat sinkronisasi log dan mengurangi overhead, PolarDB memperkenalkan teknologi pengiriman log berbasis RDMA. Berikut adalah cara kerja pengiriman log berbasis RDMA:
Buffer log redo node baca-saja dianggap sebagai gambar jarak jauh dari buffer log redo node utama.
Sebelum buffer log ditulis ke disk, node utama secara asinkron menulis ulang log ke buffer log node baca-saja jarak jauh, lalu mensinkronkan offset ke node baca-saja.
Node baca-saja membaca buffer log lokal alih-alih log redo di penyimpanan bersama, yang mempercepat replikasi dan sinkronisasi.
Dibandingkan dengan operasi dua sisi pada metode tradisional, operasi satu sisi pengiriman log berbasis RDMA menggunakan kata kerja READ/WRITE tanpa melibatkan CPU penerima. Log ditulis ke memori node baca-saja jarak jauh menggunakan alamat dan kunci jarak jauh.
Batasan
Kluster harus merupakan versi PolarDB for MySQL 8.0.1 dengan revisi 8.0.1.1.33 atau lebih baru.
Fitur pengiriman log berbasis RDMA tidak dapat diaktifkan untuk kluster sekunder dalam global database network (GDN).
Penggunaan
Anda dapat mengonfigurasi parameter loose_innodb_polar_log_rdma_transfer untuk mengaktifkan pengiriman log berbasis RDMA.
Parameter | Tingkat | Deskripsi |
loose_innodb_polar_log_rdma_transfer | Global | Menentukan apakah akan mengaktifkan fitur pengiriman log berbasis RDMA. Nilai valid:
|
Uji performa
Mengurangi latensi replikasi
Dalam berbagai skenario penulisan, pengiriman log berbasis RDMA dapat secara signifikan mengurangi latensi replikasi node baca-saja.
Contoh berikut menunjukkan hasil uji latensi replikasi pada kluster PolarDB for MySQL 8.0 dengan konfigurasi 32 core CPU dan 128 GB memori. Pengujian dilakukan menggunakan 20 tabel, masing-masing berisi 2 juta baris data. Pengujian membandingkan latensi replikasi node baca-saja ketika pengiriman log berbasis RDMA diaktifkan atau dinonaktifkan pada tingkat penulisan redo yang berbeda.

Seperti yang ditunjukkan pada gambar di atas, ketika pengiriman log berbasis RDMA diaktifkan, latensi replikasi node baca-saja berkurang secara signifikan seiring dengan meningkatnya laju penulisan redo.
Meningkatkan performa SCC PolarDB
Ketika konsistensi global (mode kinerja tinggi) diaktifkan, latensi replikasi node baca-saja sangat memengaruhi performa PolarDB for MySQL. Pengiriman log berbasis RDMA dapat secara efektif meningkatkan performa Strict Consistency Cluster (SCC).
Contoh berikut menunjukkan hasil uji performa SCC pada kluster PolarDB for MySQL 8.0 dengan konfigurasi 8 core CPU dan 32 GB memori. Pengujian dilakukan menggunakan 20 tabel, masing-masing berisi 2 juta baris data. Pengujian membandingkan performa SCC node baca-saja ketika pengiriman log berbasis RDMA diaktifkan atau dinonaktifkan dengan jumlah thread yang berbeda.

Seperti yang ditunjukkan pada gambar di atas, ketika pengiriman log berbasis RDMA diaktifkan, performa SCC node baca-saja meningkat sekitar 20%.