Size: a a a

2019 August 13

СХ

Старый Хрыч in Data Engineers
Alexey Evdokimov
есть такое. многих вопрос "а нахрена вам именно инструмент <X>?" вообще ставит в тупик. типа, все же юзают. а потом оказывается, что эти самые "все" — это ынтузиасты с наколенными поделиями без нагрузки, тестирования и вообще just for fun.

вот и трахаются потом с реальными задачами, где инструмент <X> ни фига не подходил изначально.
а где то увы это дошло до абсурда, например с кубером
источник

DY

Dan Y in Data Engineers
Alex
@dyasny извиняюсь, но опять маркетинговый булшит
"мы не знаем ваш ворклоад, но давайте вы попробуете наше решение, а вдруг прокатит?"

на практике это зачастую прокатывает на PoC в 10GB данных, а когда оказывается 10+TB уже в проде, то
добро пожаловать в наш слак чат разрабов и вот эту платную подписку купите на саппорт, может что-то придумаем но не обещаем

теперь более предметно как инженеры про seastar:
есть знакомые c/c++ девелоперы которые пытались seastar использовать
да, они подтвердили что он написан хорошо и предоставляет много отличных абстракций,
но конкретно они его у себя выпилили, так как он принуждает использовать его подход к обработке, что для них не совсем подходит
в частности: за ядром закрепляется обработчик и sharing nothing, с одной стороны линейный скейл и cpu друг другу в кеш не лезут, не нужны синхронизации, с другой это всё хорошо работает пока у вас не cpu bound задачи

перейдём теперь на scylladb и как она его использует:
каждая партиция закреплена за ядром
запросы на одну партицию обрабатываются в пределях одного потока, что даёт нам преимущества в виде отсутствия синхронизаций и перекидывания данных между ядрами

до тех пор пока это IO bound задачи:
1) вставить данные потоком
2) вернуть данные прочитав с диска

то их async на диск и внутренний асинхронный процессинг и reactor себя показывает очень хорошо
так как решает многие вопросы которые были у кассандры (мы не ждем данных с диска, а можем процессить другие запросы)

но если мы нарываемся на другие задачи которые больше CPU bound, то начинаются проблемы:
1) compaction  - scylladb пытается динамически предугадать размер сколько мы должны прочитать следующий блок, чтобы потом его быстро отпроцессить, причем соблюсти баланс
а) захватим меньше - сделаем быстро - нужно ждать пока следующий квант времени дадут, скорость компакшена может просесть
б) захватим много - процессим долго - весь процессинг запросов на этой партиции останавливается (get/put/etc выстраиваются в очередь, latency растет, все же помнят что одна партиция - один поток)

проблема что один и тот же блок по размеру может занять совершенно разное время в зависимости это были просто потоком таймсерии (можно просто sorted merge делать, можно сказать что упираемся в io) или вагон updates (тут еще нужно уже считать и находить кто последний был, объединять разные колонки и тд, намного больше cpu понадобится, и подход кассандры с отдельными потоками на compaction уже не кажется таким уж плохим)

2) record updates  - уже существующих записей, опять же если запись существует, то merge её больше упирается в cpu при расчётах, плюс лок на memtable

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


ещё раз: я не против scylladb или любой другой технологии пока дискусия идёт в рамках "опишите ваш ворклоад - у нас есть продукт с такими плюсами/минусами - в вашем случае он походит/не подходит потому что..."


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

такое было с хадупом и общим подходом nosql, потом монгой, потом с кликхаусом, сейчас вот со сциллой
все хорошо и по делу, но есть нюанс. Если не проверить подходит ли инструмент, как узнать? Как показывает практика, идеальных инструментов для вообще всего нет и быть не может. Это касается всего, в том числе и Сциллы. Но конкретно в таких случаях о которых задавался вопрос, с чего мы и начали разговор (стандартный kv) Сцилла отлично себя показывает, именно что выжимая из железа на котором она установлена все что можно. Я уверен что при желании, можно показать сильные стороны любого решения, если свободно выбирать схему и вид нагрузки, но мы ведь тут говорим о конкретной схеме и нагрузке, и с ними у нас обычно все хорошо.

Если бы о/п спрашивал например о geospatial data, я бы промолчал, хотя если верить Вам, то я бы и тут попытался толкать "маркетинг буллшит". Я к тому что я обычно молчу тут, и подаю голос когда вижу вопросы о потенциально подходящем юз кейсе, а не просто так от фонаря
источник

GP

Grigory Pomadchin in Data Engineers
Dan Y
все хорошо и по делу, но есть нюанс. Если не проверить подходит ли инструмент, как узнать? Как показывает практика, идеальных инструментов для вообще всего нет и быть не может. Это касается всего, в том числе и Сциллы. Но конкретно в таких случаях о которых задавался вопрос, с чего мы и начали разговор (стандартный kv) Сцилла отлично себя показывает, именно что выжимая из железа на котором она установлена все что можно. Я уверен что при желании, можно показать сильные стороны любого решения, если свободно выбирать схему и вид нагрузки, но мы ведь тут говорим о конкретной схеме и нагрузке, и с ними у нас обычно все хорошо.

