|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
Добрый день. Когда постргес замораживает транзакцию №1: делает ее видимой для всех снимков и переносит в бесконечно далекое прошлое. Когда у нас заканчиваются номера транзакций после 2^32-1 надо опять выдавать новым транзакциям номер №1. Но ведь он уже присвоен замороженной транзакции! Или на номера замороженных транзакций постргес не смотрит? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2017, 16:40 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
ncux199rusДобрый день. Когда постргес замораживает транзакцию №1: делает ее видимой для всех снимков и переносит в бесконечно далекое прошлое. Когда у нас заканчиваются номера транзакций после 2^32-1 надо опять выдавать новым транзакциям номер №1. Но ведь он уже присвоен замороженной транзакции! Или на номера замороженных транзакций постргес не смотрит? постгрес не замораживает сами транзакции - постгрес замораживает строки созданные транзакцией с номером N. ID для замороженных строк = 2 зарезервирован и не выдается обычным транзакциям. поэтому строки с xmin = 2 всегда в прошлом. в последних версиях пометки xmin=2 стали прям в тапле отмечать заморозку, детали тут - https://www.postgresql.org/message-id/E1VutHv-000611-ED@gemulon.postgresql.org ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2017, 17:06 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
daevy, ID = 2 после версии 9.4 уже не используется. Заморозка строки определяется битами xmin_c, xmin_a = t. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 10:17 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
ncux199rus, Весь замес с заморозкой из-за того, что номера транзакций закольцованы в 32-битном пространстве — половина считается в прошлом, половина в будущем. И если в базе высокая пишущая нагрузка, может получиться так, что старые номера транзакций (в давно добавленных записях) внезапно “прыгнут” во вторую половину и система перестанет их видеть. Заморозка — специальная метка, говорящая, что не надо ориентироваться на номер транзакции в записи, запись должна быть видна всем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 10:22 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
vyegorovncux199rus, Заморозка — специальная метка, говорящая, что не надо ориентироваться на номер транзакции в записи, запись должна быть видна всем. То есть если номера транзакций пошли на третий, четвертый круг и т.д. то в таблице будут замороженные строки с одним номером и транзакции и они будут видны во всех снимках? Теперь понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 10:39 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
vyegorovncux199rus, что номера транзакций закольцованы в 32-битном пространстве аккуратнее говорить про кольцо с несколькими выколотыми из кольца точками. 2 -- абсолютное прошлое. (видное из любой тр-ии). заморозка и состоит в том, что строки, с номерами транзакций, видными из всех всё ещё открытых транзакций , помечаются отмороженными. (выносятся на обочину абсолютного прошлого, чтобы не налететь в кольце на хвост). есть еще и другие особые значения. 1 и 0 кажеццо. давно я в этом ковырялся. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 17:34 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
qwwqаккуратнее говорить про кольцо с несколькими выколотыми из кольца точками. Да, кольцо в 32-битовом диапазоне, в котором 2 бита зарезервированы под специальные нужды. При заморозке “включается” второй бит. Детальней тут: https://github.com/postgres/postgres/blob/master/src/include/access/transam.h#L20 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 17:54 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
qwwq, Номер 2 после версии 9.4 не используется. ссылка на ютуб. выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 17:55 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
ncux199rusqwwq, Номер 2 после версии 9.4 не используется. ссылка на ютуб. выше. прачо ролег вкрадцзе ? я их на дух не переношу, этих, из этого геркулеса. как то попробовал заслушать, ага. и,чесгря, не думаю что вы что-то из услышанного правильно поняли. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 09:50 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
ncux199rusqwwq, Номер 2 после версии 9.4 не используется. ссылка на ютуб. выше. а мне постгрес говорит что используются +))) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 14:00 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
daevy, https://www.postgresql.org/docs/9.6/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND Note: In PostgreSQL versions before 9.4, freezing was implemented by actually replacing a row's insertion XID with FrozenTransactionId, which was visible in the row's xmin system column. Newer versions just set a flag bit, preserving the row's original xmin for possible forensic use. However, rows with xmin equal to FrozenTransactionId (2) may still be found in databases pg_upgrade'd from pre-9.4 versions. Also, system catalogs may contain rows with xmin equal to BootstrapTransactionId (1), indicating that they were inserted during the first phase of initdb. Like FrozenTransactionId, this special XID is treated as older than every normal XID. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 14:48 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
Павел Лузанов, плохо у вас с ЧЮ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 15:15 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
daevyплохо у вас с ЧЮ Блин, реально подколол! )) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 16:05 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
daevyПавел Лузанов, плохо у вас с ЧЮ Правильно понимаю, что t_xmin = 2 - это номер обычной транзакции которая 107 раз обновилась? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 16:51 |
|
Vacuum Freeze, что происходит с номерами замороженных транзакций?
|
|||
---|---|---|---|
#18+
ncux199rusdaevyПавел Лузанов, плохо у вас с ЧЮ Правильно понимаю, что t_xmin = 2 - это номер обычной транзакции которая 107 раз обновилась?неправильно. вам же дали квоту из факинмануала. автор However, rows with xmin equal to FrozenTransactionId (2) may still be found in databases pg_upgrade'd from pre-9.4 versions. Also, system catalogs may contain rows with xmin equal to BootstrapTransactionId (1), indicating that they were inserted during the first phase of initdb. Like FrozenTransactionId, this special XID is treated as older than every normal XID. они с 9.4. поменяли место закладки с публичного на малопубличный (что выиграли -- не ясно. и для какого типа носителей -- тоже). похоже до 9.6. наяривали вхолостую. только б рука не остыла, типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2017, 19:06 |
|
|
start [/forum/topic.php?fid=53&msg=39509445&tid=1996268]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 425ms |
0 / 0 |