Back to IF3130 Sistem Paralel dan Terdistribusi

Teorema CAP dan Spektrum Model Konsistensi

Questions/Cues

  • Apa itu Teorema CAP?

  • Siapa yang mengajukan?

  • 3 Properti CAP?

  • (1) Consistency?

  • (2) Availability?

  • (3) Partition Tolerance?

  • Aturan CAP?

  • Mengapa P wajib?

  • Pilihan di dunia nyata? (CP vs AP)

  • Contoh sistem CA?

  • Contoh sistem CP?

  • Contoh sistem AP?

  • Apa itu ‘Consistency Model’?

  • Apa itu ‘Strong’ vs ‘Weak’?

  • Model Kuat: Linearizable?

  • Model Kuat: Sequential?

  • Perbedaan Linearizable vs Sequential?

  • Model Lemah: Causal?

  • Model Lemah: Eventual?

Reference Points

  • Slides 20-31

Teorema CAP

  • Diajukan oleh Eric Brewer (1999). Ini adalah “hukum” fundamental dalam desain sistem terdistribusi.

  • Teorema ini menyatakan bahwa sistem terdistribusi untuk penyimpanan data hanya dapat memilih 2 dari 3 properti berikut:

    1. C (Consistency / Konsistensi): Strong Consistency. Setiap read request akan menerima data write terakhir yang paling up-to-date. Semua node melihat data yang sama pada saat yang sama.
    2. A (Availability / Ketersediaan): Sistem selalu merespons setiap permintaan (yang tidak gagal). Respons dijamin non-error, meskipun datanya mungkin bukan yang terbaru (stale).
    3. P (Partition Tolerance / Toleransi Partisi): Sistem tetap dapat beroperasi (merespons) meskipun terjadi network partition (jaringan terputus antar node).

Pilihan di Dunia Nyata: CP vs. AP

  • Di jaringan nyata seperti WAN/Internet, network partition (P) tidak bisa dihindari (lihat Fallacy #1). “P” adalah kenyataan, bukan pilihan.

  • Oleh karena itu, pilihan desainer sistem di dunia nyata adalah antara CP atau AP:

    • Sistem CA (Consistency + Availability): Mengorbankan Toleransi Partisi.

      • Contoh: Database relasional tunggal (non-terdistribusi) atau protokol 2PC (Two-Phase Commit) di jaringan yang sangat andal (misal: LAN). Tidak cocok untuk internet.
    • Sistem CP (Consistency + Partition Tolerance): Mengorbankan Ketersediaan.

      • Strategi: Saat terjadi partisi, sistem akan berhenti merespons (menjadi unavailable) untuk menghindari data yang tidak konsisten.

      • Contoh: Algoritma konsensus (Paxos, Raft), sistem perbankan.

    • Sistem AP (Availability + Partition Tolerance): Mengorbankan Konsistensi (kuat).

      • Strategi: Saat terjadi partisi, sistem tetap merespons (tetap available), meskipun data yang dikembalikan mungkin stale (kedaluwarsa). Sistem akan menggunakan eventual consistency.
      • Contoh: Amazon DynamoDB, Cassandra, Gossip protocols, DNS.

Consistency Model (Spektrum Konsistensi)

“Consistency” bukanlah biner (ya/tidak), melainkan sebuah spektrum dari yang terkuat hingga terlemah.

  1. Strong Consistency Models (Model Kuat):

    • Linearizable Consistency: Paling kuat. Setiap operasi terlihat dieksekusi atomic dan instantaneous (seketika). Urutannya harus sesuai dengan real-time ordering (jika A selesai sebelum B mulai, efek A harus terlihat oleh B).

    • Sequential Consistency: Sedikit lebih lemah dari Linearizable. Operasi terlihat atomic, dan semua node setuju pada satu urutan global, TAPI urutan itu tidak harus sesuai real-time.

  2. Weak Consistency Models (Model Lemah):

    • Causal Consistency: Hanya menjamin urutan happened-before (sebab-akibat). Jika A B, maka B pasti melihat efek A. Operasi yang concurrent (tidak ada hubungan sebab-akibat) boleh terlihat dalam urutan berbeda oleh node berbeda.

    • Eventual Consistency: Paling lemah. Jaminan bahwa jika tidak ada update baru untuk sementara waktu, semua node pada akhirnya (eventually) akan memiliki nilai yang sama (konvergen).

Summary

Teorema CAP (Brewer) menyatakan sistem terdistribusi hanya bisa memilih dua dari tiga properti: Consistency (C), Availability (A), atau Partition Tolerance (P). Karena (P) adalah keharusan di dunia nyata, desainer harus memilih antara sistem CP (mengutamakan konsistensi, mengorbankan ketersediaan) atau AP (mengutamakan ketersediaan, mengorbankan konsistensi). “Konsistensi” sendiri adalah sebuah spektrum, mulai dari Linearizable (paling kuat dan mahal) hingga Eventual Consistency (paling lemah dan cepat).