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

Коллеги, добрый день! Подскажите по кейсу. Был один маленький кластер, возникла

потребность в сегментировании.

Можно ли сделать без даунтайма?

14 ответов

8 просмотров

Хмм... а подробнее (что есть, что должно получиться и т.п.)? Ну и зачем (почему прямо-таки "потребность"), ради любопытства?

Mikhail-Romashov Автор вопроса
Yaroslav Schekin
Хмм... а подробнее (что есть, что должно получитьс...

Проектирование архитектуры. Одно из требований данные хранить вечно. Хочу предложить, когда БД будет >1 ТБ применить сегментирование. serverIndex =hash(key)%N, N количество серверов. Применить согласованное хэширование Тут предлагают альтернативные БД рассмотреть (Cockroach DB, Yugabyte DB, SPQR, Shardman) https://pgconf.ru/2023/347233

Mikhail Romashov
Проектирование архитектуры. Одно из требований дан...

Ах, ещё и шардирование, а не секцыонирование. Мда. Пока что выглядит как "забудьте, вы потратите много времени, чтобы потом потерять ещё денег и времени".

Про секцыонирование в принцыпе можно подумать... Но, ревльно лимит на основную часть таблицы у нас 32TB. Ужэ явно надо секцыонировать, чтобы не было проблем — когда 15TB. Пора думать о секцыонировании — когдо ну 7TB. Ну 5TB. Вашы >1... Отложыте лучшэ на потом. Ах, да, мне сейчас ещё напомнят, что секцыонирование можэт быть полезно когда есть проблемы с maintainance или когда часть данных хочется выкинуть на дешёвые носители. Но до первого вы вроде не дошли, а второе на вашых объёмах неактуально. И да, по сути вопроса о малом downtime — можно, конечно. Можно создать триггер, заполняющий новые таблицы новыми данными — после этого постепенно перенести туда все старые данные. А потом очень быстро поменять старую структуру таблиц на новую. (Одно переименование таблиц).

Mikhail-Romashov Автор вопроса
Ilya Anfimov
Про секцыонирование в принцыпе можно подумать... Н...

Илья, благодарю. Вы из команды разработки Postgres Pro?

Mikhail Romashov
Проектирование архитектуры. Одно из требований дан...

> Хочу предложить, когда БД будет >1 ТБ применить сегментирование. Почему бы не применить вертикальное масштабирование и репликацию, казалось бы... > Тут предлагают альтернативные БД рассмотреть Кто ж Вам помешает-то. ;) Только всё это чего-то [очень даже] стоит, понимаете (усилий в разработке и поддержке — как минимум)?

Mikhail-Romashov Автор вопроса
Yaroslav Schekin
> Хочу предложить, когда БД будет >1 ТБ применить ...

1.Время выполнения полного бэкап БД 12TB около 20 часов; 2.Однопоточный процесс резервного копирования 3.Есть требование работать на дешевом железе 4.В любом случае ограничение 32ТБ на таблицу 5.Репликации для чтения есть в любом случае 6.На запись 50+k QPS

1. У вас там шпиндельный диск что ли?

Mikhail-Romashov Автор вопроса
Mikhail Romashov
1.Время выполнения полного бэкап БД 12TB около 20 ...

> 1.Время выполнения полного бэкап БД 12TB около 20 часов; > SELECT pg_size_pretty( (12.0 * 1024 * 1024 * 1024 * 1024) / (20.0 * 60 * 60) ); 175 MB (в секунду). Это HDD, что ли? > 2.Однопоточный процесс резервного копирования pgBackRest и т.п. не смотрели? > 3.Есть требование работать на дешевом железе А, теперь понятнее... а шарды как помогут времени выполнения restore (кроме снижения надёжности в разы), если не секрет? ;) Или там данные очень походят под шардирование? > 4.В любом случае ограничение 32ТБ на таблицу Partitioning (уже писали выше). > 5.Репликации для чтения есть в любом случае В этом случае они должны бы быть для High Availability, нет? > 6.На запись 50+k QPS Это в TPS нужно считать... И, опять-таки, сработает только если схема такая, что позволяет иметь достаточно много независимых шардов (а остальное уже определяется исключительно "железом" — у любой ACID СУБД ровно та же прямая зависимость maximum commit rate от IOPS).

Mikhail Romashov
поддержка так говорит

Ну и да, а Вы TCO чисто по "железу" (включая амортизацию и расходы на электроэнергию, размещение и т.п., естественно) и системному администрированию пробовали считать для того (3-4 "больших" сервера) и другого (много "маленьких") варианта пробовали считать (хоть примерно)?

Mikhail-Romashov Автор вопроса
Yaroslav Schekin
Ну и да, а Вы TCO чисто по "железу" (включая аморт...

Это не входит в скоуп моих задач, заказчик сказал mid-range+ СХД покупать сложно и дорого

Mikhail Romashov
Это не входит в скоуп моих задач, заказчик сказал ...

Нда. Как говорит известная народная мудрость — "скупой платит 25%" (или как-то так). ;)

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

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

Может кто встречал такое? Один набор данных, но в одном столбце кодировка нормальная, а в другом ироглифы. Как такое может быть?
Alexander
23
Всем привет. Подскажите, пожалуйста, почему не ищет русскую букву а? А английскую ищет. Полагаю что-то с кодировкой. Но как исправить это? procedure TfrmMain.btnOpenFileClic...
Евгений
7
И к какой архитектуре привязана Java?
Dmitry Olshansky
17
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Как это поможет если в архив положили папку?
Sasha Beep
8
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
Карта сайта