Anatoly
Специфика такая, что данные довольно часто меняются
кликхаус тогда (и любая колоночная база) - не самый хороший выбор
Anatoly
Спасибо!
в порнете есть Denisio, у них тоже есть опыт
Ilya
на 1М строк - любой sql
Проблема в очень быстром обновлении
Aleksander
если надо полнотекст и какие-нибудь хитрые вещи типа перколяции или фасетов - то эластик
Anatoly
Проблема в очень быстром обновлении
сколько запросов в секунду?
Vladyslav
а как вы кверите постгрю в f#?
а шо по этому? sqlproviders, dapper, linq2db?
Ilya
сколько запросов в секунду?
На чтение - сотни, на запись - тысячи
Anatoly
На чтение - сотни, на запись - тысячи
но меньше десятков тысяч?
Romɑn
2008 там?
Ilya
Но в среднем не больше 10к
Anatoly
В пике до 100к
выглядит как хелсчеки от девайсов
Aleksander
100к в секунду, но объектов всего миллион.. это метрики какие-то?
Ilya
выглядит как хелсчеки от девайсов
Это во время массового исполнения ордеров - случается не очень часто, но бывает
Anatoly
Это во время массового исполнения ордеров - случается не очень часто, но бывает
в общем, интересная задачка. я бы всё-таки юзал обычную субд, колоночная умрёт от такого потока апдейтов
Ilya
В локах
Anatoly
потому что надо разносить ноды для чтения и записи
Aleksander
а какого рода репорты? что-то хитрое но в рамках одного или небольшой группы портфелей, или глобальные репорты, для которых нужно состояние всех портфелей?
Ilya
Энтерпрайз эдишен нынче на вес золота
Anatoly
Это дорого для sql server
возможно, надо репорты вынести в отдельную базу, но будет задержка.
Anatoly
если задержка - не вариант, то бизнес должен раскошелиться
Ilya
Надо чтобы близко к реалтайму
Anatoly
Сие есть проблема!
я догадался :)
Anatoly
Anatoly
Секунды
пффффффффффф
Anatoly
я за секунды из базы иду в кафку, из кафки в сервер клиента, получаю 200 и записываю в базу.
Anatoly
за 1 секунду
Ilya
за 1 секунду
И в эту одну секунду лочится таблица в которую льют 10к рпс
Anatoly
так что можно поэкспериментировать - лить апдейты портфелей в кафку, а оттуда строить снапшот, например, в постгрес или что там тебе понравится.
Ilya
нет. у меня не лочится.
Грязные чтения? Опасно
Anatoly
и читать уже эту реплику
Anatoly
Грязные чтения? Опасно
у меня вообще innodb и чтения без джойнов в данном случае
Anatoly
А чем стоить снапшот?
приложенька - читает из кафки, пишет в базу
Anatoly
так как это вторая база, она может быть любой (-цена лицензий), она будет с задержкой в сотню мс, если ты затюнишь
Ilya
приложенька - читает из кафки, пишет в базу
Ну то есть получается как бы то же самое - 10к записей на 1к чтений
Anatoly
можно подобрать базу и новую структуру данных под отчёты
Anatoly
и тем самым сделать себе жизнь легче
Anatoly
Ну то есть получается как бы то же самое - 10к записей на 1к чтений
да, это никуда не денется, но у тебя больше нет проблем с ценой СУБД и целостностью данных
Ilya
да, это никуда не денется, но у тебя больше нет проблем с ценой СУБД и целостностью данных
Не совсем понял, на основе Кафки строится одна таблица в которую всё сливается
Aleksander
а точно база нужна? сервис может слушать поток с кафки, в памяти у себя хранить последнее состояние портфелей пользователя и по нему мгновенно всё считать
Ilya
Или ты имеешь ввиду иметь много реплик?
Anatoly
Не совсем понял, на основе Кафки строится одна таблица в которую всё сливается
зачем? ты прочитал сообщение из кафки и сделал всё, что захотел. надо - одну таблицу
Anatoly
надо - сеты и счётчики в редисе раскидал
Anatoly
надо - в монгу всё слил в один документ
Anatoly
так как Sql Server у тебя есть, тебе второй не нужен и ты можешь выбрать любую субд
Ilya
надо - в монгу всё слил в один документ
На каждое из 100к сообщений ?
Anatoly
На каждое из 100к сообщений ?
ну, это, иронию фильтруй иногда
Igor
И в эту одну секунду лочится таблица в которую льют 10к рпс
так postgres не лочит, там версионирование строк, в ms sql кстати тоже можно включить
Aleksander
А группировки, фильтрацию и сортировки придётся писать самому
да вроде всё что ты перечислил - не рокет сайнс)
Aleksander
если данных на конкретного пользователя немного
Aleksander
хоть линком пиши..
Ilya
если данных на конкретного пользователя немного
У тебя есть пользователи, которые видят один и тот же быстро меняющийся набор данных и хотят его смотреть
Aleksander
историю надо учитывать, или только последнее состояние имеет значение?
Ilya
Я же не буду для каждого селекта перегруппировать данные
Aleksander
какой размер стейта? 100 объектов по 100 полей?
Aleksander
у конкретного пользователя
Aleksander
хотя у кого-то могут быть и большие портфели..
Ilya
какой размер стейта? 100 объектов по 100 полей?
Пользователь смотрит скажем на первые 400 записей из таблицы, но может перемотать куда угодно
Ilya
Редис, аероспайк, тарантул выглядят как отличные варианты
Проблема в том, что пользователь хочет группировать данные из этой таблицы
Ilya
А группировать, сортировать, фильтровать в редисе - боль
Ilya
Щас про аэроспайк и тарантул почитаю
Ilya
Там есть sql like запросы?
Ilya
Кажись тарантул - то что надо
Anatoly
Кажись тарантул - то что надо
Только драйвер под дотнет старый
Anatoly
И у меня возможностей им заниматься