
Anton [Mgn, az09@osm]
09.04.2017
06:16:21

Denis
09.04.2017
06:18:27
Спасибо!

Darafei
10.04.2017
06:10:11

Google

Pavel
10.04.2017
07:48:08
Огонь

Lev
10.04.2017
08:07:18
ещё один слоник в тему http://www.redbubble.com/people/Georube/shop?asc=u

Айтуар
10.04.2017
08:09:10

Alex
10.04.2017
10:10:19
Кто-нибудь использовал mix вариант потоковой репликации? Интересует вот эта часть. PostgreSQL allows the application developer to specify the durability level required via replication. This can be specified for the system overall, though it can also be specified for specific users or connections, or even individual transactions.
For example, an application workload might consist of: 10% of changes are important customer details, while 90% of changes are less important data that the business can more easily survive if it is lost, such as chat messages between users.
На сколько я понял на 1 slave можно использовать и синхронную и асинхронную ?

Игорь
10.04.2017
10:22:09
Имеется ввиду, что при синхронной реплике можно выбирать между значениями synchronous_commit, если не ошибаюсь можно сказать в транзакции synchronous_commit off и для этой транзакции будет асинхронное поведение

Igor
10.04.2017
14:44:27
Коллеги, у меня есть кластер pg на patroni, подскажите, пожалуйста, какое лучше использовать решение в качестве прокси на клиентах, которое умеет определять мастера и держать пул коннектов.
Спасибо.

Ascandar
10.04.2017
14:49:16
никто не сталкивался с раздудым toast в постгресе?
у меня 1С медленно работает из-за этого и lost connection появляются

Sergey
10.04.2017
14:53:31
А что такого 1C хочет хранить в TOAST в Postgres'е? По моему опыту 1C старается избегать любого использования TOAST

Ascandar
10.04.2017
14:56:37
таблица config раздулась до 512 мб
там есть бинарная колонка

Sergey
10.04.2017
14:58:40
Там действительно есть столько данных?

Ascandar
10.04.2017
14:59:19
там всего 20 тыс строк

Google

Ascandar
10.04.2017
14:59:30
вот бы найти эту колонку. которая жрет стока
точнее строку

Denis
10.04.2017
15:03:09
А если не секрет, что у вас ща конфигурация 1С? Я тоже сильно удивлён использованием Toast у неё

Ascandar
10.04.2017
15:08:28
Управление торговлей, редакция 11.2 (11.2.3.185)
платформа 8.3

Sergey
10.04.2017
15:13:14
Вопрос что с этим потом делать

Denis
10.04.2017
15:15:02
А вы нам покажите, какой запрос болеет на этой таблице и ее схему.

Ascandar
10.04.2017
15:15:45
2017-04-10 15:26:09 MSK FATAL: connection to client lost
2017-04-10 15:26:09 MSK STATEMENT: SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Config WHERE FileName = $1 ORDER BY PartNo
вот в логах

Игорь
10.04.2017
15:16:08

Denis
10.04.2017
15:16:25
Можно еще \d config

Ascandar
10.04.2017
15:17:11
filename | mvarchar(128) | NOT NULL
creation | timestamp without time zone | NOT NULL
modified | timestamp without time zone | NOT NULL
attributes | integer | NOT NULL
datasize | bigint | NOT NULL
binarydata | bytea | NOT NULL
partno | integer | NOT NULL
╚эфхъё√:
"config_pkey" PRIMARY KEY, btree (filename, partno)

Igor
10.04.2017
15:18:14

Игорь
10.04.2017
15:18:27
да. С проверкой тоже 200

Denis
10.04.2017
15:19:02
а можно еще eplain analyze SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Config WHERE FileName = $1 ORDER BY PartNo, где вместо $1 - значени из лога (оно должно быть)

Igor
10.04.2017
15:19:05
а как проверяется слейв горячий стандбай или тёплый стандбай?

Игорь
10.04.2017
15:19:16
никак. Лучше цель скажи

Sergey
10.04.2017
15:19:28
Можно еще \d config
Вроде кроме binarydata там раздуваться нечему.
Отсортируйте по длинне binarydata

Igor
10.04.2017
15:21:37
никак. Лучше цель скажи
Допустим, я хочу чтобы писалось в мастер, а читаться могло с hot standby, но не читать с реплики, которая не является горячим стандбаем

