Back to IF3130 Sistem Paralel dan Terdistribusi

Correctness (Kebenaran) dan Masalah Konsensus

Questions/Cues

  • Apa itu ‘Correctness’?

  • Dua jenis properties?

  • (1) Safety Properties?

  • (2) Liveness Properties?

  • Contoh Safety?

  • Contoh Liveness?

  • Apa itu Consensus Problem?

  • 4 Properti Konsensus?

  • (1) Agreement?

  • (2) Integrity?

  • (3) Termination?

  • (4) Validity?

  • Apa itu ‘FLP Impossibility’?

  • Siapa penemu FLP?

  • Apa asumsi model FLP?

  • Apa implikasi FLP?

Reference Points

  • Slides 15-19

Correctness in Distributed Systems

Correctness (kebenaran) sebuah sistem dinyatakan sebagai properties (pernyataan) yang mendeskripsikan perilaku sistem. Ada dua jenis utama:

  1. Safety Properties

  • Menyatakan bahwa “sesuatu yang buruk tidak akan pernah terjadi”.

  • Jika sebuah safety property dilanggar satu kali saja (pada waktu t), ia akan dilanggar selamanya (tidak bisa diperbaiki).

  • Contoh: “Hanya satu proses yang boleh berada di critical section pada satu waktu” (Mutual Exclusion).

  • Cara termudah untuk menjamin safety adalah dengan “tidak melakukan apa-apa” (do nothing).

  1. Liveness Properties

  • Menyatakan bahwa “sesuatu yang baik pada akhirnya akan terjadi”.
  • Meskipun sistem sedang dalam masalah (pada waktu t), selalu ada harapan bahwa properti ini akan terpenuhi di masa depan.
  • Contoh: “Setiap permintaan pada akhirnya akan menerima respons”.

Tantangan utama dalam sistem terdistribusi adalah menjamin keduanya (Safety dan Liveness) secara bersamaan.

Problem: Consensus (Konsensus)

Konsensus adalah masalah fundamental di mana sekumpulan proses (node) harus setuju (sepakat) pada satu nilai (keputusan) yang sama.

  • Properti Konsensus yang Benar:

    1. Agreement (Persetujuan): (Safety) Semua proses yang correct (tidak crash) harus setuju pada nilai yang sama.

    2. Integrity (Integritas): (Safety) Nilai yang disepakati harus merupakan nilai yang sebelumnya pernah diusulkan oleh salah satu proses. Sistem tidak boleh mengarang nilainya sendiri.

    3. Termination (Terminasi): (Liveness) Semua proses yang correct pada akhirnya harus mencapai keputusan. (Sistem tidak boleh hang selamanya).

    4. Validity (Validitas):- Jika semua proses correct mengusulkan nilai V yang sama, maka nilai V-lah yang harus disepakati.

Hasil Teoretis: FLP Impossibility

Ini adalah salah satu hasil teoretis paling penting dalam ilmu komputer.

  • Penemu:- Fischer, Lynch, dan Paterson (1985).

  • Teorema:- Menyatakan bahwa tidak ada algoritma deterministik- yang dapat menjamin konsensus dalam waktu terbatas (menjamin Termination) pada sistem asynchronous, bahkan jika hanya ada satu proses- yang gagal (model crash failure).

  • Model Asumsi FLP:

    1. Sistem Asynchronous (tidak ada batas waktu).

    2. Network Reliable (pesan pasti sampai, tapi bisa tertunda).

    3. Minimal satu node bisa crash.

  • Implikasi:- Ini adalah “pukulan” besar. Artinya, di dunia nyata (yang asynchronous), kita harus mengorbankan sesuatu. Algoritma konsensus praktis (seperti Paxos/Raft) harus “mengakali” teorema ini, biasanya dengan mengorbankan liveness (termination) dalam skenario terburuk, atau dengan menggunakan model yang lebih kuat (seperti partial synchrony).

Summary

Kebenaran (Correctness) sistem terdistribusi didefinisikan oleh- Safety (hal buruk tidak pernah terjadi) dan- Liveness (hal baik akhirnya terjadi). Masalah- Konsensus—di mana semua node harus setuju pada satu nilai—adalah inti dari banyak sistem. Namun, Teorema- FLP Impossibility membuktikan bahwa konsensus yang- dijamin berhenti (Termination/Liveness) adalah- mustahil dicapai dalam sistem- asynchronous jika ada risiko satu node- crash.