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

Разве vacuum full не должен тогда с ошибкой отвалиться потому

что не смог эксклюзивно заблокировать таблицу?

9 ответов

11 просмотров

А он смог. Упомянутые долгие транзакции [пока] не связаны с этой таблицей.

Viktor-Grigorev Автор вопроса
Yaroslav Schekin
А он смог. Упомянутые долгие транзакции [пока] не ...

То есть транзакции должны упасть при попытке связаться?

Viktor Grigorev
То есть транзакции должны упасть при попытке связа...

Нет. Они должны прочитать rows, актуальные для их snapshot.

Viktor-Grigorev Автор вопроса
Yaroslav Schekin
Нет. Они должны прочитать rows, актуальные для их ...

это зависит от выбранного уровня изоляции? пытаюсь повторить проблему, в одном соеднии делаю update на тестовой таблице, в другом соединии начинаю транзакцию, в первом делаю vacuum full - таблица урезается несмотря на активную более старую странзакцию

Viktor-Grigorev Автор вопроса
Viktor Grigorev
это зависит от выбранного уровня изоляции? пытаюсь...

неправильно эксперимент делал, более старая транзакция должна удаленные строки живыми видеть (я уже после update но до vacuum запускал), после исправления проблема воспроизвелась

Viktor Grigorev
неправильно эксперимент делал, более старая транза...

Да, всё так. На всякий случай, транзакция в PostgreSQL "на самом деле" начинается (берёт первый snapshot) не с "BEGIN TRANSACTION;", а с первого DML statement в ней (я к тому, что об этом стоит помнить, когда экспериментируете).

Yaroslav Schekin
Да, всё так. На всякий случай, транзакция в Postgr...

Т.е. если между ними есть DDL, он исключается из транзакции? 8-O

Philipp Krylov
Т.е. если между ними есть DDL, он исключается из т...

это только в ORACLE так. в Postgres-е чтобы не накручивать счётчик используются виртуальные номера транзакций до момента, когда транзакция явно что-то меняет и нужен новый номер

Philipp Krylov
Т.е. если между ними есть DDL, он исключается из т...

Я просто имел в виду, что, к примеру: "BEGIN TRANSACTION; SET TRANSACTION READ ONLY;" и т.п. snapshot-а не берут. Viktor Grigorev же с этим экспериментировал, так что я не стал расписывать. Правильнее будет "с первого не-TCL statement".

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта