LINUX.ORG.RU

Garnet - кэш от Microsoft, написан на C#, делает и Redis, и Dragonfly

 , , garnet, ,


0

5

Как видно из бенчмарков, это сейчас вообще самый быстрый сервер структур данных на всём диком западе:

https://microsoft.github.io/garnet/docs/benchmarking/results-resp-bench

Парктически полностью совместим с Redis на уровне API, но при этом:

  • Имеет либеральную MIT лицензию, как и все последние крупные проекты MS, и этим крайне выгодно отличается от Redis
  • Написан на C#, и позволяет удобно расширять сервер
  • Делает по производительности и Redis, написанный на Си, и Dragonfly написанный на C++

Последний пункт особенно забавен, надеюсь хоть это у крестолюбцев в голове что-либо прочистит, и вот это дебильное мнение что «сипласплас эта быстра», а также глупые наезды на GC, наконец канут в лету. Кресты в современном мире нахер не нужны, и никакой даже особой производительности не дают. Да и Си, в принципе, тоже нигде не нужен выше уровня ядра.

Я кстати, в свое время написал на C# видеостриминг-сервер, и клиент, практически не используя кресты(было немного C++/CLI для связи с COM итд), и проблем с производительностью там не было. Но что я - вон целый MS Research делает продукты вон какого уровня.

★★

Написан на C#, и позволяет удобно расширять сервер

Написан на C#, поэтому тему можно сносить с ЛОРа как профнепригодную (шутка).

sanyo1234
()

Делает по производительности и Redis, написанный на Си, и Dragonfly написанный на C++

Вот, если бы redis с dragonfly такое заявили … А так, наверняка какой-то мухлёж с методикой тестирования.

ugoday ★★★★★
()

Кресты в современном мире нахер не нужны,

Ну как же ненужны, а раздувать ЧСВ, просирать огромные бюджеты, сроки сдачи проектов и т.п.

Сравни конструкции современного ЯП и плюсов, и ужаснись плюсовым:

https://github.com/vlang/v/wiki/V-for-Cpp-developers

sanyo1234
()

Делает по производительности и Redis, написанный на Си, и Dragonfly написанный на C++
Последний пункт особенно забавен

Без C++ правда в репозитории не обошлось.

Кресты в современном мире нахер не нужны, и никакой даже особой производительности не дают.

Конечно же дают, другое дело что производительность получить сложно, и во многих случаях лучше выбрать Java, C#, а то и Python.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от ugoday

Да завявляют, регулярно

https://www.dragonflydb.io/

«Discover Dragonfly - the fastest in-memory data store for high-performance applications.»

lovesan ★★
() автор топика
Последнее исправление: lovesan (всего исправлений: 1)
Ответ на: комментарий от MOPKOBKA

Без C++ правда в репозитории не обошлось.

Хорошо, когда плюсы применяют к месту, а не везде подряд:

C# 97.9%
C++ 1.5%

Создали правильный ЯП более 20 лет назад, а научились пользоваться профайлером только в 2024 году ? LOL

Или ФРС со ставкой 5% теперь заставляет считать деньжата, а не расшвыриваться ими направо и налево.

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 3)
Ответ на: комментарий от ugoday

Garnet заопенсорсили буквально на днях, и они как раз все померили и посчитали. Dragonfly сравнивали себя только с редисом, и он действительно быстрее redis местами, но и только. Garnet на самом деле быстрее обоих.

lovesan ★★
() автор топика
Ответ на: комментарий от lovesan

Garnet заопенсорсили буквально на днях,

Dragonfly сравнивали себя только с редисом,

Ну, значит просто не успел сравнить себя с Garnet и объявить победителем.

В любом случае применимо правило:

  • X заявил, что он быстрее чем Y — маркетинговое фуфло
  • X заявил, что Y-то оказывается побыстрее будет (но у Х всё равно много других достоинств!!!) — уже можно обсуждать.
ugoday ★★★★★
()

писать это на ишарпе… - моветон. не взойдет. сишарп для прикладных индусов, а не системного софта.

если оно «кого-то» там обгоняет - эти «кто-то» подрихтуют свои алгоритмы и похоронят это сишарповое поделие индусских мастеров.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

Нет конечно, не обгонит. Потому что крестовики принципиально не понимают что такое производительность, откуда она берется и так далее. И еще верят в то что «сипласплас это быстра». Прям магия какая-то, вот взяли C++ и стало «быстра»(и почему только в реальных приложениях на крестах все наоборот?). В этом плане любой крестовик хуже чем даже индусы на C#, потому что он свято уверен в своей компетентности, хотя по сути у него синдром Даннинга-Крюгера, помноженный на кругозор уровня таракана.

lovesan ★★
() автор топика
Ответ на: комментарий от lovesan

c++ выигрывает у шарпа 2-3 раза в среднем. всякие левые тесты, где шарп приближается и иногда и выигрывает!!! полпроцента - это там где код с++ неоптимальный и например юзаются всякие стандартные контейнеры.

стоит не использовать этот мусор из стдлибы и си++ улетает далеко вперед.

alysnix ★★★
()
Ответ на: комментарий от lovesan

Apache Cassandra переписали на С++, получилась ScyllaDB которая быстрее. Тут тоже переписать на С++, и получится быстрее. Это очевидно.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

Последний пункт особенно забавен, надеюсь хоть это у крестолюбцев в голове что-либо прочистит, и вот это дебильное мнение что «сипласплас эта быстра», а также глупые наезды на GC, наконец канут в лету. Кресты в современном мире нахер не нужны, и никакой даже особой производительности не дают. Да и Си, в принципе, тоже нигде не нужен выше уровня ядра.

