Home > TYPO3 > Evo_nginx_boost mała aktualizacja

Evo_nginx_boost mała aktualizacja

Na prośbę użytkowników zmieniliśmy sposób usuwania cache po wykonaniu żądania typu POST. Do tej pory usuwaliśmy cache dla całej strony z której przyszedł POST. Wyobraźmy sobie sytuację w której mamy bardzo duże archiwum newsów. Każdy news zapisany do memcache miał czas wygaśnięcia ustawiony na 24h i więcej. Jeśli pojawił się komentarz pod dowolnym rekordem, memcache był czyszczony dla wszystkich rekordów. Rozwiązanie to może czasem się przydać ale dla serwisu newsowego, który ma kilkanaście tysięcy rekordów powoduje niepotrzebne uruchamianie CMS TYPO3.

Podczas instalacji wtyczki pojawiła się nowa opcja useUrlPrefixClear:

// class.tx_evo_nginx_boost.php line 212
  1.  if ($this->conf['useUrlPrefixClear'])
  2.   $this->clearUrlPrefixCache();
  3.  else
  4.   $this->clearPageCache($pObj->id);

Jeśli ustawimy useUrlPrefixClear na wartość true, każdy POST spowoduje usuwanie memcache dla stron zaczynających się od urla, z którego wyszło żądanie np: jeśli wyślemy POSTa z
www.mysite.com/mysubpage/article1/
memcache zostanie usunięty dla
www.mysite.com/mysubpage/article1/
www.mysite.com/mysubpage/article1/subarticle1
www.mysite.com/mysubpage/article1/subarticle2
www.mysite.com/mysubpage/article1/comment1
www.mysite.com/mysubpage/article1/comment2/single-view
etc

Zdecydowaliśmy się na takie rozwiązanie, ponieważ przypadek z mm_forum pokazał, że usunięcie memcache tylko dla jednego urla to zdecydowanie za mało. Mechanizm ten wciąż nie jest idealny ale intensywnie pracujemy nad tagowaniem rekordów zapisywanych do memcache. Tagowanie wniesie całkiem nowe możliwości do całego modułu i pozwoli na jeszcze bardziej wydajne działanie całego rozszerzenia.

Zobacz również:

  • Share/Save/Bookmark

Bartosz Aninowski TYPO3 Dodaj nowy tag, memcache, performance

  1. lipiec 27th, 2009 at 16:28 | #1

    How about assigning tags to cache entries, and then clearing cache by tags?

  2. lipiec 27th, 2009 at 18:39 | #2

    Hi Dan, Thanks for comment.
    As I mentioned in the post, we are working on it.

  3. lipiec 27th, 2009 at 21:19 | #3

    Oh – missed it ;)

  4. lipiec 27th, 2009 at 21:20 | #4

    BTW, I’m wondering how the performance of clearing cache by tags is on a large cache. I know that DB cache backend is very slow without the index on the tag column, but I haven’t tested memcached yet.

  5. pawel
    lipiec 28th, 2009 at 10:29 | #5

    DB cache in backend is very slow becouse structure of cache table is not optimal. We are creating very fast and simple cache table and try to store our tags as integers insetead slow text tags separated by comma so databese operations will be very fast but deleting from memcache can be slower becouse we have to delete pages one by one – key by key.

  1. Brak jeszcze trackbacków