1.1, Аноним (1), 12:48, 22/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
> работающий в пространстве пользователя, прикреплённый к отдельному ядру CPU и напрямую взаимодействующий с сетевой картой.
А так можно было? Я всегда думал что только из пространства ядра можно напрямую с периферией работать, в этом и есть одна из основных задач ядра.
| |
|
2.2, нах (?), 12:58, 22/01/2019 [^] [^^] [^^^] [ответить]
| –4 +/– |
можно, работай.
только учти, что да, это одна из задач ядра, и оно ее решает достаточно хорошо, в большинстве случаев, это все же писали хорошие программисты, когда-то.
Что там у этих оптимизаторов из сциллы - хз, как-то слабо верится, что получилось - хорошо.
| |
|
3.3, anonymous (??), 13:12, 22/01/2019 [^] [^^] [^^^] [ответить]
| –3 +/– |
хорошие программисты всё равно не умеют ни нулевые накладные расходы на копирование в userspace и обратно, ни нулевые же накладные расходы на переключение контекста.
| |
3.8, erthink (ok), 13:39, 22/01/2019 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Что там у этих оптимизаторов из сциллы - хз, как-то слабо верится, что получилось - хорошо.
Если говорить про zero-copy "из ядра", то там вся прозрачно/понято (Intel DPDK).
Работает действительно просто:
- выделяете кусок памяти в своем приложении.
- через библиотеку просите класть такие-то пакеты в этот буфер (ioctl к драйверу).
- драйвер сетевухи настраивает её так, что пакеты из сети сразу попадают в ваш буфер.
- профит.
| |
|
4.13, нах (?), 15:17, 22/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
ну да, только результат этого зирокопирования надо разобрать обратно на байтики высокоуровневого протокола, не забыть низкоуровневым сгенерить ответы (ну ок, современная карта большую часть возьмет на себя, там оффлоад) и правильно обработать таймауты/потери (вот это она за тебя делать не будет). И не особенно-то это и просто покажется, если на минутку заглянуть в ядерный код.
насколько у авторов тазы банных получилось хорошо и тем более - надежно - вопрос, требующий отдельного изучения.
| |
|
5.18, erthink (ok), 15:47, 22/01/2019 [^] [^^] [^^^] [ответить]
| +5 +/– |
> ну да, только результат этого зирокопирования надо разобрать обратно на байтики высокоуровневого > протокола, не забыть низкоуровневым сгенерить ответы (ну ок, современная карта большую часть возьмет на себя, там оффлоад) и правильно обработать таймауты/потери (вот это она за тебя делать не будет).
Действительно, очень проблемно/сложно через java-жoпy что-либо делать DPDK-автогеном :)
> И не особенно-то это и просто покажется, если на минутку заглянуть в ядерный код.
Не нужно, в случае DPDK он не участвует в обработке потока данных.
> насколько у авторов тазы банных получилось хорошо и тем более - надежно - вопрос, требующий отдельного изучения.
нет, это "не вопрос" - работает, давно, и многократно быстрее.
Очень хороший горчичник и butthurt-индикатор для жабистов :)
Вот прям приятно.
| |
|
6.23, нах (?), 17:28, 22/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> И не особенно-то это и просто покажется, если на минутку заглянуть в ядерный код.
> Не нужно, в случае DPDK он не участвует в обработке потока данных.
я и говорю - ты весь этот код (ну, во всяком случае, изрядную его часть) будешь переписывать - или, что более вероятно, оно будет работать только в локальной сеточке у разработчика, и на соседнем столе в лаборатории - а в других сетапах как-то иногда)
> нет, это "не вопрос" - работает, давно, и многократно быстрее.
есть у меня подозрение, что это не из-за привязки к cpu и обработки tcp в волшебной сиплюсплюсичке, а вопреки этому.
ну просто потому что трудно поверить универсального спеца по базам данных, умеющего low level tcp - причем хорошо, а не абы как.
Обычно это сильно разные ребята.
| |
|
7.24, erthink (ok), 18:05, 22/01/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
>>> И не особенно-то это и просто покажется, если на минутку заглянуть в ядерный код.
>> Не нужно, в случае DPDK он не участвует в обработке потока данных.
> я и говорю - ты весь этот код (ну, во всяком случае,
> изрядную его часть) будешь переписывать - или, что более вероятно, оно
> будет работать только в локальной сеточке у разработчика, и на соседнем
> столе в лаборатории - а в других сетапах как-то иногда)
Ну переписывать я точно не буду, разве-что поправлю при необходимости, ибо чуток участвовал.
Но начинать надо с RTFM, т.е. с понимания, что оно умеет и как работает в тех или иных случаях.
Если уж совсем кратко, то http://seastar.io/networking/ позволяет выбрать между ядерным TCP и собственным упрощенным TCP-стеком (который дружит и с DPDK и с Virtio).
//offtopic: Но в отличии моего 1Hippeus (сейчас заброшенного) не умеет эффективных очередей в разделяемой памяти (в пределах физического сервера, сквозь все слои виртуализации).
Поэтому в теплично-контролируемых условиях одного датацентра, одной стойки с серверами или внутри одного VM-хоста, можно подключаться к ScyllaDB через DPDK и упрощенный TCP без участия ядра), а в остальных случаях через штатный TCP (со всеми фичами и плюшками).
Грубо говоря, ничего не отнимается, а только добавляется.
>> нет, это "не вопрос" - работает, давно, и многократно быстрее.
> есть у меня подозрение, что это не из-за привязки к cpu и
> обработки tcp в волшебной сиплюсплюсичке, а вопреки этому.
А земля плоская?
Если серьезно, то благодаря, но далеко не только этому.
Главный тезис - просто не делать лишнего, т.е. избавить машину от ненужных фрикций.
> ну просто потому что трудно поверить универсального спеца по базам данных, умеющего
> low level tcp - причем хорошо, а не абы как.
> Обычно это сильно разные ребята.
Но не всегда ;)
| |
7.25, rshadow (ok), 18:06, 22/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Обычно это сильно разные ребята.
Движек БД пишут ребята которые как раз понимают low level. Иначе за это и браться не стоит.
| |
|
8.40, Dim (??), 01:16, 24/01/2019 [^] [^^] [^^^] [ответить] | +/– | Движок Сциллы пишет команда которая, помимо прочего, написала OSv и KVM... текст свёрнут, показать | |
|
9.43, нах (?), 10:24, 24/01/2019 [^] [^^] [^^^] [ответить] | –1 +/– | да, я глянул - впечатлился Причем команда огромная, не полтора гика, такие и вп... текст свёрнут, показать | |
|
|
|
|
|
|
|
2.16, Аноним (16), 15:39, 22/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
>Я всегда думал что только из пространства ядра можно напрямую с периферией работать, в этом и есть одна из основных задач ядра.
Это не то, что вы подумали, это использование SOCK_RAW. Получение через него фреймов Ethernet, а дальше разгребание заголовков уровней в пространстве процесса.
| |
|
1.5, Орк (?), 13:26, 22/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
> Например, 4-узловой кластер на базе Scylla вполне справляется с нагрузкой для которой потребовалось бы развернуть 40-узловой кластер на базе Cassandra.
> Промышленные решения на базе Cassandra, хранящие сотни терабайт данных, охватывающие сотни серверов и способные обрабатывать тысячи запросов в секунду, развернуты для обеспечения сервисов таких компаний и организаций, как Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Netflix, Sony, Rackspace, Reddit и Twitter.
Это вы хотите сказать, что эти компании заигрывая с модными Java-решениями мешки с деньгами всё это время в датацентрах сжигали? И отвечать за это бы надо? Да не, бред какой-то!
| |
|
2.6, Аноним (6), 13:34, 22/01/2019 [^] [^^] [^^^] [ответить]
| +4 +/– |
Эти компании увеличивали капитализацию и цену акций. За счёт потребителя, разумеется.
| |
2.9, erthink (ok), 13:44, 22/01/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Эти решения более обкатаны, а риски некоторых видов багов в них действительно ниже (для отдельных багов близко к нулю).
Поэтому их проще использовать и продавать как сервис, и тут не важно что (на самом деле) они жрут в разы больше ресурсов.
В целом, IMHO, дуэль Scylla vs Cassandra очень хорошо показывает соотношение возможностей С++ и Java.
| |
|
|
4.20, erthink (ok), 16:06, 22/01/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
>> Seastar учитывает особенности современного оборудования, таких как распараллеливание на многоядерных системах, учёт попадания данных в процессорный кэш
> Дело не в платформе, а в дружбе с железом. Лондонская биржа отлично
> на Java работает (11 млн заявок в секунду на одном ядре).
> Просто дружат с железом. кучу наград имеют.
> https://martinfowler.com/articles/lmax.html
> https://en.wikipedia.org/wiki/LMAX_Exchange
Ну я бы назвал это не "дружбой с железом", а просто "не делать лишнего".
Однако, там довольно специфичный код.
Грубо говоря, если присмотреться, то там почти нет ничего от java :)
Все очереди - это кольцевые буферы, которые приклеенные через unsafe к массивам в java.
У всех очередей один producer и один consumer, поэтому без блокировок.
Поэтому вся нагруженная обработка "на java" - это чтение/запись и сложение/вычитание элементов массивов.
Это на lua-JIT будет работать также быстро (и работает в tarantool).
В итоге, с одной стороны, вроде-бы действительно написано на java.
С другой стороны, половина кода написана для борьбы с java через unsafe.
---
IMHO логично приравнять использование Java.Unsafe к C++ - тогда всё становится на свои места.
| |
|
|
6.36, RNZ (ok), 23:32, 23/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Может оно и имеет низкие задержки, но наверняка под капотом и в ходе эксплуатации выяснится, что ОЗУ надо в разы больше, что надо "греть" кеш, что периодически всё подтупливает на сборке мусора и и протухании кеша, что валится оно целиком при фаталити в треде и т.д. всё то, что присуще jvm-based серверам.
Как и сказано ранее: Cassandra vs Scylla отличный горчичник.
| |
|
7.39, Dim (??), 01:10, 24/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Может оно и имеет низкие задержки, но наверняка под капотом и в
> ходе эксплуатации выяснится, что ОЗУ надо в разы больше, что
> надо "греть" кеш, что периодически всё подтупливает на сборке мусора и
> и протухании кеша, что валится оно целиком при фаталити в треде
> и т.д. всё то, что присуще jvm-based серверам.
> Как и сказано ранее: Cassandra vs Scylla отличный горчичник.
Kэш греть надо везде, кроме баз которые заведомо в памяти сидят. В 3.0 в Сцилле добавили такую фичу, и таблицы можно грузить в память заранее: https://docs.scylladb.com/using-scylla/in-memory/
| |
|
8.47, RNZ (ok), 12:50, 24/01/2019 [^] [^^] [^^^] [ответить] | +/– | Нет Греть его надо только когда оно действительно нужно Обычно, на больших наб... текст свёрнут, показать | |
|
9.49, Dim (??), 16:58, 24/01/2019 [^] [^^] [^^^] [ответить] | +/– | Само собой, просто я говорил что в Сцилле нет никакой магии которая отменила бы ... текст свёрнут, показать | |
|
|
|
|
|
|
|
2.11, Аноним (11), 13:50, 22/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Ну так они работали на том, что позволяло работать, и, вполне возможно, убедившись в работоспособности устоявшегося решения, некоторые из них, решили доплатить за отливку в C++
| |
|
1.7, vitalif (ok), 13:36, 22/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Как раз этот Seastar вроде хотят Ceph-еры себе на борт взять... правда хотят давно, а втащить пока не втащили, ну и код там получается в духе как в ноде на промисах - async/await на стороне языка-то нет
| |
|
2.33, Dim (??), 22:08, 23/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
вроде как уже тащат, на Scylla Summit 2018 заявляли официально, показывали наработки
| |
|
3.38, RNZ (ok), 23:49, 23/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> вроде как уже тащат, на Scylla Summit 2018 заявляли официально, показывали наработки
Очень нужный шаг, тоже жду когда запилят. По идее это должно поднять Ceph выше ScaleIO, который прикарманила Dell.
| |
|
|
1.15, HatedLLVM (?), 15:32, 22/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
>переписанный с Java на C++ и демонстрирующий существенное увеличение производительности. Код проекта распространяется под лицензией AGPLv3
Ну уважуха же разработчикам.
| |
1.22, Аноним (22), 17:14, 22/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Java тормозит? Да не, не может быть! Не верю! 😀
Я что-то не понял откуда эти ребята внезапно появились. Кто у них спонсор? На чём хотят зарабатывать?
| |
|
2.28, лютый жабист__ (?), 08:51, 23/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
>Java тормозит? Да не, не может быть! Не верю!
Ну в статье буквами помельче написано, что реально в пару-тройку раз быстрее.
Главный вопрос: а вне AWS оно работает? AWS и прочие облака это несусветно дорого.
Ну и Кассандру уже обкатали за столько лет, а си это гарантия медленной разработки и большего количества багов. Бизнесу выгоднее сидеть на лидере, пусть и переплачивая за железо. Увы и ах, когда же это наконец поймут борцуны с жабой?
| |
|
3.44, нах (?), 10:38, 24/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Бизнесу выгоднее сидеть на лидере, пусть и переплачивая за железо.
ага, а кто только что ныл "AWS дорого"? Намек - "в пару тройку раз быстрее" в переносе на AWS - "в пару-тройку раз дешевле".
А за железо хорошо было переплачивать до осени 2008го, когда деньги были бесконечны. Сейчас, с учетом того, сколько надо платить за его обслуживание, электричество, место в стойках, стаю обезьян обслуживающих те стойки и системы в них, с учетом резервирования, в том числе географически разнесенного - что-то косо смотрят на идеи "давайте жрать втрое больше ресурсов".
Смотри как бы тебе в КПИ не воткнули "не меньше 15% экономии" каждый год, не выполнишь - сиди без премии.
| |
|
2.29, Аноним (29), 11:56, 23/01/2019 [^] [^^] [^^^] [ответить] | –1 +/– | Эй, жирный тролляка, причем здесь ява, если основная причина выигрыша - в архите... большой текст свёрнут, показать | |
|
3.30, Анонн (?), 13:39, 23/01/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> основная причина выигрыша - в архитектурных ухищрениях? Ну там всякие работа напрямую с очередью пакетов сетки из юзерспейса (меньше переключений контекста), оптимизации под SSD, архитектура shared-nothing
> (отсутствие необходимости блокировок и синхронизации доступа для конкурирущих обработчиков),
> новый формат хранения данных, "требующий для хранения до 66% меньше места
> в хранилище по сравнению со старым форматом" (ну то есть и
> с диска данных можно меньше читать).
Т.е. все дело в тех вещах, которые жабисты традиционно считают ненужным пережитком прошлого - ведь есть "write once, run everywhere!" и на которые забивают?
Или то-то с ножом у горла не давал использовать более эффективные решения?
| |
|
4.31, erthink (ok), 15:09, 23/01/2019 [^] [^^] [^^^] [ответить] | +2 +/– | И да и нет 1 По некоторым направлениям развитие Cassandra остановилась Наприм... большой текст свёрнут, показать | |
|
5.41, лютый жабист__ (?), 06:26, 24/01/2019 [^] [^^] [^^^] [ответить]
| –4 +/– |
>Например, уплотнение формата на диске.
"Storage is the cheapest resource now" как-то так.
>share nothing может быть реализован в java, но требует
щито? ты вообще в курсе, что есть shared-nothing? Это архитектура узлов. Причём тут java не java?
The Cassandra database is a shared-nothing architecture, as it has no central controller and no notion of master/slave
>IMHO, в целом засовывать java-пальцы в high-performance розетку неудобно и дорого, а часто и больно и бесполезно.
Теоретик-кукаретик? В реале кроме жабки в highload особо никого нет.
| |
|
6.42, Аноним (42), 10:09, 24/01/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ну, перепутал человек термины share nothing с zero copy. Зачем же его так сразу?
| |
|
7.45, лютый жабист__ (?), 12:25, 24/01/2019 [^] [^^] [^^^] [ответить]
| –3 +/– |
>перепутал человек термины
Чувак перепутал всё, вклучая бредовые выводы, что жабы в хайлоаде нет
| |
|
6.48, erthink (ok), 13:03, 24/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> "Storage is the cheapest resource now" как-то так.
Причем тут относительная стоимость?
Scylla генерирует меньше данных на дисках, вне зависимости от прочего это означает:
- вдвое меньше оборудования и площадей (вдвое дешевле).
- вдвое меньше электроэнергии и охлаждения (вдвое дешевле).
- вдвое меньше IOPS, вдвое меньше объемов прокачки через шину/SAN и т.п.
- вдвое большое отдачи от кэша внутри дисков и/или контроллера.
- вдвое эффективнее кеширование файлов в памяти.
- вдвое меньше вымывание кэша CPU.
Короче, заявленный "аргумент" хорошо демонстрирует понимание жавистов.
> щито? ты вообще в курсе, что есть shared-nothing? Это архитектура узлов. Причём тут java не java?
Как я понимаю вы на википедию ориентируетесь )
У этого термина несколько значений, в том числе http://seastar.io/shared-nothing/
Короче, RTFM c поминками по java.
>В реале кроме жабки в highload особо никого нет.
Гора рожающая мышей )
Термин highload загажен, увы, также как и одноименная конференция превратилась в Хайплоад.
Сейчас highload != эффективность.
Греть процессор можно на любом языке, а на java это можно делать еще и с умным видом.
| |
|
7.51, Dim (??), 17:04, 24/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Scylla генерирует меньше данных на дисках, вне зависимости от прочего это означает:
Scylla генерирует ровно столько же данных на диске. Она полностью совместима с SSTables ka/la/mc
> - вдвое меньше оборудования и площадей (вдвое дешевле).
> - вдвое меньше электроэнергии и охлаждения (вдвое дешевле).
> - вдвое меньше IOPS, вдвое меньше объемов прокачки через шину/SAN и
> т.п.
> - вдвое большое отдачи от кэша внутри дисков и/или контроллера.
> - вдвое эффективнее кеширование файлов в памяти.
> - вдвое меньше вымывание кэша CPU.
A вот это вполне себе точно. Недавно заменял кластер из 150 кассандр на 19 нод Сциллы, экономия, помимо железа, еще и на админах - их тоже надо меньше, когда парк серверов уменьшается
| |
|
|
9.53, Dim (??), 17:59, 24/01/2019 [^] [^^] [^^^] [ответить] | +2 +/– | Какой смешной жабист Мне не надо ничего доказывать, достаточно просто посмотрет... текст свёрнут, показать | |
|
|
11.57, Dim (??), 17:51, 25/01/2019 [^] [^^] [^^^] [ответить] | +/– | Смешной жабист еще и гадает по юзерпикам Нет, не свалил Штатные админы идут ко... текст свёрнут, показать | |
|
|
|
|
|
|
17.63, Dim (??), 17:09, 29/01/2019 [^] [^^] [^^^] [ответить] | +/– | Очень интересно, с чего ты взял что хоть одна из фирм fortune 100 не имеет своег... текст свёрнут, показать | |
|
|
19.66, Dim (??), 17:09, 31/01/2019 [^] [^^] [^^^] [ответить] | +/– | Ты не только лютый жабист но еще и лютый расист, да Чем тебе индусы не угодили ... текст свёрнут, показать | |
|
|
19.67, Dim (??), 17:16, 31/01/2019 [^] [^^] [^^^] [ответить] | +/– | ух ты, ты уже выучил арифметику теперь покажи мне хоть одного директора ИТ кото... текст свёрнут, показать | |
|
21.70, Dim (??), 17:06, 01/02/2019 [^] [^^] [^^^] [ответить] | +/– | начинаем друг друга понимать, это хорошо Не факт, содержание собственного пар... текст свёрнут, показать | |
21.71, Dim (??), 17:09, 01/02/2019 [^] [^^] [^^^] [ответить] | +/– | У него были все возможности все проверить и принять решение Думаю у директора И... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.50, Dim (??), 17:00, 24/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> "Storage is the cheapest resource now" как-то так.
Slow storage is the cheapest resource now
//fixed.
NVMe которые реально ускоряют базу (те же i3 на амазоне например) стоят очень немалых денег
| |
|
|
4.56, Аноним (29), 11:01, 25/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Т.е. все дело в тех вещах, которые жабисты традиционно считают ненужным пережитком прошлого
Еще раз, для не понявших. Дело не в жабистах. Дело в программистах на любых языках, которые не понимают, что важнее структура данных/алгоритмы/архитектура проектируемой системы/выбор вычислительной платформы, чем выбранный ими язык программирования (кроме клинических случаев выбора самых неадекватных (брэйнфак-like) языков, к которым ява не относится). И да, жабисты, как и программисты на других языках, тоже в широком спектре делятся на умных и не очень, которые забивают на важные вещи.
| |
|
|
|
1.27, anonymous (??), 19:08, 22/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Хотет!
Есть кластер Кассандр, есть некоторые затыки производительности, очень интересно взглянуть, как оно ведет себя под нагрузкой в 100K обращений.
| |
|
2.46, лютый жабист__ (?), 12:27, 24/01/2019 [^] [^^] [^^^] [ответить]
| –3 +/– |
:))) 100k можно в 1 instance Mongo лить... полагаю, что с такими рученьками как у вас, и сцылла не поможет.
| |
|
|