redis не cpu-bound, его и на питоне можно было быстрее написать, учитывая что под c++ нет нормальных асинхронных фреймворков (кроме того что в nginx, хотя и он уже устарел, на C и неотчуждаем).

А наезды на GC вполне обоснованы, это ублюдочная концепция, и в случаях когда она не даёт катастрофической просадки по производительности (а заметную она даёт всегда), она даёт катастрофический оверюз памяти. Сейчас про «память стоит копейки» уже не повякаешь, во-первых, потому что она не стоит копейки, во-вторых, потому что не запускают уже сервер с 128G под базёнку с 1 пользователем, а запускают там 1000 контейнеров с такими базёнками, с жёсткими ограничениями по памяти, в которые никакие GC никогда не уложатся.

Ну и C# в опенсорс мире вне винды никому не сдался.

Впрочем, есть и форк обычного редиса, и всё это вместе надеюсь оригинальный редис сменивший лицензию похронит, и поделом.

anonymous
()
Ответ на: комментарий от anonymous

его и на питоне можно было быстрее написать, учитывая что под c++ нет нормальных асинхронных фреймворков

Под C# тоже не оказалось, пришлось делать вставки на С++.

MOPKOBKA ★★★★
()
Ответ на: комментарий от ugoday

это все, кому нужна производительность от с++ знают. и для этого у них припасены свои заготовки на зиму. 3-4 разика можно отжать.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от anonymous

redis не cpu-bound, его и на питоне можно было быстрее написать

Давай, перепиши. Умник. Там основная работа это структурки данных внутренние, которые как раз заоптимизированы по самое не балуй.

А наезды на GC вполне обоснованы, это ублюдочная концепция,

Нет, это ты просто необразованный.

Ну и C# в опенсорс мире вне винды никому не сдался.

Ты зашоренный просто. В хвост и гриву он используется в опенсорсе.

lovesan ★★
() автор топика

Последний пункт особенно забавен

Почему-то уверен, что увижу unsafe и ручные аллокации в первом же рандомно выбранном cs файле.

Впрочем это хорошая демонстрация гибкости платформы

Midael ★★★★★
()
Ответ на: комментарий от lovesan

Кому очевидно?

Мне.

Почему Redis и Dragonfly не переписали так?

У них есть главный разработчик? Можешь написать им вопрос.

Ты хоть смотрел что там на C++ то написано?

Да.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

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

pekmop1024 ★★★★★
()
Ответ на: комментарий от lovesan

Уж точно не будет течь как поделия на крестах - вон у хрома и неделя аптайма то - и уже ад начинается - все течет.

Бгг. Кафку на джаве и то относительно недавно отучили течь. Так то - джава. А тут индусская поделка, хайлоада не нюхавшая.

pekmop1024 ★★★★★
()
Ответ на: комментарий от Midael

Если нативный слой нигде не подтекает, то ничего не будет.

А нативный слой почему не подтекает? Каков пробег этого стека на чем-то действительно большом, а не на локалхостах индусов из некрософта?

pekmop1024 ★★★★★
()
Ответ на: комментарий от sanyo1234

У разработчиков vlang шизофрения какая-то с операторами. Оператор вставки в поток (<<) им не понравился, при этом для добавления элемента в конец массива используется почему-то оператор.

В целом, код на с++ всегда содержит больше информации. Как минимум там есть информация о типах.

Нет, я не фанат крестов, но критиковать тоже с умом надо.

Gentooshnik ★★★★★
()
Ответ на: комментарий от Gentooshnik

Я не любитель Vlang, но всё же в среднем его синтаксис выглядит более читабельным, чем плюсовый, который тащит за собой 30+ лет обратной совместимости.

Мне больше нравится Haxe, который может генерить и плюсовый выхлоп, и шарповый, и для JVM и на Питоне и много ещё на чём.

sanyo1234
()
Ответ на: комментарий от sanyo1234

numbers.filter(it % 2 == 0)

Столько сахара что даже у лиспера со стажем вызовет диабет.

EDIT: Я имею в виду что можно легко сделать макрос который работал бы как filter, т.е. принимал аргументом выражение-предикат.
(filter numbers (= 0 (% it 2))) Но на практике используются штуки в которых поменьше магии.

Gentooshnik ★★★★★
()
Последнее исправление: Gentooshnik (всего исправлений: 1)
Ответ на: комментарий от sanyo1234

В Golang кстати GC абсолютно кривой и наколеночный. Как и всё в Golang. Там до сих пор, вроде, примитивный Mark-n-Sweep, не двигающий объекты. Прямо как из студенческой лабы. Это сравнивать с JVM, .NET или лиспами - смешно просто.

lovesan ★★
() автор топика
Ответ на: комментарий от lovesan

приведи пример тестов, где шарп плюсы побивахом в прямой производительности. набор тестов, от незаинтересованных лиц, с исходниками алгоритмов.

гугл такого не знает

alysnix ★★★
()
Ответ на: комментарий от alysnix

А почему ты так зациклился на производительности выхлопа шарпа? 1-2% кода ведь можно переписать и на Сях/Rust, etc. аналогично Garnet?

C# - это ведь в первую очередь про продуктивность разработчика, а не только производительность скомпилированного бинарника?

sanyo1234
()
Ответ на: комментарий от lovesan

Да, кстати. Не перестаю удивляться что почти в каждом лиспе годный GC, хотя разработчиков от одного (ECL) до дюжины. А для Го всем гуглом неосилили нормальный GC сделать.

Gentooshnik ★★★★★
()