| From: | Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr> | 
|---|---|
| To: | Jan Wieck <JanWieck(at)Yahoo(dot)com> | 
| Cc: | PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: autovacuum truncate exclusive lock round two | 
| Date: | 2012-11-15 22:31:47 | 
| Message-ID: | m24nkq8pm4.fsf@2ndQuadrant.fr | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Jan Wieck <JanWieck(at)Yahoo(dot)com> writes:
> Use this lmgr feature inside count_nondeletable_pages() of vacuumlazy.c to
> periodically check, if there is a conflicting lock request waiting. If not,
> keep going. If there is a waiter, truncate the relation to the point checked
> thus far, release the AccessExclusiveLock, then loop back to where we
> acquire this lock in the first place and continue checking/truncating.
I think that maybe we could just bail out after releasing the
AccessExclusiveLock and trust autovacuum to get back to truncating that
relation later. That would allow removing 2 of the 3 GUCs below:
>     autovacuum_truncate_lock_check = 100ms # how frequent to check
>                                            # for conflicting locks
This is the one remaining. Could we maybe check for lock conflict after
every move backward a page, or some multiple thereof? The goal would be
to ensure that progress is made, while also being aware of concurrent
activity, ala CHECK_FOR_INTERRUPTS().
Regards,
-- 
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2012-11-15 22:38:47 | Re: another idea for changing global configuration settings from SQL | 
| Previous Message | Peter Geoghegan | 2012-11-15 22:25:55 | Re: Index only scans wiki page |