Size: a a a

pgsql – PostgreSQL

2020 May 25

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Господа, а можно ли как-то делать транзакцию, чтобы она между коннектами длилась?
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Грубо говоря получил Id транзакции, и потом с ним запросы делать
источник

ДЛ

Дмитрий Лукьянов... in pgsql – PostgreSQL
Ilya Kaznacheev
Господа, а можно ли как-то делать транзакцию, чтобы она между коннектами длилась?
А зачем?
источник

ДЛ

Дмитрий Лукьянов... in pgsql – PostgreSQL
Транзакция, вроде, придумана как атомарная операция..
источник

ДЛ

Дмитрий Лукьянов... in pgsql – PostgreSQL
Если прям надо задрочиться и изобрести велосипед, то проще всего, имхо, писать изменения разными сессиями в одну таблицу свою а-ля транзакционный лог, а вместо единого коммита делать вставку изменений из этой таблицы в целевые в одной сессии, и затем коммитить.
источник

Ð

Ð in pgsql – PostgreSQL
транзакции в пг основаны на сессиях
источник

ДЛ

Дмитрий Лукьянов... in pgsql – PostgreSQL
Но сама концепция разделения транзакции между сессиями - какая-то дрочь.
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Ilya Kaznacheev
Господа, а можно ли как-то делать транзакцию, чтобы она между коннектами длилась?
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Но это дичь какая-то, соглашусь с коллегами.
источник

AY

Alex Yu in pgsql – PostgreSQL
Ну, вообще-то, долгоживущая транзакция, данные которой доступны в нескольких сессиях - это возможно
Т.е. один процесс пишет, а другие читают "грязные" данные

Не знаю, правда, как это относится к postgres

Чтобы многие писали в одну транзакцию - такое я только теоретически представляю
И лучше так не делать
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Дмитрий Лукьянов
Но сама концепция разделения транзакции между сессиями - какая-то дрочь.
А parallel query как работает, как Вы думаете? ;)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Ilya Kaznacheev
Господа, а можно ли как-то делать транзакцию, чтобы она между коннектами длилась?
См. "SET TRANSACTION SNAPSHOT" в https://www.postgresql.org/docs/current/sql-set-transaction.html
И pg_export_snapshot (в общем, там есть ссылки).
Но довольно странно, что Вам нужно подобное, да.
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Alex Yu
Ну, вообще-то, долгоживущая транзакция, данные которой доступны в нескольких сессиях - это возможно
Т.е. один процесс пишет, а другие читают "грязные" данные

Не знаю, правда, как это относится к postgres

Чтобы многие писали в одну транзакцию - такое я только теоретически представляю
И лучше так не делать
В постгресе нет UNCOMMITTED READ. Просто нет.
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Идея в распределенной транзакции, вроде того
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Михаил Шурутов
В постгресе нет UNCOMMITTED READ. Просто нет.
Формально — есть, просто есть. ;)
Потому что уровни изоляции — это о допустимых аномалиях, а не о гарантируемых.
источник

2_

2flower _ in pgsql – PostgreSQL
Повторю свой вопрос, может кто подскажет?
https://t.me/pgsql/226659
источник

MD

Memory Doctor in pgsql – PostgreSQL
Yaroslav Schekin
Формально — есть, просто есть. ;)
Потому что уровни изоляции — это о допустимых аномалиях, а не о гарантируемых.
формально уровень изоляции есть, но читать грязные данные в нем нельзя
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
То есть некий многоступенчатый процесс, который из нескольких запросов состоит
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Которые из другого сервиса приходят подряд
источник

ДЛ

Дмитрий Лукьянов... in pgsql – PostgreSQL
Yaroslav Schekin
См. "SET TRANSACTION SNAPSHOT" в https://www.postgresql.org/docs/current/sql-set-transaction.html
И pg_export_snapshot (в общем, там есть ссылки).
Но довольно странно, что Вам нужно подобное, да.
А как обеспечивается откат транзакции в случае сбоя одной из таких независимых сессий? Сразу во всех сессиях или только в одной?
источник