172 похожих чатов

Кстати Коллеги, а можно нубский вопрос? а возможны вообще долгоживущие транзакции, хотя

бы в теории?

стартовал - получил id транзакции
делаешь что-то в ней
закоммитил, указав id

не привязанные к коннекту?

18 ответов

4 просмотра

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

doc
Транзакция всегда в коннекте существует, иначе ник...

Если-бы вы были хоть на секунду правы, то в pg_stat_activity (или как оно там) на всех коннектах, которые сейчас не делают ничего было-бы idle in transaction и база умерла-бы (так как idle in transaction это самое плохое что может быть для Пг).

Two phase commit ближе всего по смыслу, но он не для того.

а это разве не сломает ACID?

А как тогда гарантировать СУБД что вы не начнете параллельно кучей потоков что-то с одним id делать с недетерминированным конечным результатом? Тут тогда придется транзакции внутри транзакции пилить.

Пока что ваше пожелание ничем ни отличается от "стартовал — открыл соединение + открыл транзакцию, висишь idle in transaction, закоммитил и закрыл соединение". В чём будет положительная разница для пользователя? P.S. Если вы скажете "не надо открывать соединение", то я попрошу расписать плюсы этого и т.д. пока не скажете очень конкретные плюсы

alex che
Пока что ваше пожелание ничем ни отличается от "ст...

Что-то подобное на первый, наивный, взгляд хорошо для банковских транзакций, например, выдача денег в банкомате которая может и на минуту растянуться и держать соединение ради этого банкомата никто не будет. Правда чуть позже увидишь, что нужно несколько коротких транзакций и журналирование каждого действия.

Евгений Смирнов
Что-то подобное на первый, наивный, взгляд хорошо ...

почему для сервера банка проблема держать соединение одну минуту?

Да, можно, это даже на практике делают. Почитайте про saga.

Евгений Смирнов
Что-то подобное на первый, наивный, взгляд хорошо ...

"Разрешэние" выдать деньги (блокировка средств на счёте) должна быть отдельной транзакцыей, фиксацыя выдачи или отмены — тожэ. И да, у этого разрешэния надо, конечно, пркдусмотреть средства синхронизацыи с цэнтром: откат тех, которые нк дошли так или иначе (в т.ч. не дошло разрешэние), накат тех, у которых после успешного разрешэния не дошло подтверждение выдачи.

Ilya Anfimov
"Разрешэние" выдать деньги (блокировка средств на ...

Именно, куча мелких транзакций + журнал всего произошедшего.

doc
а в чем я не прав-то?

Я там и написал.

Warstone
Я там и написал.

я прочитал, но не понял в чем конкретно я не прав

doc
я прочитал, но не понял в чем конкретно я не прав

В фразе что "транзакции всегда в коннекте существуют". Это неправда.

Евгений Смирнов
Что-то подобное на первый, наивный, взгляд хорошо ...

Вы ответили на вопрос "зачем это нужно?", а я спрашивал "какое конкретно преимущество вы ожидаете по сравнению с открыть отдельное соединение для длительной транзакции?". Вам может быть очевидно, а мне не очевидно. Это нужно для ответа на исходный вопрос "можно ли такое поддержать в PG?". Чтобы на него ответить, нужно знать не название фичи, а какие плюсы ожидаются. Например, "мультимастер" — это просто слово, можно реализовать формально "мультимастер", при этом пользователь не получит плюшек, которые на самом деле хотел.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Так а кто может спарсить всех участников чата? Идишники
Magic
17
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Карта сайта