Re: Well, we seem to be proof against cache-inval problems now
От | Bruce Momjian |
---|---|
Тема | Re: Well, we seem to be proof against cache-inval problems now |
Дата | |
Msg-id | 200101091350.IAA29972@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Well, we seem to be proof against cache-inval problems now (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Well, we seem to be proof against cache-inval problems now
|
Список | pgsql-hackers |
Can this now be marked as done? * Modification of pg_class can happen while table in use by another backend. Might lead to MVCC inside of syscache > I just finished running the parallel regress tests with inval.c rigged > to flush the relcache and syscache at every available opportunity, > that is anytime we could recognize a shared-cache-inval message from > another backend (see diff below). This setup gives a whole new universe > of meaning to the word "slow" --- it took *three full days* to run the > standard "make check" procedure, including eighteen hours just to do the > "vacuum template1" part of initdb. I kid you not. But it worked. > Looks like the unexpected-cache-entry-drop class of problems are indeed > gone. > > BTW, the reason the diff is rigged not to allow recursive cache flush > is not that it wouldn't work, it's that I didn't expect to live long > enough to finish such a test. I didn't originally have that restriction > in there (and indeed found a bug that way: relcache flush could go into > an infinite loop if hit with another SI inval before it'd finished the > initial flush). After fixing that bug, initdb was making steady > progress, but not at a rate that I wanted to wait out... > > regards, tom lane > > *** src/backend/utils/cache/inval.c.orig Wed Nov 15 23:57:44 2000 > --- src/backend/utils/cache/inval.c Mon Jan 1 17:27:53 2001 > *************** > *** 643,649 **** > --- 643,661 ---- > elog(DEBUG, "DiscardInvalid called"); > #endif /* defined(INVALIDDEBUG) */ > > + #if 1 > + /* DEBUG CHECK ONLY ... force cache reset at any opportunity */ > + static bool inReset = false; > + > + if (! IsBootstrapProcessingMode() && !inReset) > + { > + inReset = true; > + ResetSystemCaches(); > + inReset = false; > + } > + #else > InvalidateSharedInvalid(CacheIdInvalidate, ResetSystemCaches); > + #endif > } > > /* > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
В списке pgsql-hackers по дате отправления: