Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Zabbix + Postgresql + table partitioning
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Столкнулся со следующей проблемой: Есть БД zabbix 3.2, в которой сделано партицирование таблиц . Периодически начинается потеря данных, в логах появляются следующие сообщения: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Подскажите, пожалуйста: в чем может быть косяк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 10:08 |
|
||
|
Zabbix + Postgresql + table partitioning
|
|||
|---|---|---|---|
|
#18+
pernatius, Смотреть функцию `trg_partition()` и думать, почему такая няшка получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 11:29 |
|
||
|
Zabbix + Postgresql + table partitioning
|
|||
|---|---|---|---|
|
#18+
vyegorovpernatius, Смотреть функцию `trg_partition()` и думать, почему такая няшка получается. дык у тС битым текстом написано, почему так получается. потому что " IF NOT EXISTS " кляуза реализована в пж через ж (хорошо, что не через "П") и в конкурентной среде имеем например% Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. т.е. я всегда выбрасываю в своих триггерах "IF NOT EXISTS" -- т.к. мне ещё кучу обвеса одной транзой создавать, и лучше вылетать по ошибке тут, чем много раз налетать на ошибки дублирования подчиненных объектов (чеков, индексов, и т.п.). и сам обрабатываю ошибку "тейбл олреди екзистс" и прочие "дубликейт обжект". --- возвращаясь в ветку вставки такого триггера. ЗЫ а само создание всегда выношу в автномию (дблинк) -- т.к. оно дорогое -- откатываться дорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 11:53 |
|
||
|
Zabbix + Postgresql + table partitioning
|
|||
|---|---|---|---|
|
#18+
qwwq, думаецца оно там унутре организовано через ~try select некое_unique from pg_type for update (неонка такая) а надо бы дообвесить xact адвайзори локом хеша от hash("schema"."name") -- для полной сериализации доступа к абстракции "schema"."name". но. думаю, вряд ли сделают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 12:07 |
|
||
|
Zabbix + Postgresql + table partitioning
|
|||
|---|---|---|---|
|
#18+
Т.е., насколько я понял, есть варианты: убирать триггеры партицирования и реализовывать через внешний скрипт; переписывать триггер, убирая из него "CREATE TABLE IF NOT EXISTS"(делать проверку на существование партиции); Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 13:27 |
|
||
|
Zabbix + Postgresql + table partitioning
|
|||
|---|---|---|---|
|
#18+
pernatiusТ.е., насколько я понял, есть варианты: убирать триггеры партицирования и реализовывать через внешний скрипт; переписывать триггер, убирая из него "CREATE TABLE IF NOT EXISTS"(делать проверку на существование партиции); Верно? не совсем. надо просто добавить обработку ексепшена после "CREATE TABLE IF NOT EXISTS", а проверку существования в системных до попытки криейта никогда не вредно сделать -- она уменьшит число проходимых "exception when", и , сл--но, скорость прироста счетчика транзакций (кол-во сейвпойнтов -- т.к. в очень больших системах это критично для предотвращения перегрузки по вакуум--фризу -- т.е. предотвращения враперраунда, особенно если через такой триггер проходят вставки больших пачек по 100--1000 рядов на стейтмент) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2016, 14:49 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=83&tid=1996893]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 157ms |

| 0 / 0 |
