From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Add database to PGXACT / per database vacuuming |
Date: | 2013-08-30 18:15:15 |
Message-ID: | 5220E133.3030109@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 30.08.2013 21:07, Heikki Linnakangas wrote:
> On 30.08.2013 19:01, Andres Freund wrote:
>> For the logical decoding patch I added support for pegging
>> RecentGlobalXmin (and GetOldestXmin) to a lower value. To avoid causing
>> undue bloat& cpu overhead (hot pruning is friggin expensive) I split
>> RecentGlobalXmin into RecentGlobalXmin and RecentGlobalDataXmin where
>> the latter is the the xmin horizon used for non-shared, non-catalog
>> tables. That removed almost all overhead I could measure.
>>
>> During that I was tinkering with the idea of reusing that split to
>> vacuum/prune user tables in a per db fashion. In a very quick and hacky
>> test that sped up the aggregate performance of concurrent pgbenches in
>> different databases by about 30%. So, somewhat worthwile ;).
>>
>> The problem with that is that GetSnapshotData, which computes
>> RecentGlobalXmin, only looks at the PGXACT structures and not PGPROC
>> which contains the database oid. This is a recently added optimization
>> which made GetSnapshotData() quite a bit faster& scalable which is
>> important given the frequency it's called at.
>
> Hmm, so you're creating a version of GetSnapshotData() that only takes
> into account backends in the same backend?
I mean, only takes account backends in the same database?
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2013-08-30 18:29:16 | Re: Add database to PGXACT / per database vacuuming |
Previous Message | Heikki Linnakangas | 2013-08-30 18:07:04 | Re: Add database to PGXACT / per database vacuuming |