170 похожих чатов

Парни, вопрос от фронтендера. Какой брокер очередей взять? Юзал только

редис, но как-то оно не очень надёжно, имхо

52 ответов

9 просмотров

rabbitmq

А у нас что-то везде NATs пихают в проектах

arts- Автор вопроса

И как оно?

Норм, пашет

kafka уже предлагали?)

так она ж только когда у вас тысячи и миллионы этих сообщений?

Ну там дальше человек вроде бы говорил про тысячи мелких сообщений, вот я и подумал))

А она хорошо работает именно с маленькими сообщениями? Человек писал, что они там в несколько байт

Сам не юзал, но когда читал инфу про написание своей базы данных изучал принцип устройства кафки и рабита, так вот поидее кафка то как раз больше подойдет для мелких сообщений, чем рабит, потому что у кафки принцип работы строится на Pull механике, а не на Push как у рабита. Ну типа там внутри по сути тупо массив, который наполняется данными сколько угодно тем кто генерит эти сообщения, а тот кто читает просто запоминает грубо говоря индекс последнего забранного значения и одним pull запросом может считать с любого места все оставшиеся данные. Т.е. проблема только в размере индекса, но думаю с этой же проблемой столкнется и рабит, но тут я не уверен, не разбирал устройство рабита, помню только что он к сообщению еще кучу данных лепит сверху, что поидее может наделать овердохера лишней инфы. В общем не буду утверждать 100% верности моей информации, если есть что сказать, буду рад узнать 😊

Бд таки написали?

Пишу на Rust ))) Но как бы пока что только продумал структуру самой бд в файле, и архитектуру в Rust продумал, написал простейшее добавление данных и их вытягивание, ни о каком удалнении переменных еще речи нет 😅

Потихоньку пишу в свободное время))

embedded key value, вдохновлялся LMDB, но там слишком жесткое ограничение на 1 writable transaction и libmdbx пытались это исправить до 3 подняли, но в итоге тоже решили переписать все к хренам 😂

реалиционная

Так есть же популярная от фейсбука

RocksDB использует WAL)) А что в lmdb что у меня нет этого говна))

lmdb знаком, но оно вроде как очень старое. С wal незнаком

И что, что старое?)) ну есть новее libmdbx по сути переписанный lmdb )) Но как бы mysql и postgres тоже то еще гавно мамонта вместе с ораклом )))))

mysql вроде большее говно, там даже сравнение по размеру кодовой базы было

я так и не смог libmdbx скомпилить )))

О говнокод Я за грамотность

Ну как бы надо еще дописать хотя бы до mvp 😅 уже потом что-то показывать)))

а key-value с запросом на получение значение по ключу за О(1)?

Ну как бы вам никто не даст O(1) скорость чтения, если у вас нет индексов 🤣 у меня в самом плохом случае O(n), но типа я заложил индексирование данных, в отличие от lmdb в котором в лучшем случае O(log n) из-за b+ tree. Так вот я собирался добавить парочку разных индексов, такие как хеш, который O(1) выдает, но имеет коллизии, как b+ tree ( O(log n) ), как ART tree (Adaptive radix tree) не помню сколько, как R tree и возможность добавления любых индексов, которые в дальнейшем могут понадобиться, потмоу что данные же могут лежать разные 😉

я далеко не спец в (key-value) бд, но например тот же редис пише что GET <key> выполнется за O(1) поэтому и спрашиваю, типа есть ли смысл писать key-value бд в которой чтение и запись не за O(1) ?

Да это невозможно

а в б дереве поиск o log n? я чет забыл

ну редис то in-memory

а я чет не понял, что вы за админ такой?) еще не видел в чате раньше

key-value разные бывают, какие-то чисто для чтения, какие-то для записи O(1) дают, но у каждого из этих способов есть свои минусы, нельзя сделать и чтение и запись за O(1). В redis не разбирался что внутри, но O(1) это хеш индексы, типа как md5 (очень грубо говоря), но более навороченные, и нужно смотреть, что они там с коллизиями делают, там или вариант перезаписать старые данные при добавлении или хранить все значения, но и тот и тот вариант имеют свои минусы)) В общем не получится у вас читать и записывать за O(1) темболее в диск))

Хэш тейбл как раз O(1) на чтение и запись

Ну да) b tree Algorithm Average Worst case Space O(n) O(n) Search O(log n) O(log n) Insert O(log n) O(log n) Delete O(log n) O(log n)

Смотря какая хеш тейбл)))

если не O(1) то это уже не хештейбл

обычно ж худший вариант рассматривается?)

нет

да.

Опять же… Algorithm Average Worst case Space O(n) O(n) Search O(1) O(n) Insert O(1) O(n) Delete O(1) O(n)

пасиба за напоминание))

😊

O(1) amortized, или O(1+n/k), O(1) это в среднем

Вы опоздали)) надо было приходить раньше))

А, да, сорь тогда )

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
6
Карта сайта