16K atomic write meningkatkan performa penulisan pada ApsaraDB RDS for MySQL minimal 40%—tanpa biaya tambahan. Fitur ini bekerja dengan memberikan jaminan tingkat perangkat keras kepada InnoDB bahwa setiap penulisan halaman data berukuran 16 KB bersifat atomik, sehingga mekanisme doublewrite tidak lagi diperlukan.
Cara kerja
Mesin InnoDB MySQL membaca dan menulis data dalam halaman berukuran 16 KB, tetapi sebagian besar sistem file menulis dalam blok berukuran 4 KB. Tanpa perlindungan tambahan, pemadaman listrik di tengah proses penulisan dapat menyebabkan halaman tertulis sebagian—suatu kondisi yang tidak dapat dipulihkan oleh InnoDB secara mandiri.
Solusi tradisional InnoDB adalah mekanisme doublewrite: menulis setiap halaman kotor terlebih dahulu ke buffer penulisan ganda, lalu meng-flush-nya ke lokasi sebenarnya. Hal ini menjadikan setiap operasi flush sebagai dua operasi penulisan alih-alih satu, hampir menggandakan beban I/O penulisan.
16K atomic write menggunakan pendekatan berbeda. Alih-alih menulis setiap halaman dua kali, fitur ini meminta penyimpanan dasar untuk menjamin bahwa setiap penulisan 16 KB akan diselesaikan sepenuhnya atau sama sekali tidak dilakukan. Dengan jaminan tersebut, buffer penulisan ganda tidak lagi memberikan nilai keamanan tambahan—sehingga innodb_doublewrite dinonaktifkan, memangkas beban I/O penulisan hingga separuhnya.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans RDS yang menjalankan MySQL 5.7 atau MySQL 8.0
Jenis penyimpanan: SSD standar atau Premium ESSD
Penagihan
16K atomic write gratis. Tidak ada biaya untuk mengaktifkan atau menonaktifkannya.
Catatan penggunaan
Diperlukan restart instans: Instans akan restart saat Anda mengaktifkan atau menonaktifkan 16K atomic write. Rencanakan downtime sebelum melakukan perubahan.
Instans primary dan read-only saling terkait: Jika 16K atomic write diaktifkan pada instans primary, fitur tersebut tidak dapat dinonaktifkan pada instans read-only. Menonaktifkannya hanya di sisi read-only akan menciptakan ketidaksesuaian performa yang menyebabkan latensi replikasi.
Konfigurasi diwariskan: Instans read-only dan instans yang dipulihkan dari backup mewarisi pengaturan 16K atomic write dari instans sumber.
Mengaktifkan atau menonaktifkan 16K atomic write
Instans yang memenuhi prasyarat dan kondisi berikut memiliki 16K atomic write yang diaktifkan secara default:
Instans baru: Dibeli melalui Konsol ApsaraDB RDS pada atau setelah 14 Mei 2025.
Instans YiTian RDS yang sudah ada: Instans yang jenis produk-nya belum diubah. Instans standar yang sudah ada tidak mendukung 16K atomic write.
Buka daftar instans ApsaraDB RDS, pilih wilayah, lalu klik ID instans target.
Pada halaman Basic Information, klik sakelar 16K atomic write untuk mengaktifkan atau menonaktifkan fitur tersebut.
Pengujian performa
Hasil berikut diukur menggunakan Sysbench oltp_write_only pada instans Edisi Ketersediaan Tinggi dengan Premium ESSD, membandingkan QPS sebelum dan sesudah mengaktifkan 16K atomic write.
Pengaturan pengujian
Instans uji
| Edisi | Jenis penyimpanan | Instance family | Tipe instans | Spesifikasi |
|---|---|---|---|---|
| Ketersediaan Tinggi | Premium ESSD | Tujuan umum | mysql.n2.large.2c | 4 core, 8 GB |
| Ketersediaan Tinggi | Premium ESSD | Spesifikasi khusus | mysql.x2.large.2c | 4 core, 8 GB |
Data uji: 300 GB tersebar di 30 tabel, masing-masing berisi 40 juta baris.
Instal Sysbench (contoh CentOS):
git clone https://github.com/akopytov/sysbench.git
cd sysbench
git checkout 0.5
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
./autogen.sh
./configure
make -j
make installPersiapkan data uji:
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepareParameter uji
| Parameter | Nilai | Deskripsi |
|---|---|---|
tables | 30 | Jumlah tabel |
table_size | 40.000.000 | Baris per tabel |
rand-type | special | Distribusi angka acak |
rand-spec-pct | 15 | Persentase nilai yang diperlakukan sebagai nilai khusus |
threads | 64 | Thread konkuren |
time | 100 | Durasi pengujian (detik) |
Jalankan pengujian
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 runHasil pengujian
16K atomic write
Instans tujuan umum (4 core, 8 GB): QPS meningkat sebesar 48% setelah mengaktifkan 16K atomic write (oranye).

Instans spesifikasi khusus (4 core, 8 GB): QPS meningkat sebesar 47% setelah mengaktifkan 16K atomic write (oranye).

16K atomic write + Buffer Pool Extension (BPE)
Untuk detail mengenai fitur Buffer Pool Extension (BPE) untuk Premium ESSD, lihat Gunakan fitur akselerasi I/O ESSD umum.
Instans tujuan umum (4 core, 8 GB): QPS meningkat sebesar 93% setelah mengaktifkan 16K atomic write dan BPE secara bersamaan (oranye).
