powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / txid_current() != xmin
9 сообщений из 9, страница 1 из 1
txid_current() != xmin
    #38775547
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени, суток.

PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit

Использую функцию:
txid_visible_in_snapshot(bigint, txid_snapshot)

в качестве первого параметра использую xmin::TEXT::INT8

В последнее время txid_current() != xmin

Например:
txid_current() =4359781591
xmin 62312404

relfrozenxid для таблицы из которой взят xmin = 4188453505

Вопрос: Как правильно использовать функцию txid_visible_in_snapshot в моем случае?
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38775697
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gold_,

а xmin Вы откуда берёте?
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38776027
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гость_0Gold_,

а xmin Вы откуда берёте?

в примере xmin поле записи из таблицы, которая была добавлена 5 мин назад.
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38776470
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold_,

если вы видите строку, то вы её видите в вашем снепшоте.

какую задачу вы изначально решаете?
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38776625
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Misha TyurinGold_,

если вы видите строку, то вы её видите в вашем снепшоте.

какую задачу вы изначально решаете?

Изначально: Необходимо найти добавленные/измененные записи после некоторого события.

Запоминаю snapshot.
С помощью функции
txid_visible_in_snapshot(bigint, txid_snapshot)

пытась найти такие записи, примерно так:

Код: plsql
1.
 not txid_visible_in_snapshot( xmin::TEXT::INT8, snapshot)



Теперь перестало работать, т. к. xmin только что вставленной записи сильно меньше txid_current.
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38776756
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold_,

http://www.postgresql.org/docs/9.3/static/functions-info.html
The internal transaction ID type (xid) is 32 bits wide and wraps around every 4 billion transactions. However, these functions export a 64-bit format that is extended with an "epoch" counter so it will not wrap around during the life of an installation.

вам надо не на xmin опираться, а сохранять в строках txid_current().

так как логика с xmin внтури движка и логика внутри txid_visible_in_snapshot -- всё же разные вещи.

но меня не покидают смутные сомнения, что вы не туда копаете изначально
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38776764
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

более того, в xmin после вакуума может оказаться и такое -- "2"

#define FrozenTransactionId ((TransactionId) 2)
http://doxygen.postgresql.org/transam_8h.html#a27b419cb15e28a2b221a7c94713b8493
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38776768
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold_,

еще надавно только впатчили вот такое дело

http://www.postgresql.org/message-id/20140905231957.GE26717@momjian.us]http://www.postgresql.org/message-id/20140905231957.GE26717@momjian.us

все pgq юзеры тоже более ок теперь
...
Рейтинг: 0 / 0
txid_current() != xmin
    #38777024
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Misha TyurinGold_,

http://www.postgresql.org/docs/9.3/static/functions-info.html
The internal transaction ID type (xid) is 32 bits wide and wraps around every 4 billion transactions. However, these functions export a 64-bit format that is extended with an "epoch" counter so it will not wrap around during the life of an installation.

вам надо не на xmin опираться, а сохранять в строках txid_current().

так как логика с xmin внтури движка и логика внутри txid_visible_in_snapshot -- всё же разные вещи.

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

Михаил - спасибо.

Про сомнения, это я так понимаю мягко сказано ).
В планах значительно переделать, но надо еще пожить с этим.
"these functions export a 64-bit format" - что за функции?

Misha TyurinMisha Tyurin,

более того, в xmin после вакуума может оказаться и такое -- "2"

#define FrozenTransactionId ((TransactionId) 2)
http://doxygen.postgresql.org/transam_8h.html#a27b419cb15e28a2b221a7c94713b8493

правильно ли я понимаю, что это произойдет после нового захода txid_current()?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / txid_current() != xmin
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]