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 →

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact