@pgsql

Страница 890 из 1062
X
17.07.2018
09:14:35
кто-нибудь может пояснить?

X
17.07.2018
09:16:45
т.е это все происходит в общей памяти и после изменения впечатываются в таблицу?

Yaroslav
17.07.2018
09:16:50
они не записываются в базу ведь так?, только если транзакция успещна, строки записываются в базу?
Записываются, конечно. В "худшем" случае — сразу после записи изменений в WAL.

Google
Yaroslav
17.07.2018
09:17:07
X
17.07.2018
09:17:41
блин

Yaroslav
17.07.2018
09:19:31
т.е это все происходит в общей памяти и после изменения впечатываются в таблицу?
Т.е. страница действительно сначала изменяется в shared buffers, и после записи соотв. изменений в WAL может быть записана на диск (и, если сервер не упадёт, рано или поздно будет записана). Только для понимания механизма работы MVCC это несущественные подробности, IMHO.

X
17.07.2018
09:19:37
ок. спасибо. пошел разбираться дальше

так хорошо, какое поведение будет если у меня в транзакции изменение двух строй

строк, я беру делаю изменения, и хоп транзакция валиться, ок, но на одну строку изменения внесены

значит в базе есть строка которая не валидна, мне эти данные не нужны мне либо две строки изменнных либо ничего

как он разрулит это?

если он вписал, но не думает откатывать

Виктор
17.07.2018
09:23:34
Ну блин в конце флаг будет в статусе "не завершено" для транзакции и данные при выборке не будут учитываться.

X
17.07.2018
09:24:26
это я тоже прочитал, как они будут не учитываться, когда я изменил строку?

Yaroslav
17.07.2018
09:24:39
строк, я беру делаю изменения, и хоп транзакция валиться, ок, но на одну строку изменения внесены
Ещё раз: строки в базе физически не изменяются (только создаются новые версии). Поэтому "старые" никуда не денутся, и т.к. новые окажутся not committed, старые и будут читаться.

Виктор
17.07.2018
09:24:44
По сути то обновление или вставка, это фактически вставка строки, с номером транзакции

Google
Виктор
17.07.2018
09:25:39
То есть хранится история каждой ячейки, за некоторый период

X
17.07.2018
09:25:59
Ещё раз: строки в базе физически не изменяются (только создаются новые версии). Поэтому "старые" никуда не денутся, и т.к. новые окажутся not committed, старые и будут читаться.
бляяяяя....вот сча просто у меня вселенная открылась, я реально понял че они пытаются впарить....блин гениално. А Вам огоромное спасибо! Реально спасибо.

теперь глава отчистки встала на свое место

Виктор
17.07.2018
09:26:39
X
17.07.2018
09:27:03
Ну и вакуумом подчищается постепенно
как раз буду про него читать

Arthur
17.07.2018
09:27:47
Еще посмотрите колонки xmin, xmax, ctid: select xmin, xmax, ctid from test;

Vasiliy
17.07.2018
11:24:21
экстеншон создавай в нужной базе
Спасибо. Разобрались. Оказывается опция отдавалась через repmgr.conf.

Gennady
17.07.2018
12:12:56
Удалось воспроизвести багу с pre-wraparound и временной таблицей. Идея в том, что если мы очень долго держим temp-таблицу, то гарантированно получим pre-wraparound В одном из коннектов создал временную таблицу tmp и просто держал коннект открытым. В других коннектах недёргивал txid_current() до того, как получил pre-wraparound. После рестарта осталась перманентно таблица pg_temp_3.tmp; Выполнение vacuum freese pg_temp_3.tmp; даже в single-user режиме не решает проблему.

Gennady
17.07.2018
12:16:28
PostgreSQL 10.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit

Решает проблему удаление таблицы в single-user mode и последующий vacuumdb -F

Гаврилов
17.07.2018
12:18:30
Добрый день. У меня есть text поле в таблице с индексом pg_trgm. Раньше все было нормально, недавно появилась ошибка index row requires 19664 bytes, maximum size is 8191. Как можно снять этот лимит? гугл не помогает

