Ang Two Generals Problem
Ang Two Generals Problem

Ang Two Generals Problem

May 2 thought experiments na kilala sa pag-aaral ng distributed systems. Ipinapakita ng mga ito ang problema sa koneksyon at pagtitiwala sa loob ng network. Pag-usapan muna natin ang isa: Two Generals Problem. Ito ay isang paradox – hindi talaga ito nasosolusyunan.

Ipagpalagay na may 2 hukbo na bawat isa’y pinangungunahan ng 2 heneral. Ang bawat hukbo ay nakaposisyon nang magkalayo, at sa pagitan nila ay ang syudad na balak atakihin. Dahil malakas ang depensa ng syudad, kailangan sabay umatake ang hukbo para magwagi. Ang isang hukbo ay matatalo kung ito lamang ang sumugod. Kaya, ang 2 heneral ay dapat magtugma sa oras ng pag-atake. Ang bawat heneral ay dapat ring malaman na nagkasundo nga sila sa oras.

Two Generals Problem

Ang paraan lamang para sila ay mag-usap ay sa pamamagitan ng mensahero. Subalit kailangan dumaan ng mensahero sa teritoryo ng kalaban, kaya may tsansa itong mahuli. Ang mensaheng ipapadala ng isang heneral ay maaring hindi matanggap ng kabila. At kapag hindi makatanggap ng mensahe ang isa, imposibleng malaman kung dahil ba ito sa pagkakahuli ng mensahero, o hindi talaga nagpadala yung kabila?

Mapapatunayan na kahit gaano karaming kompirmasyong mensahe ang ipadala, walang katiyakan ang bawat partido kung sabay nga silang aatake.

Sa distributed system, walang kasiguraduhan ang isang node ukol sa estado ng ibang node hanggat hindi nag-uusap. Subalit, may laging tsansa na hindi maaasahan ang dinadaanan ng mensahe. Kaya, ang gagawing sistema ay dapat nakadisenyo kung saan tinatanggap ang hindi kasiguraduhan; papaliitin lang ang tsansa na mangyari ang hindi nais.

Halimbawa sa TCP

Isang halimbawa ng sistemang humaharap sa 2 generals problem ay ang komunikasyon ng mga kompyuter na dadaan sa TCP layer. Sa TCP, kailangan makapagpalitan SYN, SYN-ACK, ACK na mensahe ang 2 nodes para sa kompirmasyon na maaaring makapagbigay ng mensahe. Ibang istorya pa ang pagpasa ng tama o kumpletong impormasyon.

Three-way handshake sa TCP

Dahil nga sa pagpapalagay na hindi 100% na maaasahan ang network, may mitigasyon sa TCP layer. Isa dito ay ang paglalagay ng numero ng pagkakasunud-sunod ng parte ng mensahe, para malaman kung may kulang ba. Gamit ang duplicate acknowledgment, mapapatupad ang fast retransmit sa TCP. Kapag may kulang, o hindi magkasunod ang dating ng data packet, ang acknowledgment na ipapadala ay tumutukoy sa huling numero na nasa tamang pagkakasunud-sunod. Kaya, madodoble ang matatanggap na ACK ng sender. Kaya sya ay magpapadala ng dapat na kasunod na packet.

Mayroon ding retransmission timeout (RTO), kung saan hindi agad magpapadala ang sender ng impormasyon kapag sunud-sunod na kulang nang acknowledgment. Pagkatapos ng takdang timeout, ito ay susubok uli magpadala. Pero kapag kada timeout eh hindi talaga nakukumpirma, kokonsiderahin nang naputol ang koneksyon.

Halimbawa sa online shopping

Sa online shopping naman, mayroong 2 partido na dapat magtugma. Ang una ay ang online shop, at ikalawa ang payments service. Ang komunikasyon sa pagitan ng 2 ay gumagamit ng protocol ng remote procedure call (RPC). Dito, ang proseso ng pagbabayad ay hinihiling ng online shop, at ipoproseso naman ng payments service. Pag proseso ng payments service, ipapasa nito ang resulta sa online shop. Tulad ng naunang halimbawa, maaaring mawala ang data na pinapadala sa pagitan ng 2 partido.

Ang online shop ay magpapadala lamang ng order kapag nabayaran na ito ng mamimili. Panigurado lang para hindi ito malugi. Kapag nag charge sa credit card at hindi napadala, makakatanggap ng reklamo. Subalit sa sistema ng credit card at kahit nga debit card, nababaligtad ang bayad.

Sa halimbawang ito, maigi na mag charge lang ang online payment dahil maaari namang mag refund sa customer kung sakaling hindi nagpadala ng produkto ang online shop. Makakatanggap nga ng reklamo, pero titigil naman ito basta nabalik ang pera.

Tandaan na walang katiyakan lagi ang pagkakatanggap ng mensahe. Subalit sa halimbawa ng TCP, may tsansa na sumubok uli. Sa halimbawa naman ng online shopping, may refund. Kaya hindi talaga nasosolusyunan ang Two Generals’ Problem na kung saan pag hindi nagkasabay o sync ang 2 hukbo, talo na agad.

Sa ganitong pananaw, maiintindihan din natin ang paggamit ng client-server network, kung saan kayang madesisyunan ng may awtoridad ang mga hindi pagtutugma.

Pero may isyu nga tayo sa mga awtoridad eh.


Kitakits sa ika-10

Salamat sa rawpixel.com para sa mga imaheng pinagsama at ginamit bilang pambungad ng post na ito.

Mag-iwan ng Tugon

Ang iyong email address ay hindi ipa-publish. Ang mga kinakailangang mga field ay markado ng *