diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2012-03-21 13:04:12 -0400 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2012-03-21 13:05:05 -0400 |
| commit | 3bf25a2a16ca6efefa97f058da062b6c5933ebe1 (patch) | |
| tree | 7c5dc4b774cbc84e29a021e9fd61968bee9f4ae5 /src | |
| parent | d4a68363aff508a1179cd5e3f45f61a08104a1e1 (diff) | |
Back-patch contrib/vacuumlo's new -l (limit) option into 9.0 and 9.1.
Since 9.0, removing lots of large objects in a single transaction risks
exceeding max_locks_per_transaction, because we merged large object removal
into the generic object-drop mechanism, which takes out an exclusive lock
on each object to be dropped. This creates a hazard for contrib/vacuumlo,
which has historically tried to drop all unreferenced large objects in one
transaction. There doesn't seem to be any correctness requirement to do it
that way, though; we only need to drop enough large objects per transaction
to amortize the commit costs.
To prevent a regression from pre-9.0 releases wherein vacuumlo worked just
fine, back-patch commits b69f2e36402aaa222ed03c1769b3de6d5be5f302 and
64c604898e812aa93c124c666e8709fff1b8dd26, which break vacuumlo's deletions
into multiple transactions with a user-controllable upper limit on the
number of objects dropped per transaction.
Tim Lewis, Robert Haas, Tom Lane
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions
