Back to IF3130 Sistem Paralel dan Terdistribusi

Model, Batasan, dan Masalah Fundamental ST

Questions/Cues

  • Apa batasan ST?

  • Apa itu SLA?

  • Apa peran Abstraksi & Model?

  • Apa itu Two Generals Problem?

  • Mengapa Two Generals tidak ada solusi?

  • Solusi Two Generals?

  • Apa itu Byzantine Generals Problem?

  • Perbedaan dengan Two Generals?

  • Solusi Byzantine Generals?

  • Apa itu Byzantine Fault Tolerance?

  • Apa saja model ST?

  • Mengapa koordinasi sulit?

Reference Points

  • Slides 13-22

Batasan Sistem Terdistribusi

Kinerja dan keandalan sistem terdistribusi selalu dibatasi oleh dua faktor utama:

  1. Jumlah Node: Semakin banyak node (komputer) independen, semakin besar kemungkinan terjadi kegagalan pada salah satunya. Selain itu, semakin banyak node, semakin banyak kebutuhan komunikasi antar node.

  2. Jarak Antar Node: Semakin jauh jarak fisik/geografis antar node, semakin lama waktu komunikasi (semakin tinggi latensinya). Ini adalah batasan fisika (kecepatan cahaya) yang tidak bisa dihindari.

SLA, Abstraksi, dan Model

  • SLA (Service Level Agreement): Sebuah jaminan layanan yang diberikan sistem. Contoh: “Jika data ditulis, seberapa cepat data itu bisa diakses di lokasi lain?” atau “Jika ada komponen fail, apa dampaknya?”

  • Abstraksi: Cara untuk membuat sistem lebih mudah ditangani dengan menghilangkan detail-detail yang tidak penting. Contoh: kita memodelkan sistem hanya sebagai “node/proses” dan “link/komunikasi”, tanpa memedulikan OS, hardware, keyboard, dll.

  • Model: Penyederhanaan sistem yang hanya berisi properti penting. Ada trade-off:

    • Abstraksi/model yang terlalu sederhana: Mudah dipahami, tapi kinerja sistem nyata bisa jadi buruk.

    • Abstraksi/model dengan jaminan lemah: Sulit dipahami, tapi bisa memberikan kinerja yang lebih baik.

Masalah Fundamental: Two Generals Problem

Ini adalah masalah klasik yang menunjukkan sulitnya mencapai kesepakatan (konsensus) dalam jaringan yang tidak andal.

  • Skenario: Dua jenderal (A dan B) mengepung kota. Mereka akan menang HANYA jika menyerang serentak. Mereka berkomunikasi via kurir. Kurir bisa ditangkap musuh (pesan tidak sampai).

  • Masalah: Bagaimana A dan B bisa 100% yakin bahwa mereka akan menyerang pada waktu yang sama?

  • Contoh Percobaan Solusi:

    1. A kirim pesan: “Serang jam 9”. (A tidak tahu apakah pesan sampai)

    2. B menerima dan membalas: “OK, serang jam 9”. (Sekarang B tidak tahu apakah balasannya sampai. A belum pasti B setuju)

    3. A membalas balasan: “OK, saya terima OK kamu”. (Sekarang A tidak tahu apakah B menerima konfirmasi ini. B masih ragu)

    4. …dan seterusnya. Ini berlanjut tanpa akhir.

  • Kesimpulan: Tidak ada solusi deterministik (yang pasti berhasil 100%) untuk masalah ini jika media komunikasi tidak andal.

  • Solusi Probabilistik: Mengirim n kurir dengan pesan yang sama. Jika probabilitas 1 kurir tertangkap adalah p, probabilitas semua kurir tertangkap adalah . Ini memperkecil kemungkinan gagal, tapi menambah biaya dan tidak pernah menjamin 100%.

Masalah Fundamental: Byzantine Generals Problem

Ini adalah masalah konsensus yang lebih rumit, di mana media komunikasi andal (kurir pasti sampai), tetapi beberapa partisipan (jenderal) mungkin berkhianat (malicious/Byzantine).

  • Skenario: n jenderal harus sepakat (misal: “serang” atau “bertahan”). Ada t jenderal yang berkhianat. Jenderal pengkhianat bisa mengirim pesan berbeda ke jenderal yang berbeda (bilang “serang” ke A, tapi bilang “bertahan” ke B). Penerima dapat mendeteksi sumber pesan (tahu siapa yang mengirim).

  • Masalah: Bagaimana para jenderal yang jujur (loyal) bisa mencapai satu keputusan yang sama, meskipun ada pengkhianat yang mencoba mengacaukan?

  • Contoh Kegagalan (Bukan Solusi): 5 jenderal (n=5). 2 loyal kirim “serang”, 2 loyal kirim “bertahan”. 1 pengkhianat kirim “serang” ke 2 jenderal pertama, dan “bertahan” ke 2 jenderal lainnya. Hasilnya: 2 jenderal melihat (Serang, Serang, Serang, Bertahan, Bertahan) Serang. 2 jenderal lain melihat (Serang, Serang, Bertahan, Bertahan, Bertahan) Bertahan. Konsensus gagal.

  • Solusi (Lamport, Shostak, Pease): Dikenal sebagai Byzantine Fault Tolerance (BFT). Sebuah sistem dengan n proses (jenderal) dapat mentoleransi t pengkhianat (proses malicious) jika dan hanya jika .

    • Artinya, untuk mentoleransi 1 pengkhianat, Anda butuh minimal 4 proses ().

    • Untuk mentoleransi 2 pengkhianat, Anda butuh minimal 7 proses ().

Model Sistem Terdistribusi

Solusi untuk sebuah masalah sangat bergantung pada model atau asumsi yang kita buat tentang sistem, seperti:

  • Komunikasi: Apakah reliable (pasti sampai) atau unreliable (bisa hilang)?

  • Proses: Apakah benign (jujur tapi bisa gagal/crash) atau malicious (berkhianat/Byzantine)?

  • Timing/Order: Apakah ada batasan waktu respon? Apakah urutan pesan dijamin?

Summary

Sistem terdistribusi dibatasi oleh jumlah node dan jarak, yang memengaruhi keandalan dan latensi. Untuk mengelolanya, kita menggunakan abstraksi dan model. Namun, mencapai konsensus sangat sulit, seperti ditunjukkan oleh Two Generals Problem (mustahil di jaringan tidak andal) dan Byzantine Generals Problem (membutuhkan proses untuk mengatasi t pengkhianat). Solusi yang kita rancang sangat bergantung pada model asumsi kita (misalnya, apakah jaringan andal atau proses bisa berkhianat).