
dmitriy
21.11.2016
11:04:26
на репликах нет висящих транзакций?

Maxim
21.11.2016
11:04:36
на репликах вообще ничего нет
приложения остановлены
там только моя psql-консоль

Google

Maxim
21.11.2016
11:05:07
можно в принципе и реплики остановить

dmitriy
21.11.2016
11:05:16
в pg_stat_activity?
можете, но слоты дропните тогда

Maxim
21.11.2016
11:05:35
postgres=# select * from pg_stat_activity;
-[ RECORD 1 ]----+--------------------------------
datid | 12409
datname | postgres
pid | 10306
usesysid | 10
usename | postgres
application_name | psql
client_addr |
client_hostname |
client_port | -1
backend_start | 2016-11-21 10:58:03.446529+00
xact_start | 2016-11-21 11:05:26.843328+00
query_start | 2016-11-21 11:05:26.843328+00
state_change | 2016-11-21 11:05:26.843331+00
wait_event_type |
wait_event |
state | active
backend_xid |
backend_xmin | 2784406863
query | select * from pg_stat_activity;
postgres=#
вот реплика

dmitriy
21.11.2016
11:07:07

Maxim
21.11.2016
11:07:16
а вторую выключили

dmitriy
21.11.2016
11:07:33
ну вот выключили, а слот остался
а там же active = true в выводе

Maxim
21.11.2016
11:08:28
postgres=# select * from pg_replication_slots;
-[ RECORD 1 ]-------+--------------
slot_name | biglion
plugin |
slot_type | physical
datoid |
database |
active | f
active_pid |
xmin | 2782361413
catalog_xmin |
restart_lsn | 401F/31B00000
confirmed_flush_lsn |
-[ RECORD 2 ]-------+--------------
slot_name | db02
plugin |
slot_type | physical
datoid |
database |
active | t
active_pid | 6782
xmin | 2784406866
catalog_xmin |
restart_lsn | 404B/C3C016D8
confirmed_flush_lsn |

Google

Maxim
21.11.2016
11:08:52
сейчас только один активный слейв

dmitriy
21.11.2016
11:09:21
почему тут такой маленький xmin? xmin | 2782361413
причем на обеих

Maxim
21.11.2016
11:09:50
?

dmitriy
21.11.2016
11:10:28
txid_current_snapshot(); точно с того мастера?

Maxim
21.11.2016
11:10:48
других нет

dmitriy
21.11.2016
11:12:11
а select pg_current_xlog_location(); на мастере?

Maxim
21.11.2016
11:12:50
pg_current_xlog_location
—------------------------
404D/78C96000

dmitriy
21.11.2016
11:14:59
ну они как бы отстают
нехило так
или вы давно уже потушили их?

Петр
21.11.2016
11:16:25
Не так много

Maxim
21.11.2016
11:17:08
тот который потушен отстает "ожидаемо"
его зачем-то выключали
а живой должен не сильно отставать

dmitriy
21.11.2016
11:17:27
# select '404D/78C96000'::pg_lsn - '404B/C3C016D8'::pg_lsn;
?column?
------------
7332251944
(1 row)

Maxim
21.11.2016
11:29:58
INFO: vacuuming "public.billing_invoices"
ERROR: canceling statement due to statement timeout
ну класс

Evgeniy
21.11.2016
15:43:03
мужики, что есть кроме редиса для задачи
1. вставить пару юзер, валью
2. получить ранк по юзеру
3. получить диапазон юзеров по диапазону ранков
?

Fike
21.11.2016
15:43:40
что такое ранк по юзеру?

Evgeniy
21.11.2016
15:44:04
rank() over (order by value desc)

Google

Evgeniy
21.11.2016
15:44:26
даю user_id = 1 получаю в ответ rank = 1000

Paul
21.11.2016
15:45:21
что это за число?

Evgeniy
21.11.2016
15:45:38

Fike
21.11.2016
15:46:06
я тупой и не первый час на работе, не соображаю ничего. что именно подразумевается под ранком в функциональном плане?

Nikita
21.11.2016
15:47:16
я думаю проще тут почитать http://redis.io/topics/data-types там "Sorted sets"

Evgeniy
21.11.2016
15:47:31
ну это же рейтинг людей по value

Nikita
21.11.2016
15:48:14
ты помоему не можешь нормальным языком объяснить что ты хочешь, я сделал это за тебя :)

Fike
21.11.2016
15:48:32
просто кастомный атрибут со значением?

Nikita
21.11.2016
15:48:52
ну по сути это занчение по которому идет сортировка

