MemcachedStorage – nemažou se záznamy přes tagy po nějakým čase

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Kancek
Člen | 2
+
0
-

Ahoj,
máme více webů, se stejným CMS, kde používáme memcache a mažeme záznamy přes tagy. Doteď nebyl problém. Teď máme větší web, který podstatně více využívá memcache a po nějaké době přestává fungovat mazání záznamů pomocí tagů. Když ji celou vymažeme pomocí Cache::ALL, tak se změny projeví a zase mazání na chvíli funguje, asi než se zase memcache více naplní (ne úplně celá). Dělalo to s Nette 2.3 i 2.4.

Nevím jestli je podstatné posílat nějaké kódy, když to na jiných webech šlape jak má a tak bych soudil, že v tom chyba nebude.

Budu rád za nějakou radu, kde co ještě otestovat, nebo jestli se to někomu už někdy stalo ?

ZahorskyJan
Člen | 59
+
0
-

@Kancek stalo se mi přesně to stejné na našem eshopu a u nás to bylo způsobeno tím, že v určitých místech bylo několik cachovanych metod za sebou. I když se záznam správně invalidoval podle tagu, tak kvůli velké návštěvnosti se jeden z prvků stihl načíst špatně a pak to na výstupu vypadalo, že se to vůbec neinvaliduje. Přišel jsem na to docela náhodou. Do té doby se mi chybu nepodařilo na dev serveru replikovat.

Co ale nakonec s memcache byl největší problém u větší systému a provozu bylo to, že se pro fungování tagů využívá klasický nette file journal (mám pocit, že ve 2.4 nette ho nahradil sqllite) a nestačila nám u něj node size, která je nastavená konstantou v samotné třídě. Náhodně to přeteklo a shodilo celou aplikaci. Řešení bylo přejít na Redis jak pro cache tak pro journal a chystám se i na session. S Kdyby\Redis to bylo za chvilku a od té doby žádné problémy s cache nebyly.

Kancek
Člen | 2
+
0
-

Kdyby\Redis jsme měli v záloze, kdyby jsme to jinak nevyřešili a asi ani jinou možnost momentálně nemáme. FileJournal nám taky házel chybu Malformed journal file btfj.dat a shazoval nám web a proto jsme přešli na 2.4, jak říkáš s SQLiteJournal. Každopádně díky za reakci.