Middle — Middle+
Кадом усул ёки намуна барои иҷрои транзаксияҳои тақсимшуда истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Барои амалӣ намудани транзаксияҳои тақсимшуда, одатан модел Two-Phase Commit (2PC) — тасдиқи ду марҳила — истифода мешавад.
Маънии модел:
- Фазаи омодагӣ (Prepare phase): ҳамоҳангсозии транзаксия ба ҳамаи иштирокчиён дархост мефиристад, ки барои тасдиқ омода шаванд. Иштирокчиён имконияти иҷрои транзаксияро санҷида, ҷавоб медиҳанд "омода" ё "инкор".
- Фазаи тасдиқ (Commit phase): агар ҳама иштирокчиён омода бошанд, ҳамоҳангсозӣ фармони тасдиқро мефиристад, дар ғайри ҳол — барои бозгашт.
Ин усул кафолат медиҳад, ки маълумот дар системаи тақсимшуда мутобиқ аст, аммо метавонад блокиркунанда бошад ва бо мушкилоти муқовимат ба хатоҳо рӯбарӯ шавад.
Альтернативҳо ва такмилҳо:
- Saga pattern — транзаксияро ба силсилае аз транзаксияҳои маҳаллӣ бо амалҳои компенсаторӣ тақсим мекунад.
- Трифазаи тасдиқ (3PC) — эҳтимолияти блокиро кам мекунад.
Маслиҳат барои схемаи соддашудаи 2PC:
// Ҳамоҳангсозӣ Prepare мефиристад
// Иштирокчиён ҷавоб медиҳанд
// Агар ҳама омода бошанд, Commit мефиристанд
// Дар ғайри ҳол, Rollback
Дар Go барои амалӣ кардани 2PC, метавон RPC ё китобхонаҳои махсуси барои транзаксияҳои тақсимшуда истифода бурд.