ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: [apache-talk] a?OIIAOE?AOEIA UAOEAII www OAO?AOA



Hello Alex,

Wednesday, October 30, 2002, 11:34:20 PM, you wrote:

>> Если (М) становится недоступным пользователю (U), то он(U) попадает на
>> А. Если не доступен А, то попадает на Б.

> Редиректор не знает доступен ли М, А и Б пользователю. Максимум что
> он знает - доступен ли М, А, Б редиректору. Что не одно и то же -
> связность в интернете не транзитивна.
Без применения trusted кода исполняемого на стороне пользователя,
это не реально. Но не это является целью.
Всётаки схему я строил исходя из того, что Мастер (затем А и Б по
очереди) становятся недоступными по сети.
Повторю 100% отказоустойчивость достичь в интернете невозможно.
В рассматриваемой ситуации была поставлена задача избежать продажи
последнего билета 2-м покупателям.

Поэтому в данной ситуации, если Мастер не доступен зеркалу и
редиректорам, вполне справедливо будет считать его died.

И передать статус active на сервер А.

> Далее. Если редиректоров несколько, то для одного из них доступным
> может остаться М, для другого - А. Которых каждый из редиректоров
> и будет считать главным - как единственно доступного.
Не обязательно. Редиректоры получают "я жив" от Мастера и зеркал,
кстати точно так-же они могут обмениваться информацией о том, кто
получает какой сигнал от других.

Пока хотябы один получает от мастера сигнал "я жив", Мастер
остаётся со статусом active.

Да, в этой ситуации логично наделить этот редиректор функцией прокси,
но лишь до того момента, пока остальные редиректоры не начнут видеть Мастера.

..skip..

>> При этом каждый ((М) А, Б) обмениваются сообщениями вида "я жив!"
>> Если Мастер не получает сообщения от А и Б, то блокирует операцию и
>> выдаёт редирект на редиректор, который отправляет (U) на то из зеркал,
> При этом на самом деле отвалились именно А и Б, а мастер - жив 
> ( но сообщений от А и Б не получил - связности нет)
> Но он выдаст редирект на редиректор, который отправит на одно из
> зеркал - которые на самом деле отвалились от пользователя. Или
> не отвалились :)
Почему бы редиректору не _вспомнить_, какую информацию об этом
"дисконнекте" имеют остальные? Если остальные видят, что А и Б
недоступны, а Мастер жив, то считать его active.

>> которое живо в порядке очереди. На тот момент, когда Мастер не выдаёт
>> "Я жив", A становится Мастером.
> То-есть мы считаем A главным. Что делать, если именно он отвалился
> от сети - в этом случае ни он не получит сообщения от Мастера, ни
> Мастер от него.
Если он отвалился от сети, и не видит никого, то считает себя died, и
всех, кто приходит отправляет на редиректор.
Редиректор видит, что Мастер, и А мертвы, а Б жив, то устанавливает
статус active для Б.

> Я все-таки предлагаю забыть о редиректорах и рассмотреть совсем
> простую ситуацию - есть M и А с синхронизированной базой в которой
> происходят операции UPDATE. Связь между ними нарушилась, но 
> запросы от пользователей продолжают поступать (т.е. интернет
> частично жив). Кто из двух будет продолжать обслуживание, а кто не будет ?
> Если будут оба, то последний билет будет продан два раза.
В ситуации необходим сторонний арбитр, = редиректор, который при
наличии ответов и от Мастера, и от А, установит на Мастере статус
Active, если Мастера будеТ видеть только один редиректор из скажем 10,
то он на критический период берёт на себя функцию proxy.

> Если будет только один, то на второй нужно поставить proxy 
> и забыть об этом :). Ситуация на самом деле симметричная, поэтому
> главный в такой ситуации должен быть назначен заранее.



Best regards,
 Oleg                            mailto:ilin@rinet.ru

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.