виниле будет только 1 спейс.
По полям/индексам-
owner+timestamp, составной уникальный
owner - uuid.bin(), индекс
bucket_id -unsigned, индекс
timestamp - unsigned, индекс
data - map(600 байт в среднем)
Что приходит в голову: как вариант сбрасывать data прямо из сокета не делая inflate(+1 поле в тапл: инфа о словаре)— тогда поле data будет около 120 байт, но пока в размышлениях. Можно было бы заюзать avro и жать до 80-90, но данные не особо поддаются описанию(на самом деле в лом). В общем уменьшить прирост, но прирост будет в любом случае и по этому проблема не решается. Делать обрезку старых записей не желательно, имхо данные нужны, но можно делать их обработку и чистку с усреднением. Проблема решаема масштабированием и будет решаться, но все же хочется масштабироваться поменьше).
В общем вопрос вот какой: как ведет себя винил на операциях вставки, выборки, апдейта, удаления——на 5гб и на 200гб к примеру. Условия—-секунду вставляется 100- 400 таплов, отматываем на год вперед—- 900 новых таплов в секунду, в течении 100 секунд выборка неторопясь по итератору 90000 записей: обработка 90000, удаление 19999 из них и апдейт 1.
Почему задаю вопросы— хочу понять стоит ли заморачиваться над максимальным сжатием данных(целесообразность). Стоит ли заниматься обработкой старых данных для снижения их общего объема—может получиться, что выборка+удаление скажутся на общих задержках больше, чем рост объема данных.
4 индекса на виниле? есть шанс, что с ростом данных деградация будет фатальная
Обсуждают сегодня