Google

Denis
10.04.2017
15:21:39

Anatoliy
10.04.2017
15:22:07
Это о синхронности репликации, я так понимаю

Игорь
10.04.2017
15:22:14

Igor
10.04.2017
15:22:17

Ascandar
10.04.2017
15:22:48

Игорь
10.04.2017
15:23:47

Igor
10.04.2017
15:24:20

Sergey
10.04.2017
15:24:23

Igor
10.04.2017
15:24:36
читать с реплики не хочется, т.к. вдруг там данных не окажется и она отстанет
а горячий стандбай имеет все данные как на мастере

Игорь
10.04.2017
15:25:03

Anatoliy
10.04.2017
15:25:28
SELECT pg_is_in_recovery(); это поможет узнать про реплику. А про хот стендбай это надо снимать метрики таймлага, скорее всего.

Игорь
10.04.2017
15:25:54

Igor
10.04.2017
15:26:14

Игорь
10.04.2017
15:27:02
я спрашивал про wal_segment и слоты)
В конфигурации Patroni у тебя не может быть холодного ("теплого") standby. Там только физическая репликация. Может ты путаешь с синхронным типом репликации. Тогда да, синхронная реплика у тебя одна

Denis
10.04.2017
15:27:46
это в логах БД? я чего то там не увидел
то есть в логах postgresql у вас просто $1, а значение не фигурирует? попробуйте в postgresql.conf выставить #log_min_duration_statement = 100, сделать service postgresql reload и попробовать повторно выполнить запрос, который роняет все

Ascandar
10.04.2017
15:28:41
попробую
наверно завтра сделаю

Igor
10.04.2017
15:29:19

Denis
10.04.2017
15:29:45

Google

Admin
ERROR: S client not available

Igor
10.04.2017
15:29:48
вот мне хочется определять синхронную реплику и слать селекты только на неё )

Игорь
10.04.2017
15:35:22

Igor
10.04.2017
15:53:41

Anton
10.04.2017
16:37:04
У stolon такое же поведение, но и там нет адекватного master-slave разделения. Прокси родной прикидывается только до мастера. R/o реплику не прокидывает

Alexander
10.04.2017
18:35:23
как селектом из такого значения
'[{"foo":1,"bar":[{"buzz":11},{"buzz":12}]},{"foo":2,"bar":[{"buzz":21},{"buzz":22}]}]'::jsonb
получить
'[{"buzz":11},{"buzz":12},{"buzz":21},{"buzz":22}]'::jsonb
?

Max
10.04.2017
19:35:15
with t as(
select '[{"foo":1,"bar":[{"buzz":11},{"buzz":12}]},{"foo":2,"bar":[{"buzz":21},{"buzz":22}]}]'::jsonb as js
)
select (js->0->'bar') || (js->1->'bar')
from t

Alexander
10.04.2017
19:41:14
а при переменном количестве элементов в массиве? и во внешнем и во внутренних.
В таблице есть колонка с такого рода данными. Нужно сделать выборку всех строк из таблицы с таким преобразованием.

Max
10.04.2017
19:43:44
как одним запросом не знаю, да и с json не часто работаю. Первое что в голову приходит - процедура на psql с использованием таких функций как json_array_length и т.п. Если кто знает как иначе то сам рад буду узнать.
а так там много инетерсных функций есть json_to_record и т.п. надо время подумать ) которого нет сейчас

Darafei
10.04.2017
19:46:46
не нужно писать процедуры на табличные преобразования
разверните в табличку в подзапросе, достаньте что надо и сверните обратно

Max
10.04.2017
20:04:30
а задача как звучит. Выбрать все элементы массивов последнего уровня влоеженности?
сформулируйте задачу )

Alexander
10.04.2017
20:15:29
В таблице есть колонка типа jsonb. В которой json-массив. Элементы этого массива объекты, в которых _могут_ быть ключи 'bar' со значениями - массивами однородных объектов. [{"buzz":11},{"buzz",12},...]
Нужно сделать выборку из таблицы в которой все эти однородные объекты вытащены в один плоский массив построчно.
Пример того что есть, и что надо, дан выше.
Буду попробовать сделать с подзапросом в котором разворачивание и сворачивание.
select array_agg(ee)
from ( select jsonb_array_elements(e->'bar') as ee
from ( select jsonb_array_elements(
'[{"foo":1,"bar":[{"buzz":11},{"buzz":12}]},{"foo":2,"bar":[{"buzz":21},{"buzz":22}]}]'::jsonb
) as e ) as t
) as tt;


