
Mike Chuguniy
23.03.2018
09:23:49

Alex
23.03.2018
09:24:19
А в plpython существует возможность как-то дополнить глобальные переменные ? или пользовать те же SD / GD ? кто нибудь сталиквался с такой необходимостью ?

Alex
23.03.2018
09:24:43

Mike Chuguniy
23.03.2018
09:24:48

Google

Аггей
23.03.2018
09:24:58

Alexey
23.03.2018
09:25:14

Alex
23.03.2018
09:25:37

Mike Chuguniy
23.03.2018
09:26:16
У тебя и мультимастер не ломается.

Alexey
23.03.2018
09:26:59


Nick
23.03.2018
09:28:59
Салют! пардон за возможно нубский вопрос:
есть таблица
id | appname | appstatus
—--+-------------+---------—
55 | example_WM | APP_START
35 | WM-0000000d | APP_END
40 | WM-0000000f | APP_END
45 | WM-0000000f | APP_END
47 | WM-0000000d | USER_DEF
50 | WM-0000000f | USER_DEF
53 | WM-0000000f | USER_DEF
28 | WM-0000000e | APP_START
46 | WM-0000000d | APP_START
48 | WM-0000000e | APP_START
49 | WM-0000000f | APP_START
51 | WM-00000010 | APP_START
52 | WM-0000000f | APP_START
54 | WM-00000010 | APP_START
30 | WM-0000000e | APP_END
32 | WM-0000000e | APP_END
34 | WM-0000000d | APP_END
37 | WM-00000010 | APP_END
39 | WM-0000000f | APP_END
42 | WM-00000010 | APP_END
44 | WM-0000000f | APP_END
29 | WM-0000000e | HANG
31 | WM-0000000e | HANG
33 | WM-0000000d | HANG
36 | WM-00000010 | HANG
38 | WM-0000000f | HANG
41 | WM-00000010 | HANG
43 | WM-0000000f | HANG
Каким запросом можно выбрать все appname, для которых случилось событие APP_START, но больше никаких событий не произошло?
Т.е. в этом случае должно вывести только example_WM


Yaroslav
23.03.2018
09:29:46


Yura
23.03.2018
09:30:52

Alexey
23.03.2018
09:31:06
а, пардон ?

Аггей
23.03.2018
09:31:21
@alexey_kopytov , насколько я понял,@funny_falcon самый близкий к реальной реализации в pgpro человек. Если вы с ним обсудите подробности реализаций в mysql и pgpro - все тут будут рады новым знаниям

Yura
23.03.2018
09:32:40


Yaroslav
23.03.2018
09:39:12
По теме данного разговора (в части про кэширование и т.п.) я вот прямо не удержусь и вброшу:
<Кто-то спрашивает>
Is there a good survey/paper/thing to read to get up to speed on cache replacement algorithms?
Andres Freund отвечает:
I think it's to a significant degree our implementation, rather than purely algorithmic issues.
(chiefly among them: bgwriter is useless to damaging; usagecount granularity too low / decays too fast / increases too fast, but can't be increased because overhead scales O(shared_buffers * max_usagecount); undirtying doesn't do write combining)
I'd posted a draft bgwriter replacement somewhere which in my experiments did a lot better than the current one despite being simpler.
The write combining issue IMO requires that we replace our current hashtable with an ordered tree (which'd also fix the drop table being O(#shared buffers) issue). My experiment suggests that in comparison to the current replacement logic, random replacement does just about the same. It's definitely possible to construct cases where that's not true however.

Google

Yaroslav
23.03.2018
09:39:50
Мне особенно понравилось "in comparison to the current replacement logic, random replacement does just about the same". ;)

