@pgsql

Страница 726 из 1062
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
Google
Аггей
23.03.2018
09:24:58
Ну тогда я тебя готов выслушать почему у меня cp в несколько потоков в tmpfs дает 38 ГБ/с в tmpfs. Не уверен что чото другое даст скорость в 3800 ГБ/с
Ну рискну предположить, что для темпфс используются дополнительные уровни абстракции - поэтому медленнее. Но на практике не знаю.

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

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

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

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

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
а можно ссылку? оно почему-то не гуглится
И не нагуглится, потому что это из IRC.

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

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

Yaroslav
23.03.2018
09:47:19
Добрый день. Postgresql только начинаю пользоваться, можете, пожалуйста, рассказать о особенностях и полезных функциях, которые я могу использовать.
"Нет царских путей к геометрии". Т.е. прочитайте документацию, а если есть конкретные вопросы —- задавайте.

Nick
23.03.2018
09:49:58
NOT EXISTS, например.
спасибо, буду курить

Константин
23.03.2018
09:50:39
https://www.postgresql.org/docs/10/static/functions.html Читай...
На счет документации, понятно, что надо читать. Но хотелось бы получить просто общее представление, чтобы расставить приоритеты в изучении. Все-равно есть функции, которые используются чаще других именно в Postgresql и какие-то подводные камни

Ilia
23.03.2018
09:53:15
На счет документации, понятно, что надо читать. Но хотелось бы получить просто общее представление, чтобы расставить приоритеты в изучении. Все-равно есть функции, которые используются чаще других именно в Postgresql и какие-то подводные камни
Когда изучишь, ты его получишь. Так вообще не понятно, что тебе надо. Учить всё вообще бессмысленно. Обычно тебе надо что-то сделать, ты ищешь фукнцию под это, и её изучаешь. ПОтом используешь.

А вы с какой-нибудь RDBMS знакомы? Может, можно будет в сравнении что-то рассказать (если кто-то знаком с той же, что и вы)?
А бессмысленнО, как раз функциии во всех СУБД разные. Совсем. (кроме стандартных в новых СУБД)

Yaroslav
23.03.2018
09:54:32
А бессмысленнО, как раз функциии во всех СУБД разные. Совсем. (кроме стандартных в новых СУБД)
Просили "рассказать о особенностях и полезных функциях", так что я так не думаю.

Ilia
23.03.2018
09:56:06
На счет документации, понятно, что надо читать. Но хотелось бы получить просто общее представление, чтобы расставить приоритеты в изучении. Все-равно есть функции, которые используются чаще других именно в Postgresql и какие-то подводные камни
ОБЩЕЕ ПРЕДСТАВЛЕНИЕ: Есть функции, каждая либо универсальная (из области SQL), либо обычно привязана к обработке какого-то типа данных. Изучаешь тип данных — изучаешь связанные с ним функции.

Константин
23.03.2018
09:56:43
А бессмысленнО, как раз функциии во всех СУБД разные. Совсем. (кроме стандартных в новых СУБД)
Я согласен, что изучается все по мере необходимости. Я работаю с Postgresql и все задачи решаю, но не сказать, что приходилось заходить слишком далеко. У postgresql есть свои преимущества и недостатки, какие то особенности, которые могут так сказать навредить, если я их буду использовать. А чтобы не наткнуться на них по незнанию, вот и спросил)

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

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

Yaroslav
23.03.2018
09:58:45
Nick
23.03.2018
10:02:03
select distinct appname from thetable l where app_status = 'APP_START' and not exists( select 1 from thetable l0 where l0.id = l.id and l0.appstatus <> 'APP_START' )
спасибо, но не работает select distinct appname from chname l where appstatus = 'APP_START' and not exists( select 1 from chname l0 where l0.id = l.id and l0.appstatus <> 'APP_START'); appname —---------— example_WM WM-0000000d WM-0000000e WM-0000000f WM-00000010 должен был вывести только example_WM

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
\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)
Ах, где вы взяли эту схему. ;) Вот зачем вы используете varchar(n)? И странно, что appname ни на что не ссылается... Ну ладно, это лирика. ;) Уточните задачу: если для данного appname случилось два (или более) APP_START, оно дожно попасть в выборку?

Nick
23.03.2018
10:22:54
Нет, не должно

схема тестовая, тупо разобраться с этим запросом

Vladimir
23.03.2018
10:24:09
Так что надо ловить разожравшиеся бэкенды, цепляться к ним отладчиком и дампить мемори контексты.
Посмотрел исходники, и, похоже ограничения на размер Context’а не преусмотрено. Уже обсуждалась фича max_memory_per_process (или max_context_memory_bytes или ещё что-то такое), чтобы процесс, превысивший эту память убивался, но не тащил за собой всю базу?

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
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)

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
кстати, таблицы можно сжимать и расжимать обратно. чего в pgpro ee делать нельзя, как я понял из документации. но это мелочи уже
можно, просто меняешь у таблицы табличное пространство, но это эксклюзивная операция

Alexey
23.03.2018
14:39:16
ok

в документации что-то невнятное на этот счёт написано

а вот надо бы ещё дописать пару банальных вещей, почему компрессия на уровне файловой системы — не панацея

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

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

Vladimir
23.03.2018
14:51:30
Можно настроить демон тулз, чтобы он посылал процессу SIGTERM. По SIGTERM бэкенд выходит нормально, без перезагрузки постгреса
Если вражеский запрос «в одно мгновенье» потратит гигабайт на hashjoin, то он завалит базу гораздо быстрее, чем наш cronjob обнаружит и пошлёт sigterm. Если вопрос про max_process_size не обсуждался, то я напишу в pghackers. Просто, вдруг «давно известно, что Том или Андрес запрещают делать такое».

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?

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

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

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.

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