All Products
Search
Document Center

ApsaraDB RDS:Binlog parallel flush

Last Updated:May 13, 2026

Untuk meningkatkan kinerja, AliSQL menyertakan optimasi Binlog Parallel Flush pada tahap commit log biner. Mengaktifkan optimasi ini dapat secara signifikan meningkatkan kinerja tulis instans Anda.

Prasyarat

  • Instans menjalankan salah satu versi database berikut:

    • MySQL 8.4

    • MySQL 8.0 dengan versi mesin minor 20230930 atau lebih baru.

      Catatan

      Pada halaman Basic Information, cari tombol Upgrade Minor Engine Version di bagian Configuration Information. Jika tombol tersebut terlihat, Anda dapat mengkliknya untuk melihat versi saat ini. Jika tidak, instans Anda sudah menggunakan versi terbaru. Untuk informasi selengkapnya, lihat Upgrade Minor Engine Version.

  • Parameter sync_binlog untuk instans tidak diatur ke 1.

Latar Belakang

13ca93f432f146db197ded0b18b3023042978ae3ee7812bef3267aa4ca532dedQzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTA5NTg1MTRfMjVEODNBODItRjNCMi00OGYxLUE1RDMtNzkzNkU5REIxNjQ5LnBuZw==.png

Di MySQL, setiap transaksi harus menulis ke log biner selama tahap commit. Proses ini bersifat serial: sebuah transaksi hanya dapat menulis ke log biner setelah transaksi sebelumnya selesai, seperti yang ditunjukkan pada gambar di atas.

Proses ini juga memakan waktu. Sebelum menulis ke log biner, semua event yang disimpan dalam cache log biner harus diurai, checksum dan posisi log harus diisi, serta event GTID harus dibuat. Baru setelah itu event-event tersebut dapat ditulis ke file log biner. Proses serial dan memakan waktu ini menciptakan bottleneck signifikan bagi kinerja tulis instans. Untuk mengatasi bottleneck tersebut, AliSQL menyertakan optimasi Binlog Parallel Flush.

Rincian Optimasi

Buffer log biner

7d62745838385a745eefff4a18d6f6ae712c7f429c11d5456c9288e66c0685d9QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTEwNTY5ODBfRkE0RTZEOEYtMTg0NC00NzFiLTg0RTYtRjIxQTYyNjk4OEQwLnBuZw==.png

AliSQL meningkatkan logika standar dengan memperkenalkan buffer log biner. Setelah alokasi posisi selesai, beberapa thread dapat menulis event log biner ke buffer log biner secara paralel. Sebuah thread backend kemudian menulis isi buffer log biner ke file log biner. Desain ini memungkinkan langkah-langkah yang sebelumnya serial—seperti penguraian, pengisian nilai checksum dan posisi log, serta pembuatan event GTID—dieksekusi secara paralel. Hal ini secara signifikan mengurangi bottleneck kinerja saat menulis log biner selama commit transaksi.

Commit grup paralel

Di MySQL, transaksi menulis ke log biner dan redo log dalam kelompok selama tahap commit. Teknik ini, yang dikenal sebagai group commit, menggabungkan operasi I/O untuk meningkatkan kinerja. Optimasi ini mempertahankan konsep group commit dan mengintegrasikannya dengan fitur Binlog Parallel Flush, seperti yang diilustrasikan pada gambar berikut.

49080702daa3a9709047732fbb09ebe2c40954015a22dc572926f5f706cdec34QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTEzMzE1ODZfRUVEQUNGMkEtMTE4RS00YmU4LUE0RDItQjZGRDg2NjEzMDE0LnBuZw==.png

Dengan optimasi Binlog Parallel Flush, setiap transaksi secara serial mengalokasikan GTID dan ruang di buffer log biner. Selanjutnya, beberapa kelompok dapat menulis ke buffer log biner secara paralel. Setelah redo log dipersistensikan dan thread backend selesai menulis ke log biner, sistem melakukan commit seluruh kelompok transaksi tersebut.

Persistensi log biner

f8acb0a238e8f535995bc410175c5b167240ab1ee31b97091d438c41812720b7QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTExMTgzOTBfOUMxQTkzNjktRTczNi00ZjIwLUFGNzktRUFCNERBOENBNDcwLnBuZw==.pngDengan optimasi Binlog Parallel Flush, sebuah thread backend secara berkala mempersistensikan file log biner. Secara default, hal ini terjadi sekali per detik.

Parameter

loose_binlog_parallel_flush

Variabel sistem global ini mengaktifkan atau menonaktifkan fitur Binlog Parallel Flush. Nilai yang valid: on atau off. Perubahan pada parameter ini berlaku langsung tanpa memerlukan restart instans.

Dampak Kinerja

Lingkungan Pengujian

Pengujian membandingkan kinerja pada empat spesifikasi instans ApsaraDB RDS for MySQL yang berbeda, sebagaimana dirinci dalam tabel berikut.

Produk

Versi

vCPU dan memori

Jenis penyimpanan

Ukuran penyimpanan

ApsaraDB RDS for MySQL

8.0 (versi mesin minor 20230930)

16 vCPU 32 GB

ESSD PL1

1000 GB

16 vCPU 32 GB

SSD

1000 GB

64 vCPU 128 GB

ESSD PL1

1000 GB

64 vCPU 128 GB

SSD

1000 GB

Pengaturan parameter

Instans pengujian menggunakan template parameter berkinerja-tinggi dengan dua parameter terkait kinerja diatur ke sync_binlog = 1000 dan innodB_flush_log_at_trx_commit = 2.

Skrip pengujian

Pengujian kinerja menggunakan skrip oltp_update_non_index dari SysBench. Set data uji terdiri dari 100 tabel, masing-masing berisi 100.000 baris.

Hasil pengujian

Hasil pengujian ditampilkan pada gambar berikut. Di bawah beban kerja konkurensi tinggi, fitur Binlog Parallel Flush memberikan peningkatan kinerja signifikan dibandingkan implementasi MySQL standar. Peningkatan kinerja puncak berkisar antara 10% hingga 30%.

5387087b82ed9e5a496a96425aee3abbe3cd103f9e53f63b92eae933526933a3QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTA0ODMyODY1NTlfOTdCMkI0NTktNTYzMi00ZmU2LUJEMTMtOEQwMjg5QTYwQTVCLnBuZw==.png