On Thu, Feb 18, 2016 at 3:45 AM, Masahiko Sawada <sawada.m...@gmail.com> wrote: > Attached updated 5 patches. > I would like to explain these patch shortly again here to make > reviewing more easier. > > We can divided these patches into 2 purposes. > > 1. Freeze map > 000_ patch adds additional frozen bit into visibility map, but doesn't > include the logic for improve freezing performance. > 001_ patch gets rid of page-conversion code from pg_upgrade. (This > patch doesn't related to this feature essentially, but is required by > 002_ patch.) > 002_ patch adds upgrading mechanism from 9.6- to 9.6+ and its regression test. > > 2. Improve freezing logic > 003_ patch changes the VACUUM to optimize scans based on freeze map > (i.g., 000_ patch), and its regression test. > 004_ patch enhances debug messages in src/backend/access/heap/visibilitymap.c > > Please review them.
I have pushed 000 and part of 003, with substantial revisions to the 003 part and minor revisions to the 000 part. This gets the basic infrastructure in place, but the vacuum optimization and pg_upgrade fixes still need to be done. I discovered that make check-world failed with 000 applied, because the Assert()s added to visibilitymap_set were using | rather than & to test for a set bit. I fixed that. I revised the code in vacuumlazy.c that updates the new map bits rather heavily. I hope I didn't break anything; please have a look and see if you spot any problems. One big problem was that it's inadequate to judge whether a tuple needs freezing just by looking at xmin; xmax might need to be cleared, for example. I removed the pgstat stuff. I'm not sure we want that stuff in that form; it doesn't seem to fit with the rest of what's in that view, and it wasn't reliable in my testing. I did however throw together a little contrib module for testing, which I attach here. I'm not sure we want to commit this, and at the least someone would need to write documentation. But it's certainly handy for checking whether this works. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
-- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers