pgsql: Improve the -l (limit) option recently added to contrib/vacuumlo

Started by Tom Lanealmost 14 years ago3 messages
#1Tom Lane
tgl@sss.pgh.pa.us

Improve the -l (limit) option recently added to contrib/vacuumlo.

Instead of just stopping after removing an arbitrary subset of orphaned
large objects, commit and start a new transaction after each -l objects.
This is just as effective as the original patch at limiting the number of
locks used, and it doesn't require doing the OID collection process
repeatedly to get everything. Since the option no longer changes the
fundamental behavior of vacuumlo, and it avoids a known server-side
limitation, enable it by default (with a default limit of 1000 LOs per
transaction).

In passing, be more careful about properly quoting the names of tables
and fields, and do some other cosmetic cleanup.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/64c604898e812aa93c124c666e8709fff1b8dd26

Modified Files
--------------
contrib/vacuumlo/vacuumlo.c | 131 +++++++++++++++++++++++++++++++------------
doc/src/sgml/vacuumlo.sgml | 26 +++++----
2 files changed, 109 insertions(+), 48 deletions(-)

#2Heikki Linnakangas
heikki.linnakangas@enterprisedb.com
In reply to: Tom Lane (#1)
Re: [COMMITTERS] pgsql: Improve the -l (limit) option recently added to contrib/vacuumlo

On 21.03.2012 01:05, Tom Lane wrote:

Improve the -l (limit) option recently added to contrib/vacuumlo.

Instead of just stopping after removing an arbitrary subset of orphaned
large objects, commit and start a new transaction after each -l objects.
This is just as effective as the original patch at limiting the number of
locks used, and it doesn't require doing the OID collection process
repeatedly to get everything. Since the option no longer changes the
fundamental behavior of vacuumlo, and it avoids a known server-side
limitation, enable it by default (with a default limit of 1000 LOs per
transaction).

In passing, be more careful about properly quoting the names of tables
and fields, and do some other cosmetic cleanup.

Shouldn't this be backported? Without it, vacuumlo is effectively broken
in 9.0 and 9.1.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Heikki Linnakangas (#2)
Re: [COMMITTERS] pgsql: Improve the -l (limit) option recently added to contrib/vacuumlo

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:

On 21.03.2012 01:05, Tom Lane wrote:

Improve the -l (limit) option recently added to contrib/vacuumlo.

Shouldn't this be backported? Without it, vacuumlo is effectively broken
in 9.0 and 9.1.

I was wondering about that. You could argue for either "it's a new
feature" or "it's a bug fix". It's a simple enough change that I see
little risk in it, so the argument against backporting seems weak.

If there are not objections, I'll just copy the current vacuumlo code
in toto into 9.0 and 9.1.

regards, tom lane