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 годится? Или есть что то лучше?
Mikhail
mongo
не совсем то, что нужно. нужно что то типа sqlite, но для key\value
Aleksandr
Boltdb https://github.com/boltdb/bolt
Damian
radis
Andrei 🦉
не совсем то, что нужно. нужно что то типа sqlite, но для key\value
https://github.com/coocood/freecache отличная либа, если не нужен персистенс
Mikhail
спасибо, буду изучать предложенные варианты
Anonymous
https://github.com/coocood/freecache отличная либа, если не нужен персистенс
TODO Support dump to file and load from file Эмм, если сервер отвалиться, то он не сможет восстановить данные после рестора, если это данные сессии не страшно, но если что то более значимое, то не стоит его юзать
Aleksandr
Это кэш, а не хранилище
Andrei 🦉
TODO Support dump to file and load from file Эмм, если сервер отвалиться, то он не сможет восстановить данные после рестора, если это данные сессии не страшно, но если что то более значимое, то не стоит его юзать
простой дамп в файлик - тоже ничего хорошего мы совместно с freecache используем редис как бекенд, куда каждую секунду сбрасываются изменения данных, а при старте приложения - подтягиваем данные из редиса
Anonymous
Он и написал про персистенс
Персистанс как раз и подразумевает дамп на диск. cache это как раз не персистанс
Aleksandr
Персистанс как раз и подразумевает дамп на диск. cache это как раз не персистанс
Именно. Он и предложил либу кэша, если не нужен персистанс
Aleksandr
если нужен кейвалью и не нужен персистенс - почему бы тупо в слайсе/мапе не хранить данные? зачем посредники?
Mikhail
Если я правильно понял значение персистанс, то под мою задачу это нужно.
Anonymous
Именно. Он и предложил либу кэша, если не нужен персистанс
> не совсем то, что нужно. нужно что то типа sqlite, но для key\value Вот что он написал
Aleksandr
в таком случае, снова предлагаю посмотреть в сторону этой либы
Aleksandr
Boltdb https://github.com/boltdb/bolt
Mikhail
данных будет не много, 2-3 записи в минуту
Mikhail
Boltdb https://github.com/boltdb/bolt
этот вариант сейчас рассматриваю
Mikhail
https://github.com/dgraph-io/badger И вот этот
Anonymous
https://github.com/dgraph-io/badger И вот этот
Anonymous
Badger хорош, я на него тоже в свое время обратил внимание. Он быстрее RocksDB который в свою очередь обгоняет по некоторым операциям LevelDB. Кроме того он написан чисто на Go, в отличии от остальных, то есть нет интероп простойки между C/C++ и Go
Anonymous
https://db-engines.com/en/system/Badger%3BRedis
Anonymous
В сравнении с Bolt
Anonymous
А кукую нагрузку он у вас держит ?
Пока в продакшене не использовал, но думаю заменить им Redis
Мерль
🔥 https://play.golang.org/p/-gF1qvNiUOy
Aleksandr
🔥 https://play.golang.org/p/-gF1qvNiUOy
Было бы ок, если бы все буквы правильно отрендерились)
Mikhail
🔥 https://play.golang.org/p/-gF1qvNiUOy
я так понимаю это юмор)
Andrew
В сравнении с Bolt
Как-бы использовать в продакшене я бы пока не стал
Мерль
Список каналов, посвящённых golang: • @gophernews • @golang • @coolgo • @golangjobfeed – вакансии • @go_books – книги • @vmestego – русскоязычные новости
Anonymous
Как-бы использовать в продакшене я бы пока не стал
Ну для тех задач которые нужны он подходит. Нужны просто собственные тесты
Anonymous
Горизонтальная масштабируемость мне сейчас не нужна
Anonymous
В сравнении с Bolt
такие сравнения обычно точно маркетинг
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.
Michael
Им вообще кто то пользуется? Столько его уже пиарат, а народ что то не ценит
Outside Mail.Ru the software is used by a growing number of projects in online gaming, digital marketing, and social media industries.
Vasily
mail.ru, avito, badoo mamba вроде и qrator внедряют в beeline, сбере, ещё в каких-то телекомах
Aleksandr
у нас в одной команде юзают
Anonymous
И как отзываются?
Aleksandr
просто юзают как инструмент. нареканий нет
Заур
Им вообще кто то пользуется? Столько его уже пиарат, а народ что то не ценит
Ещё как пользуются им) очень многие крупные компании юзают.
Anonymous
Российские?
Заур
Просто его использовать сложнее, но кто использует, все довольны
Заур
Российские?
Ну я только с местными сталкивался. Но думаю не только здесь.