|
массовый DELETE и репликация
|
|||
---|---|---|---|
#18+
Всем привет. Кто может подсказать, как боретесь и решаете такую задачу: Массовый delete из таблицы. Начинается бешенная генерация wal, потоковая репликация не успевает пережевать walы и отстает гораздо больше, чем идет удаление. Какие приемы здесь возможны? Удалять процедурой, пачками с задержкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 12:38 |
|
массовый DELETE и репликация
|
|||
---|---|---|---|
#18+
Удалять частями. Или, если применимо, удалять вообще целиком таблицу. Данные которые удалять не нужно - перенести в другую табличку идентичной структуры, затем переименовать её в старую. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 12:45 |
|
массовый DELETE и репликация
|
|||
---|---|---|---|
#18+
kliff Всем привет. Кто может подсказать, как боретесь и решаете такую задачу: Массовый delete из таблицы. Начинается бешенная генерация wal, потоковая репликация не успевает пережевать walы и отстает гораздо больше, чем идет удаление. Какие приемы здесь возможны? Удалять процедурой, пачками с задержкой? вариантов много 1)действительно удалять пачками с задержкой и контролем лага репликации (как раз можно исходя из лага и задержку считать) 2)если удаляется 90% таблицы - то выгоднее что не надо удалять перенести в новую таблицу а старую дропнуть далее если у вас эта задача регулярная а не разовая то стоит следующие вещи изучить 1)нельзя ли сделать партиционирование таблицы так чтобы просто удалять ненужные партиции целиком (это дешево по wal) вместо удаления данных 2)понять почему репликация отстает вариантов тут 3ре на самом деле а)не хватает сети на передачу wal потока (любят некоторые базу на 1gbit сетку поставить и/или c 100+ms сетевой latency между мастером и репликой) б)не хватает дисков на запись wal на реплике (бывает если дисковая система на реплике перегружена или слабее чем на мастере) в)не хватает CPU на проигрывание wal на реплике (бывает если CPU по производительности на 1! ядро на реплике заметно слабее чем на мастере) самое вероятное по моей практике а) для решения между а-б-в - pg_stat_replication view на мастере используйте там все видно -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 16:33 |
|
|
start [/forum/topic.php?fid=53&msg=40005408&tid=1994441]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 288ms |
0 / 0 |