All Products
Search
Document Center

ApsaraDB RDS:Optimisasi latensi replikasi DDL

Last Updated:Aug 26, 2026

Pernyataan DDL berdurasi panjang—seperti ALTER TABLE pada tabel besar—dapat menyebabkan database secondary tertahan selama ratusan detik sambil menunggu database primary menyelesaikan dan melakukan commit. Replikasi binlog real-time (BRR) menghilangkan penundaan ini dengan memberi tahu secondary untuk segera mengeksekusi pernyataan DDL secara paralel, alih-alih menunggu sinyal commit. Dalam pengujian benchmark pada tabel berukuran 23 GB dengan 80 juta baris, secondary mengalami latensi replikasi selama 277 detik tanpa BRR dan nol latensi saat BRR diaktifkan.

Cara kerja

MySQL menggunakan replikasi logis: setelah transaksi di-commit di database primary, event binlog yang dihasilkan dikirim ke secondary untuk diputar ulang. Untuk pernyataan DDL, muatan binlog sangat kecil (satu Gtid_log_event dan satu Query_log_event), sehingga waktu transmisi dapat diabaikan. Hambatan utamanya adalah waktu eksekusi DDL itu sendiri—secondary tidak dapat memulai hingga primary melakukan commit.

Standard DDL replication flow

BRR mengatasi masalah ini dari sumbernya. Saat primary memulai pernyataan DDL, ia segera mengirim event binlog Brr—jenis event baru yang diperkenalkan oleh fitur ini—ke secondary melalui transmisi real-time. Secondary kemudian mulai mengeksekusi DDL secara paralel menggunakan thread Brr Worker khusus, yang independen dari thread Worker standar MySQL. Setelah secondary menyelesaikan sebagian besar pekerjaan DDL, ia menunggu hasil dari primary:

  • Jika primary berhasil, ia memberi sinyal kepada secondary untuk melakukan commit.

  • Jika primary gagal, ia memberi sinyal kepada secondary untuk melakukan rollback.

Total latensi replikasi berkurang menjadi satu kali transmisi jaringan ke database secondary ditambah waktu commit DDL—biasanya puluhan milidetik.

BRR parallel DDL replication flow
Event binlog Brr tidak ditulis ke binlog atau relay log, sehingga tidak memengaruhi sistem downstream yang mengonsumsi log biner.

Prasyarat

Sebelum mengaktifkan BRR, pastikan:

Pernyataan DDL yang didukung

Pernyataan DDL yang didukung oleh BRR bergantung pada versi mesin minor Anda:

Versi mesin minor Pernyataan yang didukung
20250731 atau lebih baru ALTER TABLE
20251031 atau lebih baru ALTER TABLE dan OPTIMIZE TABLE

Aktifkan BRR

Atur parameter berikut pada database primary dan secondary dengan mengatur parameter instans. Perubahan berlaku segera—tidak diperlukan restart instans.

Database Utama

Parameter Deskripsi Default
loose_binlog_realtime_apply_ddl_source_enabled Atur ke ON untuk mengaktifkan BRR pada primary. —
loose_binlog_realtime_ddl_time_limit BRR hanya berlaku untuk pernyataan DDL yang waktu eksekusinya melebihi ambang batas ini (dalam milidetik). N adalah bilangan bulat yang lebih besar dari atau sama dengan 0. 1000

Database sekunder

Parameter Deskripsi Default
loose_binlog_realtime_apply_workers Jumlah thread Brr Worker pada secondary. Harus berupa bilangan bulat yang lebih besar dari atau sama dengan 1. —

Hasil benchmark

Pengujian berikut menggunakan satu tabel dengan 80.000.000 catatan (23 GB) dan menjalankan ALTER TABLE sbtest1 ENGINE=InnoDB untuk membangun ulang tabel tersebut. Primary mengeksekusi DDL pada pukul 16:21:35 dan lagi pada pukul 16:32:50. Instans pengujian menggunakan versi mesin minor 20251031.

BRR diaktifkan Latensi Replikasi Sekunder
Tidak 277 detik
Ya 0 detik
Benchmark results showing replication delay with and without BRR