@kubernetes_ru

Страница 399 из 958
Let Eat
24.01.2018
15:23:18
cockroach не является SQL - от SQL там только оболочка. Идея CAP-теоремы противоречит ставит SQL в принципиальный конфликт распределенности.
У них там база на блоки побита и мини лидер на каждый блок. В итоге чуток обманули реальность

Paul
24.01.2018
15:23:41
но это противоречит концепции SQL-баз данных

Google
sbog
24.01.2018
15:24:47
лол

Let Eat
24.01.2018
15:25:16
да, и тем самым база не совсем ACID
Я не юрист, но вроде ацид. Сначала все локи берут потом все комитят

Paul
24.01.2018
15:26:01
Я не юрист, но вроде ацид. Сначала все локи берут потом все комитят
буква C не соблюдается – по логике доступность данных должна быть гарантированно 100%-й а этого не происходит (что в общем-то разумно, ибо реально С мало кому нужен)

Fike
24.01.2018
15:26:59
Я не юрист, но вроде ацид. Сначала все локи берут потом все комитят
афир (ну а кто же еще) писал, что там очень некислая привязка ко времени, как в спаннере

и что при смещении часов больше чем на N миллисекунд все летит в жопу

Let Eat
24.01.2018
15:28:13
и что при смещении часов больше чем на N миллисекунд все летит в жопу
При смещении оси вращения диска тоже все летит в жопу. Жить то надо как-то :)

Fike
24.01.2018
15:28:29
не, эт не аргумент

я про то, что если б дело было только в последовательности взятия локов, время бы здесь никаким образом не фигурировало

Vladimir
24.01.2018
15:30:09
@not_logan "One of the headline features of CockroachDB is its full support for ACID transactions"

Let Eat
24.01.2018
15:30:14
Статью не читал, но тут уж похоже классическое определение он здох или тупит по таймауту . На практике часы синхронизировать до единиц мс вполне реалистично

Vladimir
24.01.2018
15:30:33
@not_logan то есть может быть ты таки что-то не понимаешь?

Anton
24.01.2018
15:31:43
@not_logan, я тут случайно обнаружил, что ты добавил меня в свой блэклист. Скажешь хотя бы, почему? Я вроде тебе в личку не писал никогда.

Fike
24.01.2018
15:31:45
Статью не читал, но тут уж похоже классическое определение он здох или тупит по таймауту . На практике часы синхронизировать до единиц мс вполне реалистично
Само по себе время, включая таймауты и прочее веселье, не мешает системе находиться в консистентном состоянии и поддерживать как минимум линеаризуемость. Афир как раз доказательством обратного всегда и занимается.

Google
Vladimir
24.01.2018
15:33:36
Aphyr занимается обычно тем что проверяет что все что в документации соответствует реальному положению дел

и тараканчик как раз был помоему первой базой которая прошла его тесты

ну или одной из первых

но это говорит лишь о том что в документации нет вранья

Fike
24.01.2018
15:34:39
По факту он каждый раз проверяет линеаризуемость одного регистра )

Vladimir
24.01.2018
15:35:20
Paul
24.01.2018
15:35:30
@not_logan то есть может быть ты таки что-то не понимаешь?
возможно, я давно не освежал в памяти теорию. кокроуч, насколько я помню, как-бы acid, но не SQL. Насколько я помню, ACID у cockroach локальный. Но это память, надо проверять

Vladimir
24.01.2018
15:35:58
они о себе пишут много, можешь две статьи прочитать

они утверждают что как раз ACID по распределенным транзакциям

и описано как они доибваются каждой из буковок

Sergey
24.01.2018
15:36:19
ну вообще кокроуч, если я его правильно понимаю, вполне себе CP. A в нём очень частичное.

Vladimir
24.01.2018
15:36:21
в двух статьях

Paul
24.01.2018
15:36:27
https://www.cockroachlabs.com/tags/acid/
почитаю, спасибо. Умнее умного стать вряд ли получится.

Anton
24.01.2018
15:36:59
а что ты хотел мне сказать? Говори.
Нет, ничего конкретного, просто вызвал удивление факт.

Let Eat
24.01.2018
15:37:10
Когда надо брать cockroach по сравнению с PostgreSQL + stolon скажем?

Fike
24.01.2018
15:37:42
у всех решений с постгресом, которые я смотрел, была возможность закоммитить транзакцию и потом ее потерять

кокроач так и не трогал, но у него этой штуки быть не должно, либо кластер сдох, либо транзакция видна