alix
17.07.2018
12:18:33
привет чат

https://eng.uber.com/mysql-migration/

а эту траблу фиксят вообще

?

в новых версиях

Google
alix
17.07.2018
12:19:05
write amplification

или это вообще не проблема а убере не правы

Yaroslav
17.07.2018
12:19:36
PostgreSQL 10.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
Вот же... а вроде что-то такое fix-или. Вы пробовали в -hackers поискать?

Robert
17.07.2018
12:20:01
Это не проблема, для тех задач, для которых это не критично.

alix
17.07.2018
12:21:20
Yaroslav
17.07.2018
12:23:15
а эту траблу фиксят вообще
Это особенность архитектуры, я думаю. У альтернативной-то тоже есть свои недостатки (только в статье о них, как мне помнится, "забыли").

alix
17.07.2018
12:23:47
мне просто интересно это как то оптимизировали (или планируют) или это норма

Yaroslav
17.07.2018
12:28:49
мне просто интересно это как то оптимизировали (или планируют) или это норма
Ещё раз, у альтернативной архитектуры тоже есть недостатки, она не просто лучше. Поэтому, возможным решением могла бы быть поддержка и той, и другой. На эту тему потихоньку что-то "пилят"... даже разные разработчики. Но всё это пока далеко от production, насколько мне известно.

Robert
17.07.2018
12:29:22
а можешь пояснить что это за задачи
ну если тебе раз в секунду одну и ту же запись не надо update делать, то PG норм.

Гаврилов
17.07.2018
12:29:33
Sergey
17.07.2018
12:29:48
Вот же... а вроде что-то такое fix-или. Вы пробовали в -hackers поискать?
http://www.postgresql-archive.org/Fun-fact-about-autovacuum-and-orphan-temp-tables-td5919492.html Интересно это таки приняли?

Anton
17.07.2018
12:35:22
Автообновление в материализованных представлениях ведь так и не сделано в качестве фичи?

Yaroslav
17.07.2018
12:35:41
Добрый день. У меня есть text поле в таблице с индексом pg_trgm. Раньше все было нормально, недавно появилась ошибка index row requires 19664 bytes, maximum size is 8191. Как можно снять этот лимит? гугл не помогает
А, похоже google вам и не поможет. :( (Это константа INDEX_SIZE_MASK в исходниках, её изменение вряд ли предусматривалось.) Похоже на то, что вам придётся придумать другое решение.

Автообновление в материализованных представлениях ведь так и не сделано в качестве фичи?
"На лету" (в той же транзакции), в смысле? Нет, не сделано. Аналог можете сделать с помощью триггеров и обычных таблиц, если нужно...

http://www.postgresql-archive.org/Fun-fact-about-autovacuum-and-orphan-temp-tables-td5919492.html Интересно это таки приняли?
Ну, так вроде вот: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=a734fd5d1c309cc553b7c8c79fba96218af090f7 И вот: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=dafa0848da11260e9510c699e7060171336cb550

Oleg
17.07.2018
12:55:12
re all. кто-то бакулу с постгресом совокуплял? есть документация

Yaroslav
17.07.2018
13:02:54
GIN
Я вот сейчас подумал... как-то это странновато, всё же (откуда там такие index rows?). Попробуйте спросить в #postgresql (IRC), или в mailing lists (или подождите другого ответа здесь).

Google
Гаврилов
17.07.2018
13:07:48
у меня текст на 38к символов)

Yaroslav
17.07.2018
13:12:39
у меня текст на 38к символов)
Ну так, по идее, индексируются-то триграммы (хотя я в структуре никогда не копался). Спросите в #postgresql, там сейчас как раз могут быть люди, которые сходу ответят. ;)

Gennady
17.07.2018
13:14:41
Вот же... а вроде что-то такое fix-или. Вы пробовали в -hackers поискать?
Не пробовал. Буду благодарен, если кто-то найдёт

