Anonymous
defer
Anonymous
сорри
Anonymous
ща допишу)
Michael
буфер канала результатов должен быть равен кол-ву опраш. хостов
Michael
а то дедлок будет
Anonymous
то есть len(hosts)?
Michael
ну, да
Anonymous
Так он же вроде как запинывает по 5ть и выпинывает по 5ть? и блокируется в ожидании, или нет?
Michael
если хостов много, делай вывод в отдельной рутине, как вариант
Michael
запишешь пять
Michael
буфер заполнен
Michael
и запись возможна как место там освободится
Michael
т.е. кто-то должен вычитать
Michael
или panic получишь с инфо что так и так все васи и рутины не работают
Anonymous
Хм, а что предпочтительней буферизированный канал или нет?
Anonymous
Вот в данном случае, когда известно кол-во хостов
Michael
смотря в каком случае
Michael
я б сделал канал с буфером кол-во воркеров+1, а результаты писал бы в отдельной рутине
Michael
и всё равно сколько там хостов
Michael
в осн потоке синхронизировался бы, как то так)
Mikhail
для хранения данных key-value boltdb годится? Или есть что то лучше?
Alexander
Anonymous
Anonymous
Mikhail
mongo
не совсем то, что нужно. нужно что то типа sqlite, но для key\value
Aleksandr
Boltdb https://github.com/boltdb/bolt
Damian
radis
Mikhail
спасибо, буду изучать предложенные варианты
Aleksandr
Aleksandr
Это кэш, а не хранилище
Andrei 🦉
Aleksandr
Aleksandr
если нужен кейвалью и не нужен персистенс - почему бы тупо в слайсе/мапе не хранить данные? зачем посредники?
Mikhail
Если я правильно понял значение персистанс, то под мою задачу это нужно.
Aleksandr
в таком случае, снова предлагаю посмотреть в сторону этой либы
Aleksandr
Boltdb https://github.com/boltdb/bolt
Andrei 🦉
Mikhail
данных будет не много, 2-3 записи в минуту
Mikhail
Mikhail
https://github.com/dgraph-io/badger
И вот этот
Anonymous
https://github.com/dgraph-io/badger
И вот этот
Anonymous
Badger хорош, я на него тоже в свое время обратил внимание. Он быстрее RocksDB который в свою очередь обгоняет по некоторым операциям LevelDB.
Кроме того он написан чисто на Go, в отличии от остальных, то есть нет интероп простойки между C/C++ и Go
Vasily
Anonymous
https://db-engines.com/en/system/Badger%3BRedis
Anonymous
Мерль
🔥
https://play.golang.org/p/-gF1qvNiUOy
Mikhail
Andrew
Как-бы использовать в продакшене я бы пока не стал
Мерль
Список каналов, посвящённых golang:
• @gophernews
• @golang
• @coolgo
• @golangjobfeed – вакансии
• @go_books – книги
• @vmestego – русскоязычные новости
Мерль
Anonymous
Горизонтальная масштабируемость мне сейчас не нужна
Anonymous
такие сравнения обычно точно маркетинг
Anonymous
Поэтому же и говорю, нужны собственные тесты, не на синтетических данных
Anonymous
У LevelDB тоже нет горизонтальной мастабируемости кстати
https://db-engines.com/en/system/Badger%3BLevelDB
Michael
cockroachdb может подойдёт
Anonymous
Вот только он бесплатен только для open-source проектов, а этот free план не умеет Backup & Restore
Anonymous
Если нужен действительно стабильный, бесплатный и функциональный persistance key-storage то пока кроме Radis-а я не вижу альтернатив
Vasily
Tarantool
Vasily
Но там порог входа чуть побольше
Michael
тарантул разве не апп сервер на луа?
Vasily
изначально это как раз persistance k/v
Vasily
потом уже там сверху было много всего сделано, луа, файловый движок, sql сейчас пилят
Anonymous
Им вообще кто то пользуется? Столько его уже пиарат, а народ что то не ценит
Michael
Tarantool is a Lua application server integrated with a database management system.
Vasily
mail.ru, avito, badoo
mamba вроде и qrator
внедряют в beeline, сбере, ещё в каких-то телекомах
Aleksandr
у нас в одной команде юзают
Anonymous
И как отзываются?
Aleksandr
просто юзают как инструмент. нареканий нет
Заур
Anonymous
Российские?
Заур
Просто его использовать сложнее, но кто использует, все довольны
Заур
Российские?
Ну я только с местными сталкивался. Но думаю не только здесь.