All streams
Search
Write a publication
Pull to refresh
73
0

User

Send message
Дмитрий, спасибо большое за подробное разъяснение. К сожалению, статью увидел только сегодня, поэтому и коммент пишу только сейчас.

В целом, я с Вами абсолютно согласен, действительно, теорема построена и доказана для модели. Я в своем топике, в комментариях, к сожалению ушел от темы теоремы и стал рассуждать о возможности построения CA системы в «реальном мире». Хотя, впрочем, теоретическая часть теоремы мне не очень интересна, мне важно ее применение на практике.

Но все же напишу пару слов о некоторых ваших высказываниях, которые меня немного покоробили:

1. Чисто формально в теореме Avalability — это способность давать ответ не упавших компонент. Т.е. пример о невозможности построения системы со 100% avalability в терминах теоремы не совсем корректен. Мне все таки кажется создать систему полностью согласованной или полностью доступной в терминах теоремы все же можно, в отличие от системы без 100% потерь связи. Но Вы совершенно правы, в теореме мы имеем дело с моделью, поэтому об этом говорить можно.

2. Ваш пример CA системы, где придется что-то чинить руками в случае маловероятного сплита, мне кажется не совсем хорошим, так как во время починки, ваша система уже не будет A, соответственно, и не будет CA.

3. Вы привели очень хороший пример с домом. И я как практик с вами очень даже соглашусь. Но как теоретик, я призадумаюсь. Ведь, если уж мы говорим о теореме с моделью, то как-то называть систему сначала CA, а потом, когда что-то произошло называть CP или AP, не кажется мне очень логичным. Все таки в теореме мы говорим о постоянном свойстве системы, с обозначенными свойствами модели.

Еще раз повторю, что с мыслью проходящей сквозь весь Ваш топик я абсолютно согласен. Теорема — эта модель и, что ее нельзя получить в реальном мире, ее это мало волнует. Однако переходя все же из теоремы в реальный мир, я вижу очень полезное утверждение, которое напрямую следует из этой теоремы. Так как в реальном мире устойчивость к сплиту достичь на 100% невозможно (но вы совершенно верно, невозможно пока), то и построить систему на 100% удовлетворяющую CA невозможно. Ну или можно еще сформулировать как это Вы сделали, т.е. можно, но до первой потери сообщения.

Нда, немного противоречивый комментарий получился. Ну уж какой есть :)
Спасибо за ссылки. Ознакомился с понятием fencing, но как на основе его сделать CA систему там, к сожалению не написано. Посмотрите, я апдейт в конце топика написал. Вобщем попытки построить CA систему, в который возможны потери между компонентами системы, значит опровергнуть CAP-теорему, думаю не стоит больше этим заниматься.
Наверное, надо закрывать топик. Написал вконец поста апдейт.
Я больше чем уверен, что любой дизайн в общем виде можно очень просто объяснить на пальцах. Но раз вы просто кидаете ссылки, то я что-нибудь одно постараюсь сегодня посмотреть и завтра отпишусь.
Я весь внимания как Вы это будете делать.
эээ… Ну в этом случае изменения применяться на {A,B} и будут не консистенты с нодой С.
Ну я специально сузил область рассуждений до распределенных хранилищ данных, возможно в этом дело.
Ну с этим вроде никто не спорит уже. Скорее четко объяснили, зачем P введена в CAP-теореме.
Сорри, неправильно прочитал ваш предыдущий коммент.

Ну что-то вроде этого. Надеялся, что кто-то меня переубедит, но как-то не переубедили пока:)
Ну есть и PA. В комментариях даже было несколько примеров. А вот CA ни одной не было.
Раз сессия клиента обрывается, то записи он не может осуществлять, значит 100% доступности нет.

«Неработающий мастер=неработающая система. Это к CAP-теореме не относится.» Ну как не относиться. Здесь получается single point of failure, от которого распределенные системы позволяют опять же избавиться. Разве это не получается, что 100% доступности опять нет?

При такой логике мы сваливаемся к централизованной системе в итоге, а не распределенной. А топик именно об распределенных системах.
Расскажите как в описанной системе происходит запись. Давайте для упрощения пусть у нас будет один мастер и одна read-only нода. Как данные, записанные на мастер, попадают в read-only копию, и что произойдет в момент когда связь между мастером и read-only копией потеряется, а между клиентом и read-only останется?
Так же что значит мастер отказоустойчивый внутри? Т.е. они никогда не падает? Такого не бывает.
Я тут так понимаю тут зависит от того, что в этом случае показывает Twitter. Если он показывает, ой извините у нас поломка, я вам не могу показать данные, которые на самом деле у меня есть, то это отказ в обслуживании, т.е. потеря avalability.
Если же он просто тупо их отрезает, делая вид, что их никогда не было, это наверное уже можно посмотреть как потерю consistency.

Кто как думает?
Я тоже, об этом и хотел написать :)
Я абсолютно согласен, что построить нераспределнную систему CA, в терминах обсуждаемой теоремы можно. Я просто говорю, что она формулировалась именно для распределенных систем, что и хотел обсудить в этом топике.
Zorkus, извините, не совсем понимаю к чему Вы апеллируете. Вы приводите два дизайна систем: CP и AP, где жертвуется доступностью или согласованностью, соответственно. Я себе очень хорошо, как можно построить такие системы. Я не могу себе представить CA систему, где есть и доступность и согласованность на 100%.
Мне нечего Вам возразить, я, действительно, плаваю во всех этих формулировках.
Вы сейчас о чем? Раз вы пишете в этой ветке обсуждений, то Вы все еще говорите о том применима ли CAP теорема для не распределенных систем. Так в той же википедии и написано: «эвристическое утверждение о том, что в любой реализации распределённых (sic!) вычислений возможно обеспечить не более двух из трёх следующих свойств»

Если же Вы это приводите в качестве контраргумента, что распределенные системы существуют, то приведите общее описание такой системы, которая может этого достичь. Цитируемая строчка из википедии, мне не дает понять как такую систему построить.
Вот тут как раз и недопонимание формулировки («Partition Tolerance не выполнено»). Я не говорю, что Вы его недопонимаете. Я думаю, что я его недопонимаю. Но на сколько я понял, в вашем примере как раз Partition Tolerance присутствует, т.е. система работает при разрыве межконтинентальной связи. Так как Partition Tolerance присутствует, то возможно обеспечить только что-нибудь одно. В вашем примере — это согласованность. Отличный пример, подтверждающий мой топик :) Разве нет?
Нет, я как раз настаиваю на том, что в распределенной системе в реальном мире нельзя выбрать CA, только либо CP, либо AP.

Information

Rating
Does not participate
Registered
Activity