@pgsql

Страница 390 из 1062
Anton [Mgn, az09@osm]
05.07.2017
11:13:50
жирную свинью вы себе с этим типом данных подложили

Fike
05.07.2017
11:21:17
uuid срач го

Darafei
05.07.2017
11:53:59
**похожие** в контексте uuid?! нунезнаааю
похожие в контексте order by id, ts

Google
Darafei
05.07.2017
11:55:17
в этом контексте хоть text

Denis
05.07.2017
11:56:28
а вообще, насколько сложно научить постгрес вставлять в те странички, в которых уже есть похожие значения?
Хотите безумную (и скорее всего неработоспособную) идею? Можно нагенерировать пустых записей под ожидаемое количество событий для каждого пользователя в рамках интервала. Так как они будут созданы пачкой, то будут располагаться близко на странице. А потом по мере происхождения событий эти пустые заглушки апдейтить. Но это на правах теории, в практике я не знаю, даст ли это что-то кроме головной боли

Darafei
05.07.2017
11:58:09
проблема в том, что у события не счётчик, а таймстемп - мы не знаем, какое событие патчить, без заглядывания в соседей

а без этого - похоже на fillfactor

кажется, что если научить постгрес не писать юзеров с разным id на одну страницу, получится то, что нужно

Denis
05.07.2017
12:01:13
кажется, что если научить постгрес не писать юзеров с разным id на одну страницу, получится то, что нужно
Вряд ли это получится без капитального изменения кода. Ещё же есть внутристраничная очистка. Сейчас постгрес пишет просто в свободное место, а так он должен помнить карту паользователей по страницам

Anton [Mgn, az09@osm]
05.07.2017
12:01:21
кажется, что если научить постгрес не писать юзеров с разным id на одну страницу, получится то, что нужно
еще раз. при поиске какого-то евента требуется что бы "соседние" оказывались в озу? или я не догоняю всего действа

Anton [Mgn, az09@osm]
05.07.2017
12:02:04
где просадка и за счет чего хотите получить выигрыш?

Darafei
05.07.2017
12:03:20
данные на записи пишутся как order by ts, нужно вытаскивать по id=N and ts between, выигрыш за счёт более локального расположения id

Denis
05.07.2017
12:04:11
А сколь большие поля идут после id и ts? Покрывающий индекс не вариант?

Google
Darafei
05.07.2017
12:04:58
горка float'ов и короткий text

Denis
05.07.2017
12:05:59
горка float'ов и короткий text
Так может их в jsonb и покрывающий индекс по ts,id и jsonb?

Darafei
05.07.2017
12:06:50
ts, id, float1, float2, float3, ... , text1 не будет аналогичен?

Denis
05.07.2017
12:08:04
Кроме религиозного ужаса перед индексом по более чем четырём колонкам. Но по идее - одно и то же

Alex
05.07.2017
12:14:57
а вообще, насколько сложно научить постгрес вставлять в те странички, в которых уже есть похожие значения?
сделать типа кластерного индекса пожоже. ну то есть новый тип хранилища для и пг ну и заодно и новую бд вслед за этим %)

Хотите безумную (и скорее всего неработоспособную) идею? Можно нагенерировать пустых записей под ожидаемое количество событий для каждого пользователя в рамках интервала. Так как они будут созданы пачкой, то будут располагаться близко на странице. А потом по мере происхождения событий эти пустые заглушки апдейтить. Но это на правах теории, в практике я не знаю, даст ли это что-то кроме головной боли
адейты не факт что лягут в туже страницу даже при наличии HOT. С пустым место у пг тож не все так гладко. при высокой нагрузке на таблицу данные будут скапливаться в концк даже при включенном автовакууме. как раз тут исследовали это безобразие. думаем как поправить такое поведение

Dmitry
05.07.2017
12:19:45
советы ведущих собаководов, использовать базу вместо pg

:)

Wom
05.07.2017
12:46:49
alter table set tablespace на ходу можно делать?

Dmitry
05.07.2017
12:55:45
-s, —tablespace=TBLSPC move repacked tables to a new tablespace -S, —moveidx move repacked indexes to TBLSPC too

Wom
05.07.2017
12:57:20
хм

спасибо

raksita
05.07.2017
12:59:04
можно и без pg_repack, но требует ACCESS EXCLUSIVE

Wom
05.07.2017
13:00:26
он сам лок сделает?

raksita
05.07.2017
13:03:13
да

Dmitry
05.07.2017
13:03:29
raksita
05.07.2017
13:03:41
ещё можно NOWAIT в команду добавить

это не online :D
ну да, зависит от нагрузки же

Google
Wom
05.07.2017
13:04:50
ещё можно NOWAIT в команду добавить
оно же вылетит, если не сможет залочить

получается pg_repack сам делает alter table ?

raksita
05.07.2017
13:05:55
оно же вылетит, если не сможет залочить
да, это чтобы не ждать под нагрузкой

Wom
05.07.2017
13:07:35
я лучше подожду пока он лок получит и начнёт переносить

Alex
05.07.2017
13:16:17
А можно поподробнее про скапливание в конце? То есть постгрес статистически чаще выбирает свободные странички с большими адресами?
автовакуум не успевает почистить старые версии и сегменты таблиц начинают расширятся с конца куда ложатся апдейты , поэтому происходит bloating таблиц равновесное состояние достигается , но оно непредсказуемо изза поведения автовакуума. надеятся на какое либо упорядоченное расположение данных не получится

Alex
05.07.2017
13:25:35
patroni при запуске ругается : patroni.exceptions.PostgresConnectionException: "'Too many retry attempts'" шаблон : https://pastebin.com/TM2s244a есть идеи ? Я насколько помню вы используете патрони Игорь

