Portal/Notes πŸ“
Programming

Teorema CAP

Prinsip fundamental dalam sistem terdistribusi β€” tradeoff antara Consistency, Availability, dan Partition Tolerance.

Versi Bahasa Indonesia. Baca dalam Bahasa Inggris

  • Prinsip fundamental dalam sistem terdistribusi.
  • Tradeoff antara properti yang diinginkan: Consistency, Availability, Partition Tolerance.

Consistency (C)

  • Setiap pembacaan menerima data terbaru (atau error).
  • Ini memastikan bahwa semua node dalam sistem memiliki data yang sama pada waktu tertentu.

Availability (A)

  • Setiap request (baca atau tulis) menerima respons, terlepas dari apakah berhasil atau tidak.
  • Sistem tetap beroperasi bahkan dengan adanya kegagalan beberapa node.

Partition Tolerance (P)

  • Sistem terus berfungsi bahkan ketika ada partisi jaringan (situasi di mana komunikasi antar node terganggu).

Teorema

  • Teorema CAP menyatakan bahwa sistem terdistribusi tidak dapat menjamin ketiga properti secara simultan.
  • Hanya dapat menyediakan maksimal dua dari tiga properti.
  • Consistency dan Availability (CA):
    • Bekerja baik jika tidak ada partisi jaringan.
    • Contoh: Database relasional tradisional (jika di-deploy tanpa replikasi).
  • Consistency dan Partition Tolerance (CP):
    • Menjamin konsistensi bahkan selama partisi jaringan tetapi mungkin mengorbankan availability (misalnya dengan menolak request selama partisi).
    • Contoh: Database terdistribusi seperti MongoDB (dalam beberapa konfigurasi).
  • Availability dan Partition Tolerance (AP):
    • Menjamin ketersediaan bahkan selama partisi jaringan tetapi mungkin mengorbankan konsistensi (misalnya dengan mengizinkan node mengembalikan data usang atau berbeda).
    • Contoh: Sistem seperti DynamoDB, Cassandra.

Implikasi Praktis

  • Perancang sistem terdistribusi harus memilih dua properti mana yang diprioritaskan berdasarkan kebutuhan aplikasi.
  • Sistem dunia nyata sering membuat tradeoff untuk menyediakan versi yang "cukup baik" dari ketiganya, tetapi jaminan ketat tetap tunduk pada batasan CAP.

Contoh

  • Pertimbangkan sistem perbankan:
    • Jika konsistensi diprioritaskan (misalnya saldo akun yang akurat), availability mungkin dikorbankan selama partisi jaringan.
    • Jika availability diprioritaskan (misalnya memastikan ATM selalu beroperasi), konsistensi mungkin dilonggarkan selama partisi.

Edit on GitHub

Last updated on

Teorema CAP | Faisal Affan