Alexey
23.03.2018
09:41:12
ой, а что, drop table до сих пор O(#shared buffers)?

Yaroslav
23.03.2018
09:42:42
Я сам не знаю, но ответ от февраля этого года, насколько я помню..

Константин
23.03.2018
09:43:00
Добрый день. Postgresql только начинаю пользоваться, можете, пожалуйста, рассказать о особенностях и полезных функциях, которые я могу использовать.

Alexey
23.03.2018
09:44:51

Yaroslav
23.03.2018
09:45:25

Alexey
23.03.2018
09:45:38
печаль

Иван
23.03.2018
09:46:22
Никита и Константин. Задайте свои вопросы позднее. Не вовремя вы пришли

Yaroslav
23.03.2018
09:47:19

Ilia
23.03.2018
09:48:51

Nick
23.03.2018
09:49:58

Константин
23.03.2018
09:50:39

Ilia
23.03.2018
09:52:17


Yaroslav
23.03.2018
09:52:59

Ilia
23.03.2018
09:53:15

Yaroslav
23.03.2018
09:54:32

Ilia
23.03.2018
09:56:06

Константин
23.03.2018
09:56:43

Ilia
23.03.2018
09:57:23
В Postgres есть недостатки ?
Ты сейчас серьёзно сказал ?

Google

Аггей
23.03.2018
09:57:42

Константин
23.03.2018
09:58:07
Ну я же не знаааю, поэтому и сказал. Нельзя же воспринимать все мои слова, как слова опытного пользователя.

Yaroslav
23.03.2018
09:58:45
Я согласен, что изучается все по мере необходимости. Я работаю с Postgresql и все задачи решаю, но не сказать, что приходилось заходить слишком далеко. У postgresql есть свои преимущества и недостатки, какие то особенности, которые могут так сказать навредить, если я их буду использовать. А чтобы не наткнуться на них по незнанию, вот и спросил)
Всё равно, особенности обычно бывают по сравнению с чем-то...
А для "собенности, которые могут так сказать навредить, если я их буду использовать" есть английское "слово" gotcha.
Попробуйте по нему погуглить, например.

Константин
23.03.2018
09:59:23

Mike Chuguniy
23.03.2018
10:00:52

Nick
23.03.2018
10:02:03

Константин
23.03.2018
10:06:41

Ilia
23.03.2018
10:06:45

Nick
23.03.2018
10:14:51

Yaroslav
23.03.2018
10:16:02
varchar
Вас не об этом спрашивали (varchar —- это тип данных, а спросили про ключи). Покажите \d таблицы, например.

Nick
23.03.2018
10:16:32
\d chname
Table "public.chname"
Column | Type | Modifiers
—---------+-----------------------+---------------------------------------------------—
id | integer | not null default nextval('chname_id_seq'::regclass)
appname | character varying(24) | not null default ''::character varying
appstatus | character varying(48) | not null default ''::character varying
Indexes:
"chname_pkey" PRIMARY KEY, btree (id)

Yaroslav
23.03.2018
10:22:34

Nick
23.03.2018
10:22:54
Нет, не должно
схема тестовая, тупо разобраться с этим запросом

Vladimir
23.03.2018
10:24:09

Yaroslav
23.03.2018
10:25:06
То есть так?
SELECT c.appname
FROM chname AS c
WHERE c.status = 'APP_START'
AND NOT EXISTS (
SELECT 1
FROM chname AS ce
WHERE ce.appname = c.appname
AND ce.id <> c.id
)

Nick
23.03.2018
10:27:35
Отично!!!! спасибо!!!

Google

Konstantin
23.03.2018
11:13:02

Alexey
23.03.2018
13:58:07
так, кто тут жаждал подробностей про компрессию в InnoDB? я нашёл немного времени: http://telegra.ph/Sravnenie-arhitektury-szhatiya-dannyh-v-InnoDB-i-PgPro-Enterprise-03-23

Mike Chuguniy
23.03.2018
14:02:15
Эммм, две копии. Сжатая и разжатая. А как тогда объяснить суровое уменьшение потребления памяти мысклем при включении сжатия?

Alexey
23.03.2018
14:05:03
не знаю, как объяснить. мыскль вообще-то потребляет столько памяти, сколько ему скажут (innodb_buffer_pool_size)

Grigory
23.03.2018
14:06:08

Alexey
23.03.2018
14:06:15
хотя если горячих данных меньше памяти, то сжатие скажется в меньшем RSS, да

Grigory
23.03.2018
14:07:52
я правильно понимаю, что сжатие происходит на уровне туплов?

