There's no chance we go for 64bit transaction ids on the tuples themselves - the space increase would be far too big. The overhead of tuple headers is already a problem, and xmin/xmax are a significant portion of that. There were patches however that kept an 'epoch' (the upper 32bit of a 64bit transaction id) on a page level. Plus some rewrite logic when transactions that are too far away from each other to be repres…
Isn’t 64 bit, even duplicated, completely irrelevant to how much data is generally stored in a row?
How long will a 64 bit Transaction-ID last in PostgreSQL?
21–30 of 33 posts
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#22There's no chance we go for 64bit transaction ids on the tuples themselves - the space increase would be far too big. The overhead of tuple headers is already a problem, and xmin/xmax are a significant portion of that. There were patches however that kept an 'epoch' (the upper 32bit of a 64bit transaction id) on a page level. Plus some rewrite logic when transactions that are too far away from each other to be repres…
Why write the transaction ids in the tuples at all? In most production cases, transactions in flight are going to affect a small amount of rows overall, so you can just keep the data in memory, and store it to disk in a separate table if it gets large.
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#23What if we interpret Moore's law to say that transaction speed will double every 2 years?
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#24There's no chance we go for 64bit transaction ids on the tuples themselves - the space increase would be far too big. The overhead of tuple headers is already a problem, and xmin/xmax are a significant portion of that. There were patches however that kept an 'epoch' (the upper 32bit of a 64bit transaction id) on a page level. Plus some rewrite logic when transactions that are too far away from each other to be repres…
Isn’t 64 bit, even duplicated, completely irrelevant to how much data is generally stored in a row?
That doesn’t hold true when working on multi-terabyte tables or databases when physical disk space in a chassis is actually a boundary you have to consider.
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#25What if we interpret Moore's law to say that transaction speed will double every 2 years?
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#26> Mandrill uses a sharded Postgres setup as one of our main datastores. On Sunday, February 3, at 10:30pm EST, 1 of our 5 physical Postgres instances saw a significant spike in writes. The spike in writes triggered a Transaction ID Wraparound issue. When this occurs, database activity is completely halted. The database sets itself in read-only mode until offline maintenance (known as vacuuming) can occur.
> The database is large—running the vacuum process takes a significant amount of time and resources, and there’s no clear way to track progress.
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#27There's no chance we go for 64bit transaction ids on the tuples themselves - the space increase would be far too big. The overhead of tuple headers is already a problem, and xmin/xmax are a significant portion of that. There were patches however that kept an 'epoch' (the upper 32bit of a 64bit transaction id) on a page level. Plus some rewrite logic when transactions that are too far away from each other to be repres…
Why write the transaction ids in the tuples at all? In most production cases, transactions in flight are going to affect a small amount of rows overall, so you can just keep the data in memory, and store it to disk in a separate table if it gets large.
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#28This seems to be (with coincidental timing) the cause of Mandrill’s current outage [1]: > Mandrill uses a sharded Postgres setup as one of our main datastores. On Sunday, February 3, at 10:30pm EST, 1 of our 5 physical Postgres instances saw a significant spike in writes. The spike in writes triggered a Transaction ID Wraparound issue. When this occurs, database activity is completely halted. The database sets itself…
https://fosdem.org/2019/schedule/event/breaking_postgresql_o...
Re: How long will a 64 bit Transaction-ID last in PostgreSQL?
#29https://github.com/pgexperts/flexible-freeze
It just runs `VACUUM FREEZE` when you schedule it (usually daily), starting with the tables closest to hitting a wraparound.