Evgeniy
21.11.2016
15:49:02
кастомный атрибут да

Fike
21.11.2016
15:49:56
memsql скорее всего. никогда не использовал, про гарантии ничего не знаю, должно быть нормально.

Evgeniy
21.11.2016
15:50:04
ггг

Nikita
21.11.2016
15:50:20
т.е. по нему все соритурются и выбираются с ранком таким-то. аналог
with q as (
select rank() over (bla-bla) from ..
) select * from q where rank in (bla-bla)

Fike
21.11.2016
15:50:26
если не нужны ответы в пределах миллисекунд, выбросить вообще все и использовать обычное хранилище

Evgeniy
21.11.2016
15:50:59
ясно понятно

Nikita
21.11.2016
15:52:10
еще есть redis_fdw всегда :))

Fike
21.11.2016
15:53:15

Google

Павел П.
21.11.2016
19:09:00
извиняюсь за глупый вопрос, курю документацию, но так и не понял почему json_each(json_field) выдает мне record, а не тоже джейсон.
Как заставить блоки первого уровня джейсона выводиться так же в нем?
версия 9.3

raksita
21.11.2016
19:12:59
У тебя json array?

Павел П.
21.11.2016
19:13:56
нет

raksita
21.11.2016
19:15:16
Json_array_elements можно

Павел П.
21.11.2016
19:18:28
ERROR: cannot call json_array_elements on a non-array

raksita
21.11.2016
19:18:29
Или row_to_json к результату json_each_text

Павел П.
21.11.2016
19:19:31

Admin
ERROR: S client not available

raksita
21.11.2016
19:19:32
У меня чаще всего именно он, но json array <> json[]

Павел П.
21.11.2016
19:20:44
просто не очень понятна логика почему из джейсона на выходе record вместо него же

Darafei
21.11.2016
19:28:39
https://www.postgresql.org/docs/9.6/static/functions-json.html
потому что на выходе таблица key | value
где key - text, a value - json

Павел П.
21.11.2016
19:33:01
Ага, сложилось) спасибо

blkmrkt
21.11.2016
21:38:01
vw=# VACUUM FULL profile_chunks;
ERROR: could not extend file "base/16385/67754211.120": wrote only 4096 of 8192 bytes at block 15844765
HINT: Check free disk space.
Что поделать? Внезапно сожралось много места за ночь, остановил после того как получил алярм что занято 97% диска ?
на SO рекомендуют сделать бекап/рестор, но мне некуда...

Evgeniy
21.11.2016
21:40:13
:(

Google

blkmrkt
21.11.2016
21:41:42
нельзя никак заставить его писать кусками?

Evgeniy
21.11.2016
21:42:10
вакуум фул берет всё хорошее из таблички и пишет в другой файлик
потом дропает старый
так что нужно место на копирование всего хорошего

blkmrkt
21.11.2016
21:42:55
офигеть
а просто вакум?

Evgeniy
21.11.2016
21:43:53
а он только пометит блоки в файликах как свободные на реюз

blkmrkt
21.11.2016
21:44:14
охренеть, вот это дела

Evgeniy
21.11.2016
21:44:32
да, не было печали — выбрали постгрес на проект

blkmrkt
21.11.2016
21:53:31
а если я начну чистать бд вручную, например дропая ненужные туплы, место тоже не освободится под vacuum full?

Darafei
21.11.2016
21:54:00
а как ты дропнешь тапл в mvcc? :)

Аггей
21.11.2016
21:54:06
pg_compactor тут рекомендовали
Думаю для начала им стоит

Evgeniy
21.11.2016
21:54:33
думаю сперва стоит понять как он работает

blkmrkt
21.11.2016
21:54:55

Аггей
21.11.2016
21:55:16
Ну я теоретически знаю )

blkmrkt
21.11.2016
21:56:15
каков примерно шанс что случится обосрамс с pg_compactor?)

Evgeniy
21.11.2016
21:56:22
это очень круто, потому что документации как он работает нет

blkmrkt
21.11.2016
21:57:09
? README.md Added Gitter badge a year ago

Evgeniy
21.11.2016
21:57:55
2к строк на перле без комментариев
заебись

Аггей
21.11.2016
22:00:06
Идея проста - проводим вакуум - помечаем "дырки" под реюз. Компактор производит обновления записей находящихся в "конце" таблицы... они перетекают в дырки... Отрезаем вакуумом с конца пустоту... и так пока дыры не кончатся
https://habrahabr.ru/post/169939/