Tom Lane escribió: > Alvaro Herrera <[EMAIL PROTECTED]> writes: > > Gregory Stark escribi�: > >> A crazy idea I just had -- what if you roll this into the deadlock check? > >> So > >> after waiting on the lock for 1s it wakes up, finds that the holder it's > >> waiting on is an autovacuum process and cancels it instead of finding no > >> deadlock. > > > Another crazy idea is to have some sort of "blacklist" of tables in > > shared memory. Any autovacuum process would skip those tables. > > The deadlock check idea sounds promising to me, not least because it > avoids adding any cycles in performance-critical paths. I'm not certain > how easy it'd be to fold the idea into the checker though. That > logic is pretty complicated :-( and I'm not sure that it makes a > consistent effort to visit every possible blocker.
The idea sounds interesting, but I am not at all sure how to fit it in the deadlock code. I am totally uninclined to mess with this stuff. I am barely aware of what exactly is it doing; I don't have the slightest idea how to modify it to cancel autovacs. Furthermore it sounds very much like a layering violation (what is deadlock.c doing with autovac processes anyway). -- Alvaro Herrera http://www.advogato.org/person/alvherre "Pensar que el espectro que vemos es ilusorio no lo despoja de espanto, sólo le suma el nuevo terror de la locura" (Perelandra, CSLewis) ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate