\ud83e\udd14 What Is a Distributed Database?
A distributed database spreads data across multiple servers (nodes) in different locations. The CAP theorem says you can only guarantee two of three properties: Consistency (every read sees the latest write), Availability (every request gets a response), and Partition Tolerance (the system works despite network splits).
Mengapa ini penting? Every major internet service from Google to Netflix relies on distributed databases. Understanding the tradeoffs between consistency and availability is essential for building reliable, scalable systems that serve billions of users.
📖 Pelajari lebih dalam
Analogi 1
Bayangkan sebuah sistem perpustakaan dengan cabang di 5 kota, semuanya berbagi katalog yang sama. Ketika seseorang memeriksa buku di Cabang A, semua cabang lainnya perlu memperbarui catatan mereka. Jika saluran telepon ke Cabang C terputus (partisi jaringan), Cabang C mungkin masih menampilkan buku tersedia — itu adalah masalah konsistensi. Anda dapat mengunci semua pinjaman hingga Cabang C terhubung kembali (memilih konsistensi), atau membiarkan setiap cabang tetap memberikan pinjaman secara independen dan melakukan rekonsiliasi nanti (memilih ketersediaan).
Analogi 2
Bayangkan obrolan grup dengan teman-teman dari berbagai negara. Saat Anda mengirim pesan, semua orang akan melihatnya dalam urutan yang sama. Namun jika koneksi internet seseorang terputus, mereka akan kehilangan pesan dan mungkin membalas informasi yang sudah ketinggalan zaman sehingga menciptakan alur percakapan yang saling bertentangan. Basis data terdistribusi menghadapi masalah serupa dalam skala besar, dan menggunakan teknik seperti jam vektor dan CRDT untuk menyelesaikan kekacauan ketika semua orang terhubung kembali.
🎯 Tips Simulator
Pemula
Mulailah dengan 5 node dan Faktor Replikasi 3 — ini berarti setiap bagian data disimpan di 3 dari 5 node
Menengah
Bandingkan Konsistensi Tulis ALL vs ONE — ALL lebih lambat namun menjamin setiap replika memiliki data terbaru
Ahli
Nonaktifkan Jam Vektor dan picu penulisan serentak selama partisi untuk mengamati konflik yang belum terselesaikan
📚 Glosarium
🏆 Tokoh Utama
Eric Brewer (2000)
Merumuskan Teorema CAP di UC Berkeley, yang secara mendasar membentuk desain database terdistribusi dengan membuktikan ketidakmungkinan menjamin konsistensi, ketersediaan, dan toleransi partisi secara bersamaan
Leslie Lamport (1998)
Menciptakan algoritme konsensus Paxos dan memelopori teori sistem terdistribusi dengan konsep seperti jam logis, stempel waktu Lamport, dan Masalah Jenderal Bizantium
Diego Ongaro (2014)
Merancang algoritma konsensus Raft di Stanford, membuat konsensus terdistribusi dapat dimengerti dan praktis untuk sistem dunia nyata seperti dll dan CockroachDB
Werner Vogels (2007)
Memimpin desain Dynamo Amazon, yang memperkenalkan hashing yang konsisten, jam vektor, dan kuorum yang ceroboh — menginspirasi Cassandra, Riak, dan seluruh gerakan NoSQL
Jeff Dean & Wilson Hsieh (2012)
Google Spanner yang dirancang bersama, database pertama yang didistribusikan secara global dengan transaksi yang konsisten secara eksternal menggunakan TrueTime API dan sinkronisasi GPS/jam atom
Marc Shapiro (2011)
Memelopori Tipe Data Replikasi Bebas Konflik (CRDT) di INRIA, memberikan landasan matematika untuk konsistensi akhir yang bebas koordinasi
🎓 Sumber Belajar
- Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services [paper]
Bukti formal teorema CAP, menetapkan hasil ketidakmungkinan mendasar untuk sistem terdistribusi (ACM SIGACT News, 2002) - Dynamo: Amazon's Highly Available Key-value Store [paper]
Makalah Amazon yang berpengaruh tentang penyimpanan terdistribusi yang pada akhirnya konsisten menggunakan hashing yang konsisten, jam vektor, dan kuorum yang ceroboh (SOSP 2007) - Spanner: Google's Globally Distributed Database [paper]
Basis data Google yang konsisten secara global berbasis TrueTime mencapai konsistensi eksternal melalui GPS dan sinkronisasi jam atom (OSDI 2012) - In Search of an Understandable Consensus Algorithm (Raft) [paper]
Algoritme konsensus Raft dirancang agar mudah dipahami, sekarang digunakan di etcd, CockroachDB, dan TiKV (USENIX ATC 2014) - Designing Data-Intensive Applications [article]
Panduan komprehensif Martin Kleppmann tentang dasar-dasar sistem terdistribusi, replikasi, partisi, dan model konsistensi - Jepsen.io [article]
Pengujian dan analisis ketat Kyle Kingsbury terhadap klaim kebenaran basis data terdistribusi dalam kondisi kegagalan nyata - The Raft Consensus Algorithm Visualization [article]
Visualisasi interaktif algoritma konsensus Raft dengan pemilihan pemimpin langkah demi langkah dan replikasi log