Anton
10.04.2017
23:30:16
Всем привет! Помогите, пожалуйста, с настройкой sphinx
Сейчас переезжаем с mysql на postgresql, в таблице 50 миллионов записей, есть текстовое (varchar) поле, по которому нужно сделать поиск. В обоих базах построил нужные индексы для фуллтекста, ищет примерно за одинаковое время, бывает несколько минут уходит на запрос. А нужно, что бы секунды.
Решил потестить Sphinx, создал индекс, все нормально, запустил, но как использовать?
1) по докам первый способ, с помощью утилиты типа, какой? search устарела, пишут
2) с помощью API на языках, делал кто так?
3) нативно с консоли базы, в mysql тут все хорошо, а для postgresql есть pg_sphinx, я его установил, добавил расширение в базу, функции добавились, все норм, но при попытке сделать запрос, выдает ошибку
zz7=# select count(*) from sphinx_select('zz7_idx', 'квіти', NULL, '@relevance DESC',0,5,NULL);
ERROR: Can't connect to sphinx server. Lost connection to MySQL server at 'reading initial communication packet', system error: 0
настраивал кто успешно, можете пример конфига кинуть или подсказать в чем проблема?


Denis
10.04.2017
23:47:52
Всем привет! Помогите, пожалуйста, с настройкой sphinx
Сейчас переезжаем с mysql на postgresql, в таблице 50 миллионов записей, есть текстовое (varchar) поле, по которому нужно сделать поиск. В обоих базах построил нужные индексы для фуллтекста, ищет примерно за одинаковое время, бывает несколько минут уходит на запрос. А нужно, что бы секунды.
Решил потестить Sphinx, создал индекс, все нормально, запустил, но как использовать?
1) по докам первый способ, с помощью утилиты типа, какой? search устарела, пишут
2) с помощью API на языках, делал кто так?
3) нативно с консоли базы, в mysql тут все хорошо, а для postgresql есть pg_sphinx, я его установил, добавил расширение в базу, функции добавились, все норм, но при попытке сделать запрос, выдает ошибку
zz7=# select count(*) from sphinx_select('zz7_idx', 'квіти', NULL, '@relevance DESC',0,5,NULL);
ERROR: Can't connect to sphinx server. Lost connection to MySQL server at 'reading initial communication packet', system error: 0
настраивал кто успешно, можете пример конфига кинуть или подсказать в чем проблема?
Кстати, а вы пробовали rum индекс для полнотекстового поиска? В отличие от gin ему не нужно делать recheck и залазить в таблицу для этого.


Anton
10.04.2017
23:48:49
даже не слышал о таком, сейчас загуглю, но проблема в скорости сейчас только, а не в переиндексации, если об этом речь

Denis
10.04.2017
23:50:54
Нет, это как раз радикально решает скорость запроса. Когда вы выполняете сложный запрос с учётом расстояния между словами, то Gin не имеет таких данных и лезет перепроверять в таблицу найденное в индексе. А rum уже хранит такие данные. Это не ваш случай?

Google

Anton
10.04.2017
23:51:44
прочел насчет этого как раз, но если запрос по одному слову, то тут он выигрыша не имеет же?

Denis
10.04.2017
23:52:09
Нет
Значит, вам нужен сфинкс)) ну или партицировать через pathman

Anton
10.04.2017
23:52:55
несколько слов в поиске возможны, но в основном это одно слово
еще вариант еластик, конечно, но как-то уже хочеться протестить сфинкс, хотя документация у него очень хромает, конечно, в отличии от еластика. спасибо, загуглю насчет pathman'а
еще маленький вопрос, я же правильно понял, что insert не блокирует таблицу для чтения, в отличии от myisam в mysql, например?

Denis
11.04.2017
00:02:19
На чтение не блокирует. Вот, https://postgrespro.ru/docs/postgrespro/9.5/explicit-locking.html , гляньте тип row share

Anton
11.04.2017
00:03:05
да, я там и смотрел, но хотел уточнить