Google
Fike
24.01.2018
15:38:16
(либо время рассыпалось (((( )

Let Eat
24.01.2018
15:39:31
у всех решений с постгресом, которые я смотрел, была возможность закоммитить транзакцию и потом ее потерять
Можно убить производительность и синкать wal на каждую транзакцию. У десяточки есть чудесная штука, когда оно комитит в слейва , там вообще потерять постараться надо

Sergey
24.01.2018
15:40:52
проблема двух генералов
генералы не про то, генералы не доверяют друг другу

Fike
24.01.2018
15:41:21
окей, проблема одностороннего генерала (

Sergey
24.01.2018
15:41:46
??

Fike
24.01.2018
15:42:04
хотя, не про доверие - это византийская проблема. проблема двух генералов именно в гарантированном подтверждении

Sergey
24.01.2018
15:42:23
проблема генералов в том, что среди участников могут быть злоумышленники.

распределенный консенсус в доверительной среде - гораздо проще.

Sergey
24.01.2018
15:42:48
да

а ты о какой? о_О

есть еще одна проблема про генералов?

Paul
24.01.2018
15:43:02
она называется проблемой византийских генералов. А не двух. Я чуть мозг не вскипятил себе, пытаясь понять, что вы имеете ввиду

Sergey
24.01.2018
15:43:04
https://en.wikipedia.org/wiki/Byzantine_fault_tolerance

я об этой

Fike
24.01.2018
15:43:23
а я о проблеме двух генералов, которые не могут договориться о том, во сколько атаковать, потому что нет "финального подтверждения"

Google
Fike
24.01.2018
15:43:29
https://en.wikipedia.org/wiki/Two_Generals%27_Problem

Paul
24.01.2018
15:44:24
annnnddddd.... https://en.wikipedia.org/wiki/Byzantine_generals

и на русском - 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

Sergey
24.01.2018
15:45:18
annnnddddd.... https://en.wikipedia.org/wiki/Byzantine_generals
это действительно две разные задачи.

Paul
24.01.2018
15:46:08
да, действительно, спасибо

век живи - век учись

Let Eat
24.01.2018
15:46:17
если это про sync replica - то оно и в 9-ке есть
Я в этом вопросе ОБС ретранслирую, так что может суровая реальность и не такая радужная, но в 9 оно менее полезно на практике т.к. там список подтверждений был жестко задан. В 10 появилась ANY когда говоришь, что мне любые N из M пусть подтвердят , что развязывает руки - можно любой слейв приземлить и мастер не застопорится

terry
24.01.2018
15:47:41
что лучше юзать weave или flannel ?

Fike
24.01.2018
15:50:13
Короче, я к тому, что если у вас на слейв отправляется команда "закомить вот это", но сам мастер считает за коммит 1..N успешных ответов от слейва, то вполне реальна ситуация, когда слейв закоммитил, а мастер закрашился (и, кстати, почему двухфазные, трехфазные, семидесятифазные коммиты из классического SQL на самом деле не масштабируются). Для того, чтобы эта левая транзакция потом не была видна, нужен какой-то дополнительный слой контроля и, видимо, опрос всего кластера, чтобы вся эта байда хоть как-то приводилась к единой истории.

Fike
24.01.2018
15:51:29
А кто в оставшемся кластере здоровый?

Let Eat
24.01.2018
15:52:03
Кто не крашнулся и у кого счетчик транзакций больше

Fike
24.01.2018
15:52:54
И мы таким образом влегкую теряем часть транзакций

Если откосило всех идущих впереди, то мы теряем ту историю, которые они успели записать

Sergey
24.01.2018
15:53:44
Fike
24.01.2018
15:53:56
Тут надо баловаться с кворумом, что в постгре пока никак, но это тоже не спасет

Sergey
24.01.2018
15:54:08
если нод достаточное число для кворума - значит хотя бы одна из них имеет максимально возможный счетчик

Let Eat
24.01.2018
15:54:37
И мы таким образом влегкую теряем часть транзакций
Так комит в слейвы синхронный, как потерять то?

Fike
24.01.2018
15:55:01
Потому что слейв с фантомной транзакцией может тоже выбыть, следующий мастер может съесть одну транзакцию, затем тоже выбыть, а слейв с фантомной транзакцией - вернуться

Google
Fike
24.01.2018
15:55:09
И вот вам расхождение историй

Нету там синхронности. Только очередность, где он сначала применяется. Синхронностью это выглядит исключительно для клиента.

Fike
24.01.2018
15:56:08
мы говорим про моргание сетки в пределах минут, если не секунд

terry
24.01.2018
15:56:34
еще раз переспрошу, перебив такую оживленную беседу ;)

что лучше юзать weave или flannel ?

Sergey
24.01.2018
15:56:42
Fike
24.01.2018
15:56:44
network partition - это когда ты соседа не видишь, а почему - это не принципиально

Let Eat
24.01.2018
15:57:03
Нету там синхронности. Только очередность, где он сначала применяется. Синхронностью это выглядит исключительно для клиента.
Ну,если слейв подтвердил, потом мастер у себя подтвердил, потом клиенту подтвердил - синхронность

Sergey
24.01.2018
15:57:04
network partition - это когда ты соседа не видишь, а почему - это не принципиально
я всё пытаюсь понять, откуда фантомные транзакции возникают

можно ещё раз кейс по стадиям?

Fike
24.01.2018
15:58:28
Мастер может сделать две вещи: закоммитить у себя и разослать по слейвам и в обратном порядке. В случае, если ему требуется подтверждение от слейвов, то он может разослать коммит, но не успеть принять его. Таким образом на N слейвах данные будут, а в остальном кластере их не будет.

Sergey
24.01.2018
15:58:53
можно и вообще слейвам ничего не отсылать

тогда всё сломается само

не стараясь

Fike
24.01.2018
15:59:07
D:

Sergey
24.01.2018
15:59:31
но я бы рекомендовал попытаться прочитать, как работает 2pc/3pc и raft/paxos.

Fike
24.01.2018
15:59:58
потому что если у вас разошлись истории, вы рискуете столкнуться с тем, что транзакция применится на половине кластера

Страница 399 из 958