71.4. ÐвÑÑ ÑазнÑе ÑÑанзакÑии #
Postgres Pro поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿ÑоÑокол двÑÑ
Ñазной ÑикÑаÑии (2PC), позволÑÑÑий неÑколÑким ÑаÑпÑеделÑннÑм ÑиÑÑемам ÑабоÑаÑÑ Ð² ÑÑанзакÑионной манеÑе. Ð ÑамкаÑ
ÑÑого пÑоÑокола иÑполÑзÑÑÑÑÑ ÑледÑÑÑие командÑ: PREPARE TRANSACTION, COMMIT PREPARED и ROLLBACK PREPARED. ÐвÑÑ
ÑазнÑе ÑÑанзакÑии пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑними ÑиÑÑемами ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанзакÑиÑми. Postgres Pro пÑидеÑживаеÑÑÑ Ð¾ÑобенноÑÑей и модели, пÑедложеннÑÑ
в ÑамкаÑ
ÑÑандаÑÑа X/Open XA, однако не пÑименÑÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑе Ñедко иÑполÑзÑемÑе аÑпекÑÑ.
Ðогда полÑзоваÑÐµÐ»Ñ Ð²ÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ PREPARE TRANSACTION Ð´Ð»Ñ Ð¿Ð¾Ð´Ð³Ð¾Ñовки ÑÑанзакÑии, ÑледÑÑÑим Ñагом он Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполниÑÑ ÑолÑко ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ COMMIT PREPARED или ROLLBACK PREPARED. Ðак пÑавило, ÑÑанзакÑии могÑÑ Ð½Ð°Ñ
одиÑÑÑÑ Ð² Ñаком подгоÑовленном ÑоÑÑоÑнии оÑÐµÐ½Ñ Ð½ÐµÐ¿ÑодолжиÑелÑное вÑемÑ, однако Ð²Ð²Ð¸Ð´Ñ Ð¿Ñоблем внеÑней доÑÑÑпноÑÑи они могÑÑ ÑоÑ
ÑанÑÑÑ Ñакое ÑоÑÑоÑние неÑколÑко долÑÑе. ÐодгоÑовленнÑе ÑÑанзакÑии Ñ ÐºÐ¾ÑоÑким вÑеменем жизни Ñ
ÑанÑÑÑÑ ÑолÑко в обÑей памÑÑи и жÑÑнале WAL. ТÑанзакÑии, коÑоÑÑе пÑоÑ
одÑÑ ÐºÐ¾Ð½ÑÑолÑнÑе ÑоÑки, запиÑÑваÑÑÑÑ Ð² каÑалог pg_twophase. ÐодгоÑовленнÑе ÑÑанзакÑии можно пÑоÑмоÑÑеÑÑ Ð² пÑедÑÑавлении pg_prepared_xacts.