2013-07-21 2 views
0

Я работаю над распределенной системой, использующей распределенные транзакции, что означает, что у меня может быть транзакция, которая должна одновременно редактировать несколько баз данных (на нескольких серверах).Распределенная транзакция по mysql

В моей системе есть контроллер для управления распределением.

сценарий, который я хочу удовлетворить: сервер A хочет инициировать распределенную транзакцию. участники - сервер A и сервер B., поэтому сервер A отправляет запрос контроллеру для инициирования распределенной транзакции. контроллер открывает соединение с сервером A и сервером B и запрашивает у них локальные транзакции. оба сервера A и сервер B должны ответить серверу, что они готовы. контроллер затем отправляет фиксацию как на сервер A, так и на сервер B.

У вас есть какие-либо советы для меня, чтобы иметь возможность построить эту распределенную транзакцию?

ответ

0

Я думаю, что вы можете Google двухфазной фиксации, это очень известный и полезный протокол для распределенных транзакций, и это вики из википедии Two-phase commit

0

Two phase commit является то, что вы хотите, как и упоминает BitHigher. Он также известен как XA transactions. Для конкретных операций MySQL читайте this.

Обратите внимание, что XA будет иметь свои собственные осложнения, особенно в случае сбоев. Перед тем, как использовать XA, убедитесь, что вы все разбираете в углах.

Смежные вопросы