sbog
лол
Etki
и что при смещении часов больше чем на N миллисекунд все летит в жопу
Etki
не, эт не аргумент
Etki
я про то, что если б дело было только в последовательности взятия локов, время бы здесь никаким образом не фигурировало
Vladimir
@not_logan
"One of the headline features of CockroachDB is its full support for ACID transactions"
G72K
Статью не читал, но тут уж похоже классическое определение он здох или тупит по таймауту . На практике часы синхронизировать до единиц мс вполне реалистично
Vladimir
@not_logan то есть может быть ты таки что-то не понимаешь?
Vladimir
Aphyr занимается обычно тем что проверяет что все что в документации соответствует реальному положению дел
Vladimir
и тараканчик как раз был помоему первой базой которая прошла его тесты
Vladimir
ну или одной из первых
Vladimir
но это говорит лишь о том что в документации нет вранья
Etki
По факту он каждый раз проверяет линеаризуемость одного регистра )
Vladimir
Vladimir
Logan
это странно. Я не добавляю людей в блеклист просто так. Уберу.
Vladimir
они о себе пишут много, можешь две статьи прочитать
Vladimir
они утверждают что как раз ACID по распределенным транзакциям
Vladimir
и описано как они доибваются каждой из буковок
Sergei
ну вообще кокроуч, если я его правильно понимаю, вполне себе CP.
A в нём очень частичное.
Vladimir
в двух статьях
Logan
а что ты хотел мне сказать? Говори.
G72K
Когда надо брать cockroach по сравнению с PostgreSQL + stolon скажем?
Etki
у всех решений с постгресом, которые я смотрел, была возможность закоммитить транзакцию и потом ее потерять
Etki
кокроач так и не трогал, но у него этой штуки быть не должно, либо кластер сдох, либо транзакция видна
Etki
(либо время рассыпалось (((( )
Logan
Logan
но стоит блин....
Etki
Etki
можно наоборот нахватать того, что на самом деле не закоммитилось
Etki
окей, проблема одностороннего генерала (
Sergei
??
Etki
хотя, не про доверие - это византийская проблема. проблема двух генералов именно в гарантированном подтверждении
Sergei
проблема генералов в том, что среди участников могут быть злоумышленники.
Sergei
распределенный консенсус в доверительной среде - гораздо проще.
Etki
Sergei
да
Sergei
а ты о какой? о_О
Sergei
есть еще одна проблема про генералов?
Logan
она называется проблемой византийских генералов. А не двух. Я чуть мозг не вскипятил себе, пытаясь понять, что вы имеете ввиду
Sergei
https://en.wikipedia.org/wiki/Byzantine_fault_tolerance
Sergei
я об этой
Etki
а я о проблеме двух генералов, которые не могут договориться о том, во сколько атаковать, потому что нет "финального подтверждения"
Etki
https://en.wikipedia.org/wiki/Two_Generals%27_Problem
Logan
annnnddddd.... https://en.wikipedia.org/wiki/Byzantine_generals
Logan
и на русском - https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B2%D0%B8%D0%B7%D0%B0%D0%BD%D1%82%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2
Sergei
Sergei
Logan
да, действительно, спасибо
Logan
век живи - век учись
G72K
если это про sync replica - то оно и в 9-ке есть
Я в этом вопросе ОБС ретранслирую, так что может суровая реальность и не такая радужная, но в 9 оно менее полезно на практике т.к. там список подтверждений был жестко задан. В 10 появилась ANY когда говоришь, что мне любые N из M пусть подтвердят , что развязывает руки - можно любой слейв приземлить и мастер не застопорится
Terry
что лучше юзать weave или flannel ?
Etki
Короче, я к тому, что если у вас на слейв отправляется команда "закомить вот это", но сам мастер считает за коммит 1..N успешных ответов от слейва, то вполне реальна ситуация, когда слейв закоммитил, а мастер закрашился (и, кстати, почему двухфазные, трехфазные, семидесятифазные коммиты из классического SQL на самом деле не масштабируются). Для того, чтобы эта левая транзакция потом не была видна, нужен какой-то дополнительный слой контроля и, видимо, опрос всего кластера, чтобы вся эта байда хоть как-то приводилась к единой истории.
G72K
Короче, я к тому, что если у вас на слейв отправляется команда "закомить вот это", но сам мастер считает за коммит 1..N успешных ответов от слейва, то вполне реальна ситуация, когда слейв закоммитил, а мастер закрашился (и, кстати, почему двухфазные, трехфазные, семидесятифазные коммиты из классического SQL на самом деле не масштабируются). Для того, чтобы эта левая транзакция потом не была видна, нужен какой-то дополнительный слой контроля и, видимо, опрос всего кластера, чтобы вся эта байда хоть как-то приводилась к единой истории.
Так надо мастером здорового назначит
Etki
А кто в оставшемся кластере здоровый?
G72K
Кто не крашнулся и у кого счетчик транзакций больше
Etki
И мы таким образом влегкую теряем часть транзакций
Etki
Если откосило всех идущих впереди, то мы теряем ту историю, которые они успели записать
Sergei
Etki
Тут надо баловаться с кворумом, что в постгре пока никак, но это тоже не спасет
Sergei
если нод достаточное число для кворума - значит хотя бы одна из них имеет максимально возможный счетчик
G72K
Etki
Потому что слейв с фантомной транзакцией может тоже выбыть, следующий мастер может съесть одну транзакцию, затем тоже выбыть, а слейв с фантомной транзакцией - вернуться
Etki
И вот вам расхождение историй
Etki
Нету там синхронности. Только очередность, где он сначала применяется. Синхронностью это выглядит исключительно для клиента.
G72K
Etki
мы говорим про моргание сетки в пределах минут, если не секунд
G72K
Terry
еще раз переспрошу, перебив такую оживленную беседу ;)
Terry
что лучше юзать weave или flannel ?
Sergei
Etki
network partition - это когда ты соседа не видишь, а почему - это не принципиально