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

Здравствуйте Есть настроенная работающая база в КХ, поделенная на насколько реплицицируемых

шардов. Всё это работает на 3 серверах по схеме, предполагающей бесперебойную работу при выходе из строя одного из серверов.
В базе лежат данные за несколько лет. Их количество, разумеется, постоянно увеличивается. Наиболее важны более-менее свежие данные, за последние 1-2 года. Более старые данные хоть и нужны, но их актуальность сильно ниже.

Существует ли возможность таким образом построить архитектуру кластера, чтобы задействовать в нём несколько серверов с разной скоростью (стоимостью) дисков, чтобы актуальные данные лежали на серверах с быстрыми дисками, а менее актуальные "уходили" на более дешёвые сервера?
Если это реализуемо, то можно ли это сделать на существующей рабочей БД, сделав к ней условную "пристройку" из более дешёвых серверов для архива, либо потребуется для этих целей создать кластер "с нуля"?

Пока даже не понимаю, в какую сторону искать, и реализуемо ли это. Может, кто-то сталкивался с такой задачей и может рассказать, или подскажете, где почитать об этом.

6 ответов

7 просмотров

В одном из проектов реализовано хранение холодных данных в кластере КХ и горячих данных в кластере Redis. Не нашли на лету горячие при запросе - идем в холодные. В рамках КХ можно использовать storage с разными весами и на этом построить логику как вариант.

Rodion-Baskakov Автор вопроса
Alex K
В одном из проектов реализовано хранение холодных ...

Не очень понимаю, как на данных, лежащих в Redis строить расчёты, предполагающие JOIN и runningDifference (у нас это очень много используется) по разным критериям. Идея с весами не даёт ответа на вопрос, как автоматически помещать старые данные в сервера с низкими весами 🙁 Пока пришла идея хранить всё в условно "медленном" кластере, а на быстрых дисках создать материализованные view с порогом актуальности данных по времени события и в приложении при построении запросов учитывать этот порог: если данные нужны "за порогом" (новые + старые или только старые) запрашивать их из кластера, из распределённой таблицы. Если же требуются свежие данные, то запрашивать их из view. Но ни разу с таким не работал, это пока на уровне догадок и предположений.

Rodion Baskakov
Не очень понимаю, как на данных, лежащих в Redis с...

Предагрегация по типовым запросам решает конкретно в этом проекте, а в остальном готового решения наврядли найдете, это большая работа по архитектуре

Rodion-Baskakov Автор вопроса

А view может решить эту задачу?

Rodion Baskakov
А view может решить эту задачу?

Как вы это представляете ? Я не очень вижу как

Rodion-Baskakov Автор вопроса
Alex K
Как вы это представляете ? Я не очень вижу как

Ну, примерно как описал выше в сообщении: создаём view из распределённой таблицы с критерием, что в этом представлении данные не старше min_event_timestamp. Дальше уже это представление реализует логику актуальности данных, а приложение запрашивает данные из этого представления. Может, я как-то неправильно себе механизм представляю?

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Карта сайта