Если бы о/п спрашивал например о geospatial data, я бы промолчал, хотя если верить Вам, то я бы и тут попытался толкать "маркетинг буллшит". Я к тому что я обычно молчу тут, и подаю голос когда вижу вопросы о потенциально подходящем юз кейсе, а не просто так от фонаря
а у вас есть гугл клауд / ажур / авс сервис чтоб погонять взаместо кассандры симлесс?
источник

DY

Dan Y in Data Engineers
Grigory Pomadchin
а у вас есть гугл клауд / ажур / авс сервис чтоб погонять взаместо кассандры симлесс?
есть scylla cloud, где можно погонять триал. И есть опенсорс чтоб гонять у себя
источник

GP

Grigory Pomadchin in Data Engineers
но у меня какраз GIS
источник

GP

Grigory Pomadchin in Data Engineers
источник

DY

Dan Y in Data Engineers
Grigory Pomadchin
но у меня какраз GIS
тогда пичалька :)
источник

GP

Grigory Pomadchin in Data Engineers
а почему?
источник

GP

Grigory Pomadchin in Data Engineers
если индекс лексикографический сделать
источник

GP

Grigory Pomadchin in Data Engineers
и вместо рендж запросов делать по одному;
уж не знаю какая архитектура у сциллы; но кассандра такое на ура вывозит т.к. ей нравится что нет рендж запросов, она плохо их умеет
источник

A

Alex in Data Engineers
Dan Y
все хорошо и по делу, но есть нюанс. Если не проверить подходит ли инструмент, как узнать? Как показывает практика, идеальных инструментов для вообще всего нет и быть не может. Это касается всего, в том числе и Сциллы. Но конкретно в таких случаях о которых задавался вопрос, с чего мы и начали разговор (стандартный kv) Сцилла отлично себя показывает, именно что выжимая из железа на котором она установлена все что можно. Я уверен что при желании, можно показать сильные стороны любого решения, если свободно выбирать схему и вид нагрузки, но мы ведь тут говорим о конкретной схеме и нагрузке, и с ними у нас обычно все хорошо.

Если бы о/п спрашивал например о geospatial data, я бы промолчал, хотя если верить Вам, то я бы и тут попытался толкать "маркетинг буллшит". Я к тому что я обычно молчу тут, и подаю голос когда вижу вопросы о потенциально подходящем юз кейсе, а не просто так от фонаря
Для этого нужно знать что за инструмент и как он работает, его плюсы минусы, поэтому я и топлю чтобы на докладах по технологиям говорили обе стороны, а то докладчик на сцене рассказывает как все отлично, а потом за пивом какая же это оппа :)

И чтобы узнать подходит или нет не всегда нужно тянуть это в тест, часто достаточно знать архитектуру и его границы применения, иначе риск получить проблемы не сразу а через годик продакшена. Пример с Geospatial data хороший
источник

A

Alex in Data Engineers
:) в общем сразу думаем, а потом применяем
источник

ПФ

Паша Финкельштейн in Data Engineers
Jenkins — топ для пайплайнов дата процессинга
источник

DY

Dan Y in Data Engineers
Alex
Для этого нужно знать что за инструмент и как он работает, его плюсы минусы, поэтому я и топлю чтобы на докладах по технологиям говорили обе стороны, а то докладчик на сцене рассказывает как все отлично, а потом за пивом какая же это оппа :)

И чтобы узнать подходит или нет не всегда нужно тянуть это в тест, часто достаточно знать архитектуру и его границы применения, иначе риск получить проблемы не сразу а через годик продакшена. Пример с Geospatial data хороший
у нас в ноябре саммит будет, велкам если интересно
источник

DY

Dan Y in Data Engineers
Grigory Pomadchin
и вместо рендж запросов делать по одному;
уж не знаю какая архитектура у сциллы; но кассандра такое на ура вывозит т.к. ей нравится что нет рендж запросов, она плохо их умеет
это можно, но надо конкретно перелопатить схему, многие не хотят с этим связываться
источник

GP

Grigory Pomadchin in Data Engineers
перелопатить схему? т.е. не поддерживаются такие индексы?
источник

A

Alex in Data Engineers
Dan Y
у нас в ноябре саммит будет, велкам если интересно
Вы бы хоть локацию называли :) чтобы понимать насколько далеко
источник

DY

Dan Y in Data Engineers
Сан Франциско
источник

GP

Grigory Pomadchin in Data Engineers
Dan Y
Сан Франциско
можно и ссылку) запиним
источник

DY

Dan Y in Data Engineers
Grigory Pomadchin
можно и ссылку) запиним
источник