Yaroslav
17.07.2018
13:15:28
Не пробовал. Буду благодарен, если кто-то найдёт
Так вон там выше постили ссылки.

Admin
ERROR: S client not available

Grigory
17.07.2018
13:36:45
http://www.postgresql-archive.org/Fun-fact-about-autovacuum-and-orphan-temp-tables-td5919492.html Интересно это таки приняли?
да, автовакуум с 10-ки умеет удалять осиротевшие вр. таблицы

Yaroslav
17.07.2018
13:38:52
Grigory
17.07.2018
13:39:53
а там она не осиротела

он с живой временной таблицей честно доехал до врапараунда

Yaroslav
17.07.2018
13:40:55
он с живой временной таблицей честно доехал до врапараунда
> После рестарта осталась перманентно таблица pg_temp_3.tmp; Я думал, это делает её orphan... нет?

Grigory
17.07.2018
13:42:24
если мы с живой временной таблицей доедем до врапараунда, то постгрес встанет в RO, транзакции больше нельзя выписывать, а значит нельзя будет и дропнуть эту таблицу при завершении бэкенда

и она станет orphan после этого

но сделать с ней уже ничего нельзя будет

фиговый дизайн временных таблиц strikes again

Yaroslav
17.07.2018
13:44:46
и она станет orphan после этого
Ну так вроде пишут, что был рестарт... > но сделать с ней уже ничего нельзя будет Почему? Разве суть этих патчей не была в том, чтобы чистить их при старте (но я подробно не читал)?

Grigory
17.07.2018
13:45:25
эти патчи полагаются на автовакуум, а он не работает в сингл моде

Yaroslav
17.07.2018
13:46:34
фиговый дизайн временных таблиц strikes again
Когда же с этим что-нибудь сделают... похоже, (почти) всем пофиг. :(

Grigory
17.07.2018
13:49:06
выносить из каталога их надо

Google
Yaroslav
17.07.2018
13:51:32
выносить из каталога их надо
Да, согласен. Но как-то все относящиеся к этому обсуждения, патчи и т.п. "завяли", насколько я помню. :(

Grigory
17.07.2018
14:40:56
https://www.postgresql.org/message-id/0c7c2f84-74f5-2cd9-767e-9b2566065d71%40postgrespro.ru

Gennady
17.07.2018
14:47:23
спасибо, может добавить туда честный путь по воспроизведению (без gdb) ?

Grigory
17.07.2018
14:48:00
честно крутить счетчик? долго жеж

Gennady
17.07.2018
14:48:15
всего 3.5 часа заняло

Sergey
17.07.2018
17:58:58
https://www.postgresql.org/message-id/0c7c2f84-74f5-2cd9-767e-9b2566065d71%40postgrespro.ru
У меня тоже получилось. Тоже несколько часов крутил

Grigory
17.07.2018
18:07:18
Claudio
17.07.2018
19:29:34
hi there

i have a question for you, I have 3 external databases and a pivot central database. I will use dblink library for send query at the pivot. In next time the pivot query another database and insert a row. My problem is : how i can identify the client and exclude it from the next query? tnx

Robert
17.07.2018
19:49:55
Hi

There are several approaches. No idea, what will fit your needs.

If you have timestamp, and there is no case "later rows arrival into the staging database" you could use date ranges.

How often you collect data to the central database?

Davra
17.07.2018
22:24:49
Доброй ночи, подскажите пожалуйста! Работаю с postgresql 9.6х. При отправке такого запроса: SELECT table1.* FROM table1, jsonb_each_text(table1.json_column) LEFT JOIN table2 ON table1.t2_id = table2.id LIMIT 4 posgres дает ошибку: PSQLException ОШИБКА: в элементе предложения FROM неверная ссылка на таблицу "table1" Подсказка: Таблица "table1" присутствует в запросе, но сослаться на неё из этой части запроса нельзя. Позиция: 84 org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl.java:2433)

изначально всё работало без jsonb_each_text(table1.json_column), но сейчас он мне нужен, но из-за него он выдает ошибку неверная ссылка на table1

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