pgsql: Improve the -l (limit) option recently added to contrib/vacuumlo
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(-)
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
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