|
|
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
http://www.postgresql.org/docs/9.4/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. The data type used by these functions, txid_snapshot, stores information about transaction ID visibility at a particular moment in time. -- хочу вот этого вот -- "export [xid] a 64-bit format that is extended with an "epoch" counter so it will not wrap around during the life of an installation" для xid-ов из pg_stat_activity ------------------ контекст: -- нужен "естественный" генератор тиков в БД. текущий txid негоден -- коммиты идут в другом порядке. Есть желание поюзать Код: sql 1. -- нужен {F} -- этот самый способ "extend" ... so it will not wrap around during the life of an installation". PS: если задача в текущей постановке не решается -- есть ли другой подход к ней в том же контексте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 12:37 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
Инфо к : разница меж : Код: sql 1. 2. константна в большом диапазоне времен. 0 -- для свежих базёнок. и , судя по всему , что-то похожее на N*[2^32::bigint] Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. -- итак -- где валяется это самое N ??? (или delta) [как его поймать косвенно -- уже понятно -- вопрос, как не промахнуться в моменте] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 13:08 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
qwwq http://www.postgresql.org/docs/9.4/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. The data type used by these functions, txid_snapshot, stores information about transaction ID visibility at a particular moment in time. -- хочу вот этого вот -- "export [xid] a 64-bit format that is extended with an "epoch" counter so it will not wrap around during the life of an installation" для xid-ов из pg_stat_activity ------------------ контекст: -- нужен "естественный" генератор тиков в БД. текущий txid негоден -- коммиты идут в другом порядке. Есть желание поюзать Код: sql 1. -- нужен {F} -- этот самый способ "extend" ... so it will not wrap around during the life of an installation". PS: если задача в текущей постановке не решается -- есть ли другой подход к ней в том же контексте. А transactionid тоже вообще то идут не в порядке коммитов. А в порядке begin ов (а реально даже сложнее). Используйте nextval() из sequence и вам на всю жизнь хватит, не стоит привязываться к внутренним деталям базы. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 13:22 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
Maxim BogukА transactionid тоже вообще то идут не в порядке коммитов. А в порядке begin ов (а реально даже сложнее). Используйте nextval() из sequence и вам на всю жизнь хватит, не стоит привязываться к внутренним деталям базы. --Maxim Boguk www.postgresql-consulting.ru господин КО не заметил, что я именно от этого и стартую и именно от этого (генератора чего бы то ни было) хочу уйти. [то, что отслеживаемые во времени min (transactionid) |с поправкой на wraparround -- монотонны -- надеюсь не ускользнуло от КО ?] но видимо таки господин КО прав. нужно привязаться к какому то sequence, [даже, вероятно не просто сиквенсу, но уложенному в табличку завершенным коммитом]. уж больно долго получается ловить это дело снаружи: Код: sql 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. --предполагается, что интересуемся всегда из пишущей транзакции. т.е. мн-во (transactionid IS NOT NULL) не пусто -- надо-бы как-то изнутри достучаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 14:00 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
qwwq [то, что отслеживаемые во времени min (transactionid) |с поправкой на wraparround -- монотонны -- надеюсь не ускользнуло от КО ?] -- утверждение неверное, основано на неявной ошибочной посылке, что locks пополнятеся transactionid в порядке возбуждения транзакций мои извинения КО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 20:26 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
Продолжаю хотеть странного : теперь хочу увидеть последние закоммиченные (полностью) данные. смотрю изнутри транзакции, "закоммиченные" коей данные хочу отбросить т.е. Код: sql 1. т.е. нужна F2(bigint) подходы: 1. могу смотреть на себя через dblink. накладно (поднимать соединение в каждой такой сессии) 1.1. на себя через fdw -- ещё накладнее (как правило -- по соединению на каждый вызов --т.е. вообще куча соединений) 2. выяснять шифт между txid_current() и txid через pg_locks несколько накладно (см. выше), да и надо обеспечить непустоту pg_locks по своему pid на момент опроса 2.1. то же делается вставкой в любую, хоть времянку, с прямым опросом только что вставленного xmin (тоже дорого, хотя и дешевле хитровывернутого п.2.) -- но наличие нормальной ф-ии возвертающей либо xid[==xmin] либо (txid_current()-xid::text::bigint) -- было бы премного удобней. Оно где-то есть ? пусть и неподоканное ? Или его таки нет ? (pg_proc навскидку ничего похожего не содержит) разом нас, велосипедистов, багато: http://www.sql.ru/forum/1120740/txid-current-xmin?mid=16698801&hl=xmin#16698801 и много ещё т.п. (включая лондайст и pgq) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 12:00 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
qwwq, > нужен "естественный" генератор тиков в БД зачем? что вы делаете? нету в базе никаких "тиков" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 15:30 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinqwwq, > нужен "естественный" генератор тиков в БД зачем? что вы делаете? нету в базе никаких "тиков" это отпавшая ветка хотения. хочу простую вещь -- ф-ю, пусть волатильную, в моменте отображающую txid в xid. или обратно. т.е. исчислять вот эту вот циклическую разницу, в несколько 2^32. просто -- хочу, и не понимаю, почему её нет. наверное я не там ищу. а делать я собираюсь всё то же самое, что нужно делать например в лондайсте и т.п. штуковинах -- выстравиать ивенты таблиц в порядке их коммитов. не зная момента коммита в момент записи ивента. -- т.е. решать некорректную задачу в каком-то приближении. (какой-то из порядков полагая неважным, но не все). теперь я просто хочу устанавливать хоть что-то о конкурентах. и смотрю, что для этого у меня есть в наличии. т.е. теперь мне захотелось почитать немного закоммиченных конкурентами данных[, за вычетом "закоммиченных" в текущей транзакции] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 16:29 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
qwwq, поздравьте меня, я болван Код: sql 1. бггггггггггггггг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 16:47 |
|
||
|
[хочу странного] How to extend xid to bigint
|
|||
|---|---|---|---|
|
#18+
<a href=" http://ololo-alala.livejournal.com/">Бгг</a> интересно тут у вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2015, 12:04 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=1998067]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 412ms |

| 0 / 0 |
