🚀 What Does a Database for SSDs Look Like?


Tanggal artikel: 15 Desember 2025

📝 Deskripsi Ringkas

Artikel ini merespons pertanyaan hipotetis tentang bagaimana database relasional akan dirancang dari nol pada tahun 2025 dengan mempertimbangkan SSD modern yang 1000x lebih cepat daripada hard disk era 90-an. Penulis mengeksplorasi desain ulang arsitektur database dengan mempertimbangkan penyimpanan SSD lokal berkecepatan tinggi, jaringan data center low-latency, dan kebutuhan aplikasi modern yang menuntut uptime 24/7.


⚠️ Problem Statement


Arsitektur Warisan Era Spinning Disk: Database populer seperti Postgres dan MySQL dirancang pada era 90-an/00-an dengan asumsi I/O lambat dan akses sekuensial jauh lebih cepat daripada acak.


Perubahan Perangkat Keras: SSD NVMe lokal menawarkan peningkatan throughput dan latensi hingga 1000x lipat, membuat banyak optimasi lama (seperti write-ahead logs tradisional atau buffering besar) menjadi kurang relevan atau perlu penyesuaian.


Konteks Cloud & Jaringan: Infrastruktur data center modern menyediakan bandwidth jaringan 1000x lebih tinggi dan latensi mikrodetik, mengubah cara replikasi dan durabilitas harus ditangani.


Tuntutan Bisnis Baru: Aplikasi kini bersifat global, beroperasi 24/7, dan menuntut keamanan serta kepatuhan yang lebih ketat, berbeda dengan era desain database awal.

🛠️ Solusi / Approach

Penulis mengusulkan lima pendekatan utama untuk mendesain database modern:


Aturan Lima Menit (Diperbarui): Dengan biaya RAM dan penyimpanan saat ini, halaman data (pages) sebaiknya disimpan di cache (RAM) jika akan diakses kembali dalam waktu sekitar 30 detik untuk efisiensi biaya optimal.


Titik Impas Throughput/IOPS: Transfer data ke SSD sebaiknya tidak jauh lebih kecil dari 32kB rata-rata. Di atas 32kB dibatasi throughput, di bawah 32kB dibatasi IOPS.


Replikasi Lintas-AZ: Alih-alih durabilitas lokal, database modern harus mereplikasi data secara sinkron ke Availability Zone (AZ) lain. Latensi lintas-AZ hanya dibebankan saat commit, bukan saat penulisan data.



Optimasi Latensi & Konsistensi: Menggunakan jam perangkat keras berkualitas tinggi (high-quality clocks) untuk mencapai strongly consistent scale-out reads tanpa mengorbankan performa lintas-AZ.


Distributed Log sebagai WAL: Mengganti Write-Ahead Log (WAL) sistem tunggal dengan distributed log yang menyediakan durabilitas multi-mesin dan multi-AZ secara inheren.


📊 Findings / Results / Impact


Efisiensi Cache: Ukuran cache optimal untuk biaya adalah untuk data yang diakses dalam 30 detik terakhir, namun untuk latensi optimal bisa lebih besar.


Kinerja SSD: Transfer data >32kB memaksimalkan throughput SSD tanpa membebani IOPS secara berlebihan.


Durabilitas Terdistribusi: Memindahkan durabilitas dari disk lokal ke sistem terdistribusi meningkatkan performa dan ketersediaan data, serta menyederhanakan pemulihan (recovery) melalui replay dari log terdistribusi.


⚙️ How to Implement (General Pattern)

Jika Anda membangun database di 2025, ikuti pola ini:


Pertahankan: Model relasional, atomisitas, isolasi (Snapshot sebagai default), SQL, dan konsistensi kuat.


Buang: Durabilitas dan pemulihan lokal (local durability/recovery), serta optimasi struktur data lama yang dibangun untuk piringan berputar.

Adopsi:

Ukuran transfer baca SSD sekitar 32kB dan transfer jaringan sekitar 8kB.

Isolasi internal yang kuat antar klien (multi-tenancy).

Desain cloud-native yang memanfaatkan jaringan cepat untuk replikasi sinkron.

💡 Key Takeaways


Jaringan adalah SSD Baru: Bandwidth dan latensi jaringan data center modern sama transformatifnya dengan SSD bagi desain database.


Durabilitas Terdistribusi: Di era cloud, durabilitas bukan lagi tentang menulis ke disk di satu mesin, tapi mereplikasi state ke beberapa zona ketersediaan.


Evolusi Aturan Lama: Prinsip-prinsip sistem lama (seperti 5 Minute Rule) masih berlaku, namun parameternya telah berubah drastis mengikuti ekonomi perangkat keras baru.


🗣️ Apakah Anda masih mengelola database on-premise dengan tuning parameter warisan (seperti shared_buffers di Postgres) yang mungkin sudah usang untuk infrastruktur SSD NVMe Anda? Atau Anda sudah beralih ke database cloud-native seperti Aurora DSQL?

Sumber:
https://brooker.co.za/blog/2025/12/15/database-for-ssd.html

🏷️ Tag #DatabaseDesign #SystemDesign #SSD #CloudNative #DistributedSystems #Postgres #AWS #Engineering #TechTrends

Leave a Comment