Двухэтапная фиксация - поиск реализации - PullRequest
3 голосов
/ 11 марта 2012

Я ищу реализацию протокола 2-фазной фиксации, и да, я новичок в распределенных транзакциях :) 2-фазная фиксация должна быть реализована между приложением php и удаленным «приложением» (системой).

Должен ли я реализовать двухфазный коммит с нуля? Вам известны какие-либо модули, реализованные на любом языке, которые могут дать мне преимущество?

- не мог найти много по этому поводу до сих пор:)

ценю любую помощь.

Ответы [ 3 ]

4 голосов
/ 11 марта 2012

Может быть, вы могли бы взглянуть на Atomikos , который является реализацией с открытым исходным кодом для распределенных транзакций в Java. Кроме того, вы можете прочитать о JTA, чтобы получить больше информации о распределенных транзакциях.

В принципе 2-фазный коммит (2PC) не очень сложен для понимания в теории:

  • все участвующие системы спрашивают, могут ли они выполнить коммит сейчас
  • все эти системы должны отвечать да / нет, тогда как да означает, что с этого момента коммит должен пройти
  • когда все системы дали свое согласие, они выполнят коммит, и все
  • в случае несогласия одной системы все системы должны выполнить откат
  • координирующая система должна ожидать, что она достигнет одобрения в течение определенного периода времени, в противном случае она должна рассматривать это как несогласие совершить
1 голос
/ 14 апреля 2018

Проверьте Enduro / X промежуточное программное обеспечение . Он также имеет двухфазную фиксацию. Используя базовую инфраструктуру XA, они обеспечивают XATMI, tpopen (), tpbegin (), tpcommit (), tpend (). Некоторая концептуальная схема находится на сайте enduro.org . Источники менеджера транзакций здесь . Обратите внимание, что он использует инфраструктуру XATMI для координации с другим менеджером транзакций - они представлены в виде сервисов. См. XA конечный автомат принятия решения .

См. Клиент Enduro / X PHP , возможно, вы можете использовать что-то из этого. Возможно, поддержку службы XATMI можно также кодировать для PHP.

1 голос
/ 21 мая 2012

Посмотрите на LIXA Transaction Manager (http://lixa.sourceforge.net/). Он интегрирует PHP и MySQL, начиная с версии 0.9.0

. Он также обеспечивает распределенную обработку транзакций и возможность двухфазной фиксации.

С уважением

Гл. Ф.

...