PDA

Vollständige Version anzeigen : Zend_Cache Verbesserungen ?


ice-breaker
06.09.2008, 20:59
Also heute flatterte bei mir im Briefkasten das neue PhpMagazin rein und ich bin immer ziemlich erfreut, da man meist noch die eine oder andere gute anregung mitnimmt.

Heute stand in der ezComponents-Kolumne etwas über deren neue Caching-Strategien (http://www.phpro.org/articles/eZ-Components-Cache.html) (habe euch mal nen Artikel darüber gesucht).
Es ist ja so, dass man als einfacher Startup keine teuren Caching-Server kaufen kann die Gigabyteweise Ram haben, deswegen haben die ez-Macher einen CacheStack eingeführt, man kann also den schnellen Memcached-Cache vor den Filecache schalten. Zu welchem Zweck? Die zu cachenden Daten sind eventuell zuviel für den Ram und so kann man hoch frequentierte Keys oder Strukturen in den schnellen Memcached legen und die vielen kleineren Dinge zur Entlastung in Files auslagern.
Die Implementation entscheidet anhand von Algorithmen wie LFU (Least Frequently Used) oder LRU (Least Recently Used) in welchen Cache es die Daten schiebt oder anhand der Abfragtrate verschiebt, mit dem Tagging in Zend_Cache könnte man das bestimmt auch noch beeinflußen.
Was haltet ihr von sowas?

Also ich persönlich finde es eine super Idee, und könnte mir vorstellen mit anderen dies zu entwickeln, eben ein Zend_Cache_Stack, eventuell könnte man auch den Best fit mode (http://framework.zend.com/wiki/display/ZFPROP/Zend_Cache+best-fit+mode) mit berücksichtigen.

Edit: eZ Components API zu ezcCacheStack (http://www.ezcomponents.org/docs/api/latest/Cache/ezcCacheStack.html)

KingCrunch
06.09.2008, 21:03
Grundsätzlich nen Gedanke wert, entspricht dies doch im Großen und Ganzen dem klassischen Caching wie er auch bei Prozessoren stattfindet. Wenn mich nicht alles täuscht dient Zend_Memory dazu Daten, die nicht in Speicher passen, woanders abzulegen. Denkbar wäre es zwischen den beiden Komponenten nen Adapter zu basteln. Ich frage mich allerdings ab welcher Größenordnung sich das rechnet. Selbst wenn man nur ein Server mit 2GB Speicher hat, kann man da drin schon ne ganze Menge ablegen ;)

ice-breaker
06.09.2008, 21:11
Hmm, ich dachte Zend_Memory wäre nur für die Laufzeit, habe es jedoch auch noch nie genutzt, da ich bisher zur Laufzeit noch nie zu wenig Ram hatte.

Ja in 2GB passt eine Menge, ABER die 2GB stehen ja nicht alleine dem Memcached-Cache (als Beispiel) zur Verfügung, da geht nochmal einiges für MySQL weg, nochmal der Webserver, und die Instanzen von einigen Programmen, da könnten eben vllt 2GB Ram sogar etwas wenig werden. Ich dachte nur eben beim lesen, hey, das ist aber eine Klasse Idee. das wäre ja eventuell auch was für das Zend Framework, denn die ez Macher haben sich bestimmt etwas dabei gedacht.