запускаю патрони так : patroni /etc/patroni/postgres0.yml

Alex
05.07.2017
13:28:37
Вообще это ожидаемое поведение в истории, когда автовакуума не хватает ресурсов на почистить. В таком случае да, боль.
у нас появились некоторые соображения в этом вопросе. Пока мы в PgPro исследования проводим и ведем работу в направлении улучшения данной ситуации. следите за анонсами =)

Alex
05.07.2017
13:30:45
info@postgrespro.ru %)))

Alex
05.07.2017
13:36:33
Игорь убрал все равно таже ошибка , даже закоментировал users: admin: password: admin options: -createrole -createdb все равно не завелся, в namespace что записать ?

Игорь
05.07.2017
13:37:55
корень (название директории), куда будут складываться имена кластеров. У тебя похоже postgresql не запускается а не patroni. Смотри логи короче, что как маленький

Алексей
05.07.2017
13:39:49
День добрый. Подскажите какая причина данной ошибки Npgsql.PostgresException: 42883: operator is only a shell: text + character varying

Alex
05.07.2017
13:40:52
Игорь в моем случае корень будет /etc/patroni/ ? У меня yml там лежит

Alex
05.07.2017
13:44:27
Игорь спасибо,постараюсь больше не беспокоить

Igor
05.07.2017
14:59:48
Добрый день. Уткнулся в извечную проблему - не могу до конца установить PostgreSQL на Windows 7 32-bit (для учебного проекта). Ошибки - точь-в-точь как здесь: https://stackoverflow.com/questions/30689251/failed-to-load-sql-modules-into-the-database-cluster-during-postgresql-installat Пробовал приведенные в этом треде методы - создать админ-пользователя и установить из-под него - симптомы повторяются. Быть может здесь есть у кого-то надежный метод решения проблемы?

Сергей
05.07.2017
15:01:12
заюзай докер/поставь линукс в виртуальную машину

Google
Pavel
05.07.2017
15:05:44
да, лучше используй докер

Igor
05.07.2017
15:07:52
Эх... Я надеялся на какие-то более "нативные" методы. Ну... ладно. Буду пытаться дальше.

Pavel
05.07.2017
15:08:57
Докер есть для винды

Постгрес запускается в одну команду

blkmrkt
05.07.2017
15:13:58


Semen
05.07.2017
15:16:15
Типа всё запустить или выделенный/"под курсором" запрос.

Admin
ERROR: S client not available

blkmrkt
05.07.2017
15:17:07
я не выделяю ничего, оно само это делает

Semen
05.07.2017
15:18:47
Допиши ещё один запрос, после ;, и запусти стейтмент может тогда будет нагляднее что оно выделяет.

Darafei
05.07.2017
15:19:52
он ещё и сложные запросы по внутренностям разбирает, очень удобно

дебажишь cte, потом дебажишь всё остальное :)

Игорь
05.07.2017
15:36:11
вангую какой-то кривопуть
Ну собственно путь оказался по type psql такой: /usr/local/pgsql/bin/pgsql

Alex
05.07.2017
15:39:28
Ребятушки, хелп! Благодаря стараниям нашего тимлида, постоянно килявшего процессы вакуума, счетчик транзакций переполнился. В сингл-моде запустил базу, при запуске выделил 0 гигов памяти вот таким вот образом: postgres --single -D /var/lib/pgsql/9.5/data/ -S 80GB my_fucking_db Но вакуумится чет безумно долго. База весит 350 гигов. Есть ли методы, чтоб ускорить?

если запускать vacuum full, то хотя бы прогресс виден, если просто vacuum, то в стдауте тишина, хотя рекомендуют просто вакуум для скорости вроде как. Постгрес 9.5

Mike Chuguniy
05.07.2017
15:46:56
350 гиг? А на каком железе?

Alex
05.07.2017
15:48:47
HDD 2x2Tb, RAID1, 120 GB RAM, Xeon(R) CPU E5-1650 v3 @ 3.50GHz

Там говноархитектура, огромные таблицы, которые все никак не могут партиционировать и мне не дают, приход вакуума в них==пиздец. А тут еще накопилось

Alex
05.07.2017
15:51:19
ох, сомневаюсь

т.е., я сделал все правильно и хитростей тут никаких нет? ну кроме переноса на ссд и прочего

Google
Andrey
05.07.2017
15:52:18
Сколько уже по времени вакуум работает? На таком железе 350 гиг база за пару часов поднялась бы.

Mike Chuguniy
05.07.2017
15:52:30
HDD 2x2Tb, RAID1, 120 GB RAM, Xeon(R) CPU E5-1650 v3 @ 3.50GHz
1-й рейд. На запись. Способов ускорить нет и не будет. Поди ещё и диски десктопные о 5400 rpm?

Alex
05.07.2017
15:52:37
часа 4

raksita
05.07.2017
15:52:44
сколько потоков вакуума запускаете?

Alex
05.07.2017
15:52:55
синглмод, говорю же

Mike Chuguniy
05.07.2017
15:53:03
Особенно, если индексов есть и немало.

Mike Chuguniy
05.07.2017
15:56:17
В любом случае иных вариантов, кроме как сидеть и ждать нет и не будет.

raksita
05.07.2017
15:57:13
ну можно увеличить maintenance_work_mem например

Alex
05.07.2017
15:58:08
postgres —single -D /var/lib/pgsql/9.5/data/ -S 80GB my_fucking_db

80 гигов, куда уж увеличивать

raksita
05.07.2017
15:58:48
это не тот параметр

Alex
05.07.2017
15:59:07
пардон, точно

это ж work-mem

ща попробую

raksita
05.07.2017
16:03:15
насколько вижу, больше 10 Гб ставить не рекомендуют https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres.html

Страница 390 из 1062