Seite 1 von 1

Cache

Verfasst: Do 13. Mai 2004, 09:58
von kummer
auf die gefahr hin, die entwicklergemeinde zu langweilen, möchte ich dennoch die frage nach dem caching nochmals aufbringen. einfach deshalb, weil es ganz so unwichtig eben doch nicht ist; insbesondere - und das dürfte viele betreffen - wenn die contenido-installation nicht alleine auf einem server läuft. nicht selten werden nämlich eine grosse zahl von domänen auf einem einzelnen server gehostet. und häufig ist dem kunden die anzahl mit-domains auf dem rechner gar nicht bekannt.

ich kann einen möglichen performancegewinn nicht beziffern; aber datenbankzugriffe (verbinden, query absetzen, resultate fetchen) benötigt typsicherweise nicht wenig ressourcen. hinzu kommt die inkludierung zahlreicher klassen und das ausführen von modulen.

mich würde interessieren, was ihr zum thema caching meint. ist das ein thema, das allgemein interessiert?

Verfasst: Mi 19. Mai 2004, 12:41
von 2Code
mich ja, nix geht meiner meinung nach über eine schnelle webseite. Wenn ich zeit hab mach ich mal an eine cache class...

Verfasst: Mi 19. Mai 2004, 12:46
von timo
2Code hat geschrieben:mich ja, nix geht meiner meinung nach über eine schnelle webseite. Wenn ich zeit hab mach ich mal an eine cache class...
beachte dann bitte auch den anderen Thread; Caching ist (leider) ein sehr komplexes Thema.

Verfasst: Mi 19. Mai 2004, 12:50
von kummer
das problem ist nun aber offenbar - wie ich mir habe auseinandersetzen lassen - nicht ganz so einfach zu lösen. es gibt ja bereits diverse cache-klassen und eine wird sogar mit contenido ausgeliefert (irrtum vorbehalten). die schwierigkeit ist mehr konzeptionaller natur.

man müsste nämlich bei jedem modul angeben können, ob und wie lange gecached werden darf. im template müsste man dann herausfinden können, wie lange die site gecached werden darf (kleinster eintrag in den enthaltenen modulen).

es wären also folgende anpassungen nötig:

(1) db-tabelle mit den modulen
(2) db-tabelle mit den templates
(3) backend bereich module (zur eingabe der max-cachedauer)

eine klasse allein machts also leider noch nicht, fürchte ich. und offengestanden mag ich solche anpassungen nicht an einer lokalen version durchführen, wenn es dann keinen eingang in künftige versionen findet.

Verfasst: Mi 19. Mai 2004, 13:19
von timo
Ich würde noch weitergehen und sagen, daß eine "Cache"-Zeit nicht grade nützlich ist.

Denn: Wenn eine Änderung gemacht wird, muß auch eine Änderung passieren. Also müßte das Modul selbst bestimmen, ob sich etwas geändert hat.

Wenn man dies nicht beachtet, so fragen sich die Benutzer, was da nicht stimmt. Benutzer A: "Bei mir ist es aber da!". Benutzer B: "Bei mir aber nicht!".

Verfasst: Mi 19. Mai 2004, 14:01
von kummer
timo hat geschrieben:Ich würde noch weitergehen und sagen, daß eine "Cache"-Zeit nicht grade nützlich ist.
Denn: Wenn eine Änderung gemacht wird, muß auch eine Änderung passieren. Also müßte das Modul selbst bestimmen, ob sich etwas geändert hat.
da gehen die meinungen offenbar auseinander. oracle bietet zum beispiel mit materialized views tabellenauszüge an, für die der ersteller eine aktualisierungsperiode bezeichnet. und datenbanken sind ja eigentlich genau dazu da, aktuelle informationen auszugeben. allerdings verzichet man bewusst auf top-aktualität zugusten von performance.

ein modul, welches zum beispiel einen rss-feed bezieht, müsste ja nicht exakt in dem moment, wenn eine news publiziert wird, diese auch ausgeben. wenn die cachezeit auf z.b. 15 minuten festgesetzt ist, werden news nach spätestens 15 minuten (typischerweise jedoch früher) angezeigt.

das mag vielleicht für die angabe aktueller wechselkurse oder börsennotierung nicht gelten, für die meisten anderen dinge aber schon.

dass ein modul feststellt, ob sich das resultat seit seiner letzten ausführung geändert hat, ohne das es ausgeführt wird, ist von mir aus gesehen nicht möglich und würde ich von vorneherein nicht anstreben.

Verfasst: Mi 19. Mai 2004, 14:51
von 2Code
Ich denke das das stark auf die webseite ankommt, wenn ich mit contenido nur statischen seiten simuliere, dann ist das caching ziemlich einfach zu realisieren. Und bei vielen modulen läst sich caching mit Hilfe der get parameter recht einfach realisieren.

Timo du hast recht, wenn man immer erst eine 15min warten muss um zu kucken ob irgentwo ein rechschreibfehler( vorsicht sparwitz ) drin ist ist das nicht der hit. Allerdings kann man eine seite recht einfach aus dem cache löschen wenn der editor aufgemacht wird...

Verfasst: Mi 19. Mai 2004, 15:38
von kummer
vor allem kann man ja für die vorschau das caching ausschalten...