Highload-2023: Отчёт Виталия Филиппова — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
м
Строка 11: Строка 11:
 
= День 1 =
 
= День 1 =
  
== Барсик (постфактум) ==
+
== Барсик ==
  
BARSiC — асинхронная репликация и консенсус для 70 баз данных
+
BARSiC — асинхронная репликация и консенсус для 70 баз данных.
  
== Оптимизации Go (постфактум) ==
+
Хрень какая-то, честно говоря. Технических деталей было крайне мало, просто общая мысль - вот, им ничего готовое не подошло, Raft они почему-то сочли слишком сложным, поэтому сделали всё сами и на основе другого протокола - Viewstamped Replication аж от целой Бабы Лизы... то есть Барбары Лисков.
 +
 
 +
Я раньше про этот протокол вообще не слышал, уже после конфы почитал - так вот, '''ОНО ВООБЩЕ НЕ ОТЛИЧАЕТСЯ ОТ RAFT-а''', точнее, отличается, но в худшую сторону - оно '''СЛОЖНЕЕ'''! 10 типов сообщений вместо 4-х у Raft-а.
 +
 
 +
{{WikiCutBegin|Развёрнутое объяснение под катом, взял [https://groups.google.com/g/raft-dev/c/cBNLTZT2q8o отсюда]}}
 +
With apologies to Barbara, James, and Brian. VR introduced some great
 +
ideas, and VRR was a huge improvement in clarity. I think the industry
 +
would be in a better place now with respect to consensus if it had
 +
paid less attention to Paxos and more to VR.
 +
 
 +
You're right, Heidi, that Raft and VR/VRR are similar, and we
 +
acknowledge this in the first page of the paper.
 +
 
 +
At a high level, you could argue they're exactly the same. Lamport
 +
would probably call them both Paxos. Their messaging pattern is
 +
similar. Why they work is similar, and their proofs of correctness
 +
could be similar.
 +
 
 +
At a low level, you could argue they're very different. Raft's
 +
mechanism is compact (VRR uses 10 message types where Raft uses 4 to
 +
accomplish the same tasks). Raft spells out how to do leader election
 +
with randomized timeouts and how to avoid transferring entire logs.
 +
 
 +
And of course membership changes are entirely different.
 +
 
 +
Now (2015), there's a huge difference in completeness. Raft has
 +
several implementations including membership changes and log
 +
compaction, some evaluation, a proof or two, my dissertation (a lot of
 +
discussion about design choices), and many online resources to help
 +
people learn. I don't think VR/VRR is competitive with any of that
 +
currently. For example, I just searched GitHub for "Viewstamped
 +
Replication" and found only one project; searching "VRR" yields noise.
 +
 
 +
 
 +
Paper-wise, I'm biased, but I think the Raft paper is more accessible
 +
to beginners. That's because the Raft paper explains the why, and the
 +
VRR paper just tells you the what.
 +
 
 +
I also think the leader election algorithm in the original VR is
 +
better than in VRR. I discuss this in the related work in my
 +
dissertation. The original VR has the view manager tell the new leader
 +
to start, yes, but it doesn't have to transmit any log entries. And I
 +
still don't feel great about the leader being a function of the view
 +
(term) number. It feels misleading, since of course different servers
 +
might be in different views, especially during leader changes. But I
 +
haven't implemented or evaluated that approach.
 +
 
 +
We (John and I) actually didn't know about the VRR paper until after
 +
we had started Raft. I think the earliest time someone mentioned it to
 +
us was three days before our first paper submission on Raft, in
 +
September 2012, buried in an email with a bunch of other pointers.
 +
Would we have used VRR instead of creating Raft if we knew abut it in
 +
time? I'm not sure, but it definitely would have been a better
 +
starting point for us.
 +
 
 +
Know of any performance evaluation between these two protocols? Nope.
 +
Normal-case operation would be the same, so you'd probably have to
 +
compare leader changes. And I feel like that depends on the details of
 +
how you "optimize" VRR, so I don't know if it'd be apples-to-apples.
 +
 
 +
Hope I haven't offended anyone, and hope this helps,
 +
Diego
 +
{{WikiCutEnd}}.
 +
 
 +
== Оптимизации Go ==
  
 
== Опенсорс от девушки из Apache Ignite ==
 
== Опенсорс от девушки из Apache Ignite ==
Строка 27: Строка 91:
 
== Неудачный опенсорс от бодишопа ==
 
== Неудачный опенсорс от бодишопа ==
  
== Перила (постфактум) ==
+
== Перила ==
  
 
= День 2 =
 
= День 2 =
  
== Шардирование: с нуля до Яндекс Диска (постфактум) ==
+
== Шардирование: с нуля до Яндекс Диска ==
  
 
== Реконсиляция от Меликова ==
 
== Реконсиляция от Меликова ==

Версия 23:25, 29 ноября 2023

Как я уже писал в прошлогоднем отчёте - самая крупная и раскрученная конференция Бунина. Финальная стоимость выросла уже аж до 64 тыр с 60, то есть годовая инфляция по версии Онтико в этот раз составила 6.66 %. :-)

Общее впечатление: Неплохо - "торжество велосипедов" в докладах, всё как мы любим, но перегруженно. Слишком много народу на эту площадку.

Реально, 3750 человек в Сколково, в котором и проходила конференция - это перебор. Если чуть более, чем средне-интересный доклад шёл в любом зале, кроме самого большого "Конгресс-холла" - сесть там было невозможно. Они пытались организовывать какие-то "расширительные бачки" в виде ретрансляций докладов рядом с залами, но это было бесполезно, ибо организовывали не прямо в коридоре, а в маленьких отдельных комнатушках. Какой толк от расширительного бачка на 10 человек, когда не влезло 50...

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

При этом ещё и 11 параллельных залов. Я даже пожалел, что не заявил какую-нибудь хрень на опенсорс-трек - там такую фигню рассказывали, что я бы точно смог не хуже. Не, сама идея опенсорс-трека неплохая, но доклады бестолковые, хорошо демонстрируют механистический подход к опенсорсу: одни рассказывают, что опенсорс это хорошо, потому что признание сообщества, розовые пони и вообще, а вторые - что они попробовали давать по 100$ рандомным разработчикам модулей питона раз в неделю, и профита не обнаружили, но будут ещё пробовать. А третьи вообще вместо рассказа, КАК же они пилят этот самый опенсорс, рассказывают, что они его закрывают и продают как сборник произведений по ГК РФ - это очень важная и интересная информация, которой, конечно, до этого не было ни на одной конференции (тро-ло-ло).

День 1

Барсик

BARSiC — асинхронная репликация и консенсус для 70 баз данных.

Хрень какая-то, честно говоря. Технических деталей было крайне мало, просто общая мысль - вот, им ничего готовое не подошло, Raft они почему-то сочли слишком сложным, поэтому сделали всё сами и на основе другого протокола - Viewstamped Replication аж от целой Бабы Лизы... то есть Барбары Лисков.

Я раньше про этот протокол вообще не слышал, уже после конфы почитал - так вот, ОНО ВООБЩЕ НЕ ОТЛИЧАЕТСЯ ОТ RAFT-а, точнее, отличается, но в худшую сторону - оно СЛОЖНЕЕ! 10 типов сообщений вместо 4-х у Raft-а.

.

Оптимизации Go

Опенсорс от девушки из Apache Ignite

"Сообщества вокруг технологии: почему быть бесплатным недостаточно"

Дата скетчи

Yandex S3

Неудачный опенсорс от бодишопа

Перила

День 2

Шардирование: с нуля до Яндекс Диска

Реконсиляция от Меликова

Хадуп в облаке

Петабайт в УДБ на ХДД

Как разрабатывается опенсорс в АЛЬТ

(никак...)

SQL-регэкспы (MATCH_RECOGNIZE)

Нагрузка или задержка?

Устройство индексов в почте mail.ru

Вот наконец и третья часть архитектуры mail.ru. Но вот эту часть — можно я не буду у себя нигде повторять, можно же, правда? :-)

Велосипед от Тинькова (SAGE DB)

PATCH в S3