Tom Lane wrote:
"Matthew T. O'Connor" <matthew@zeut.net> writes:
I'm not sure what you are saying here, are you now saying that partial
vacuum won't work for autovac? Or are you saying that saving state as
Jim is describing above won't work?
I'm saying that I don't like the idea of trying to "stop on a dime" by
saving the current contents of vacuum's dead-TID array to disk with the
idea that we can trust those values 100% later. Saving the array is
expensive both in runtime and code complexity, and I don't believe we
can trust it later --- at least not without even more expensive-and-
complex measures, such as WAL-logging every such save :-(
I'm for stopping only after completing an index-cleaning pass, at the
point where we empty the dead-TID array anyway. If you really have to
have "stop on a dime", just kill -INT the process, accepting that you
will have to redo your heap scan since the last restart point.
OK, so if I understand correct, a vacuum of a table with 10 indexes on
it can be interrupted 10 times, once after each index-cleaning pass?
That might have some value, especially breaking up the work required to
vacuum a large table. Or am I still not getting it?
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq