Durability vs Availability #
Dua kata ini sering digunakan bergantian dalam diskusi tentang storage, tapi keduanya mengukur hal yang berbeda. Durability mengukur apakah data kamu ada — apakah datanya tidak hilang atau corrupt. Availability mengukur apakah data kamu bisa diakses — apakah storage service-nya bisa dijangkau saat kamu butuh. Sebuah sistem bisa punya durability tinggi tapi availability rendah — data ada, tapi tidak bisa diakses sementara. Atau availability tinggi tapi durability rendah — selalu bisa diakses, tapi data berisiko hilang. Memahami perbedaan ini membantu kamu memilih storage tier yang tepat dan merancang sistem yang tahan terhadap berbagai jenis kegagalan.
Durability — Apakah Data Akan Tetap Ada? #
Durability adalah probabilitas bahwa data yang sudah disimpan tidak akan hilang atau corrupt dalam jangka waktu tertentu. Ia diukur dalam “nines” seperti availability, tapi mengacu pada integritas data, bukan aksesibilitas.
Durability 99.999999999% (11 nines):
→ Jika kamu simpan 10 juta objek
→ Ekspektasi kehilangan: 1 objek per 10.000 tahun
→ Ini adalah standar object storage di cloud provider besar
Cara provider mencapai durability tinggi:
1. Replikasi ke beberapa perangkat fisik dalam satu data center
2. Replikasi ke beberapa data center (cross-AZ)
3. Checksum pada setiap operasi read dan write
4. Deteksi dan auto-repair silent data corruption
5. Erasure coding (lebih efisien dari full replication)
Apa yang mengancam durability:
✗ Hardware failure secara bersamaan (mitigasi: replikasi multi-AZ)
✗ Software bug yang corrupt data saat write (mitigasi: checksum)
✗ Bencana yang memusnahkan seluruh region (mitigasi: cross-region backup)
✗ Penghapusan tidak sengaja atau ransomware (mitigasi: versioning)
Catatan penting: provider menjamin durability dari kegagalan
infrastruktur mereka. Mereka TIDAK menjamin dari kesalahan
pengguna (hapus file, bug aplikasi yang overwrite data).
Availability — Apakah Data Bisa Diakses? #
Availability mengukur persentase waktu storage service bisa melayani request dengan sukses. Ini berbeda dari durability — data bisa ada (durable) tapi service sedang down (tidak available).
Perbandingan SLA Availability Berbagai Tier Storage:
Storage Tier Availability Downtime per tahun
─────────────────────────────────────────────────────────
Standard (Hot) 99.99% 52 menit
Standard-IA* 99.9% 8.7 jam
Archive (Cold) 99.9% 8.7 jam (restore butuh menit-jam)
*IA = Infrequent Access
Perhatikan: availability lebih rendah di tier yang lebih murah.
Standard-IA lebih murah per GB, tapi ada 8.7 jam potential
downtime per tahun. Untuk data yang jarang diakses,
ini biasanya sangat acceptable.
Mengapa Durability dan Availability Bisa Berbeda #
Ini adalah bagian yang paling sering membingungkan: bagaimana data bisa ada tapi tidak bisa diakses?
Skenario: Durability Tinggi, Availability Rendah
Data disimpan di 3 AZ berbeda (durability sangat tinggi)
Salah satu AZ mengalami kegagalan jaringan
Jika storage service bergantung pada quorum dari 3 AZ:
→ 2 dari 3 AZ masih sehat → data masih durable
→ Tapi jika konfigurasi butuh quorum 3/3 untuk operasi
→ Storage service menolak write untuk konsistensi
→ Availability menurun sementara
Skenario lain: Restore dari archive
Data ada (durable) di tier archive
Request untuk akses data → butuh proses restore (menit hingga jam)
Selama restore: availability "rendah" — data ada tapi belum bisa diakses
Skenario: Availability Tinggi, Durability Rendah
Cache in-memory (Redis tanpa persistence):
→ Selalu bisa diakses (availability tinggi)
→ Jika server restart, semua data hilang (durability nol)
RAID-0 (striping tanpa redundancy):
→ Read/write cepat (availability tinggi untuk operasi normal)
→ Satu disk rusak = semua data hilang (durability sangat rendah)
Trade-off Biaya dan Karakteristik per Storage Tier #
Pemahaman ini langsung berguna untuk memilih storage tier yang tepat.
Hot Storage (Standard):
Durability: 99.999999999% (11 nines)
Availability: 99.99%
Latensi: Milidetik
Biaya per GB: Paling mahal
Cocok untuk: Data yang sering diakses (< 30 hari)
Warm Storage (Infrequent Access):
Durability: 99.999999999% (11 nines) — sama
Availability: 99.9%
Latensi: Milidetik — sama
Biaya per GB: Lebih murah (30-50% dari hot)
Biaya akses: Ada biaya per GB yang diambil (retrieval fee)
Cocok untuk: Data yang jarang diakses (30-365 hari)
Cold Storage (Archive / Glacier):
Durability: 99.999999999% (11 nines) — sama
Availability: 99.9% setelah di-restore
Latensi: Menit hingga jam (harus restore dulu)
Biaya per GB: Sangat murah (1/10 dari hot)
Biaya akses: Signifikan per GB restore
Cocok untuk: Data yang sangat jarang diakses (> 1 tahun),
compliance, backup jangka panjang
Implikasi desain:
✓ Jangan simpan semua data di hot storage — mahal dan tidak perlu
✓ Jangan simpan data aktif di cold storage — akses lambat
✓ Gunakan lifecycle policy untuk otomatis pindah data seiring waktu
Konsistensi — Dimensi Ketiga yang Sering Dilupakan #
Di sistem terdistribusi, ada satu dimensi lagi yang berkaitan: konsistensi — apakah semua pembaca mendapat data yang sama pada saat yang sama.
Strong Consistency:
→ Setelah write sukses, semua read berikutnya mendapat data terbaru
→ Lebih mudah dipahami dan diprogram
→ Bisa berdampak pada availability (menolak read jika quorum tidak tercapai)
Eventual Consistency:
→ Setelah write, data mungkin belum tersebar ke semua node
→ Read mungkin mendapat data lama sebentar
→ Availability lebih tinggi (bisa serve read dari node manapun)
→ Data akhirnya konsisten — biasanya dalam milidetik
CAP Theorem (simplified):
Dalam sistem terdistribusi, kamu tidak bisa punya
semuanya sekaligus:
C (Consistency) — semua node lihat data yang sama
A (Availability) — setiap request dapat response
P (Partition tolerance) — sistem tetap berjalan meski ada network split
Realita: Partition tolerance adalah wajib di sistem terdistribusi.
Jadi pilihan sebenarnya adalah C vs A ketika partition terjadi:
→ Pilih C: sistem mungkin reject request untuk jaga konsistensi
→ Pilih A: sistem serve request tapi mungkin dengan data stale
Ringkasan #
- Durability = data tidak hilang, Availability = data bisa diakses — keduanya mengukur hal yang berbeda dan bisa bergerak secara independen.
- 11 nines durability bukan berarti aman dari kesalahan pengguna — provider menjamin hardware tidak fail; proteksi dari hapus tidak sengaja adalah tanggung jawabmu (versioning, backup).
- Storage tier yang lebih murah biasanya punya availability lebih rendah — Infrequent Access dan Archive cocok untuk data yang jarang diakses dan tidak membutuhkan akses instan.
- Archive storage: data durable tapi butuh waktu untuk restore — ini contoh nyata durability tinggi tapi availability rendah.
- CAP theorem: pilih konsistensi atau availability saat terjadi partition — tidak bisa dapat keduanya sekaligus di sistem terdistribusi.
- Gunakan lifecycle policy untuk mengoptimalkan biaya — data panas di hot storage, data dingin otomatis pindah ke archive seiring waktu.
← Sebelumnya: File Storage Berikutnya: Lifecycle & Data Tiering →