Возможны ли транзакции за пределами компьютера (через tcp-ip)? - PullRequest
1 голос
/ 01 декабря 2009

Теоретически, можно ли определить протокол, в котором одна машина выполняет несколько удаленных вызовов на другой машине (или более чем на одной) и где в любой части процесса происходит сбой какой-либо из машин (или операций) или происходит обмен данными падает, все откатывается? (как базы данных могут)

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

Но так как сейчас мы говорим о нескольких машинах, это не летает.

В качестве примера, как это было бы сложно: скажем, у меня есть протокол для выдачи команды на удаленной машине и получения ответа обратно. Может случиться так, что метод вызывается, но во время передачи ответа соединение разрывается. Тогда вполне может быть, что машина, которая выполнила операцию, думает, что все в порядке, но принимающая машина так и не получила ответа.

Добавление Ack's не помогает, так как также Ack может быть потеряно при транспортировке.

Заинтересованный, чтобы прочитать мысли других (и узнать, что какой-то профессор 27 лет назад, вероятно, уже придумал твердое твердое решение).

R

Ответы [ 2 ]

3 голосов
/ 01 декабря 2009

Да, эта проблема уже была (более или менее) решена:)

Что вам нужно, так это Протокол двухфазной фиксации .

В обработке транзакций, баз данных, и компьютерные сети, двухфазный протокол фиксации (2PC) является типом протокол атомных обязательств. Это распределенный алгоритм, который координирует все процессы, которые участвуют в распределенная атомная транзакция на ли совершить или отменить (откат) перевод. Протокол достигает его цель даже во многих случаях системы сбой (с участием любого процесса, сетевой узел, связь и т. д. неудачи), и, таким образом, широко используется.

1 голос
/ 01 декабря 2009

Похоже на стандартные проблемы распространения.

Читать Распределенные вычисления: принципы, алгоритмы и системы и снова задать вопрос;)

...