Alexey
23.03.2018
14:09:05
да. но с общим для каждой страницы словарём

Sergey
23.03.2018
14:29:07
Я правильно понял что сжатые блоки содержат пустое место?
И имеют фиксированный размер?

Alexey
23.03.2018
14:29:59
да и да
уточню, что блоки имеют фиксированный размер для каждой таблицы. его нужно указать при создании сжатой таблицы
кстати, таблицы можно сжимать и расжимать обратно. чего в pgpro ee делать нельзя, как я понял из документации. но это мелочи уже

Grigory
23.03.2018
14:38:41

Alexey
23.03.2018
14:39:16
ok
в документации что-то невнятное на этот счёт написано
а вот надо бы ещё дописать пару банальных вещей, почему компрессия на уровне файловой системы — не панацея

Аггей
23.03.2018
14:49:56

Alexey
23.03.2018
14:50:20
меня попросили, я пообещал, я сделал!

Google

Alexey
23.03.2018
14:50:37
давайте не будем драматизировать!

Vladimir
23.03.2018
14:51:30

Sergey
23.03.2018
14:52:04

Mike Chuguniy
23.03.2018
14:54:49
давайте не будем драматизировать!
Как это - не драматизировать?! У меня и так мозги набекрень, кипят и взрываются, а тут вообще чудеса: данных в памяти хранится больше, памяти потребляется меньше. До свидания, мозг, до свидания, до свидания, разум, прощай...
:)

Alexey
23.03.2018
14:56:27
это всё придумал Черчилль в восемнадцатом году!

Аггей
23.03.2018
14:57:43
А если карта сжатых данных в pgpro очень большая? Допустим сопоставима с объёмом ram - идёт её постоянное чтение с диска?

Mike Chuguniy
23.03.2018
14:57:49

Alexey
23.03.2018
14:59:14

Twelfth
23.03.2018
16:45:24
Здравствуйте. Подскажите, каким образом можно разрешить заходить под определённым пользователем с определённого удалённого хоста без редактирования pg_hba.conf ? Иными словами, как можно быстро задать хост пользователя?
Я знаю, что можно прописать что-то типа
host postgres all 192.168.12.10/32 md5
Но можно ли это сделать запросом к БД, как в MySQL?

Maksim
23.03.2018
16:49:19

Twelfth
23.03.2018
16:49:40
У меня не роль, а отдельный пользователь

Maksim
23.03.2018
16:50:52
можно alter user, но в постгресе user есть роль

Evgeniy
23.03.2018
18:23:28


Andrew
23.03.2018
18:32:56
Здравствуйте!
У нас буквально только что случилось непонятное.
После последовательного обновления записей по 5К в одной из таблиц, один из таких запросов намертво завис.
Его нельзя было прибить через pg_terminate_backend
при этом логе видно было периодически
LOG: invalid record length at CA3/146BC0A0: wanted 24, got 0
дальше мы сняли нагрузку с бд, и прибили через kill -9 pid процесса запроса, pg ушел в ребут и вернулся.
Затем апдейт по той же таблице но по одной записи также завис.
Прибили килом, затем выполнили VACUUM , вакуум "завис"
затем последовательно, кил вакуума, VACUUM FULL , REINDEX TABLE, ANALYZE
снова запустили таск с апдейтами, все завершилось успешно, но в логе pg опять ошибка, теперь автовакуум не может пройтись
ERROR: could not open file "base/16429/128422706.1" (target block 46149768): previous segment is only 9512 blocks
Mar 23 23:10:28 grus postgres[56107]: [13-2] CONTEXT: automatic vacuum of table "blizko.public.users"
и это прям странно странно. Проделали снова вакуум фул, реиндекс и аналайз.
Сейчас вернули нагрузку, но так и не понятно чего ждать.
Версия pg 9.6.7, диски нормальные, фс в порядке.
Перед килами конечно выполнянли чекпоинт.
Подскажите, пожалуйста, куда копнуть?


Yaroslav
23.03.2018
18:36:47
А что тут копать, у вас почти 100% битая база —- восстановите из backup.