PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Entwicklung und Softwaredesign (http://www.selfphp.de/forum/forumdisplay.php?f=14)
-   -   Cachen von Threads (http://www.selfphp.de/forum/showthread.php?t=21365)

floorball92 26.04.2009 14:25:45

Cachen von Threads
 
Servus,

entwickle derzeit ein Forum und bin beim Punkt Caching in der Konzeption. Mein Ziel ist es, durch Caching möglichst hohe Performance zu gewinnen, ist klar, aber die Dynamik der Anwendung sollte dadurch nicht gestört werden.

In wiefern ich den Cache updaten werde, ist zwar schon durchdacht, tut hierfür aber nichts zu Sache, deshalb lass ich das einfach mal weg.

Mir gehts eher darum, möglichst sinnvoll meine Threads zu cachen.

Ein Output Cache macht imho keinen SInn, da sich dieser aufgrund der Identität des Nutzers ändert/ändern kann.

Daher dachte ich daran, die einzelnen Beiträge als XML zu cachen und daraus einen Thread zu generieren.

Nun kommt die nächste Überlegung: wenn ich alle Beiträge cache, habe ich größere Cache Dateien und eine größere Datenmenge bei der Datenbank abfrage. Gerade bei laufenden Themen kann so ein relativ großer Datenbanktraffic entstehen, wenn der Thread oft modifiziert wird.

Zum anderen bin ich so natürlich freier, da ich die Möglichkeit habe, Beispielsweiße die Beitragsanzahl zu modifizieren, ohne meinen kompletten Cache neu generieren zu lassen.

Was sagt ihr dazu?

Gruß Sebastian

Domi 27.04.2009 10:57:24

AW: Cachen von Threads
 
Kann dir noch nicht so ganz im Detail folgen und verstehe deine genaue Frage auch nicht.

floorball92 27.04.2009 15:12:40

AW: Cachen von Threads
 
Also:

Ich programmiere ein Forum.

Um eine hohe Performance zu erreichen, möchte ich neben statischen Seiten auch die Threads Cachen.

Da ein Thread ja je nachdem, wer ihn anschaut, beeinflußt wird, kann ich ja schlecht den kompletten Output Cachen, sprich das fertig generierte HTML Markup.

Deshalb dachte ich mir, die einzelnen Posts als XML zu speichern, und anhand der XML Daten den Thread zu generieren, und mir die Datenbankabfrage zu sparen.

Nun ist dann die Frage, ein Thread besteht ja oft aus mehreren Seiten. Sollte ich dann die einzelnen Seiten Cachen, also deren Posts, also für jede Seite eines Threads eine einge XML Datei in den Cache werfen, oder eine einzige pro Thread (hätte den Vorteil, dass ich auch jederzeit die Anzahl der Beiträge pro Seite ändern könnte).

Domi 27.04.2009 19:05:30

AW: Cachen von Threads
 
also wenn ein kleines Forum schon probleme hat mit der Performance, dann würde ich die allg. Programmierweise oder die Hardware in Frage stellen. Ist es aber ein größeres Forum mit vielen, vielen Benutzern, könntest du die eh überlegen, ob du das ganze nicht ganz anders angehen willst, sprich evtl viel bessere Hardware, Load balancing, Cluster, Memcache, usw..

Gruß
Domi

floorball92 27.04.2009 20:22:43

AW: Cachen von Threads
 
Natürlich gehe ich immer vom best case aus, sprich es werden viele Nutzer kommen, die noch mehr Themen schreiben. Davon auszugehen, dass eine inperformante Programmierung schon ausreichen wird, finde ich einfach unangebracht, vor allem, wo so ein simpler Dateicache, sofern man sich überlegt hat, wie man ihn am günstigsten gestaltet, wirklich keine große Arbeit ist.

Und das, was ich damit gut mache, muss ich net in gute Hardware stecken :D

feuervogel 27.04.2009 22:00:30

AW: Cachen von Threads
 
man kann einen gecached-wert auch abhängig von einem schlüssel machen. dieser schlüssel kann z.b. ein timestamp sein, oder die gruppen-id-kombination oder ähnliches. und ein datei-basierter cache dürfte recht langsam sein, wenn dann sollte schon ein ram-cache herhalten, damits wirklich halbwegs schnell wird.

floorball92 28.04.2009 14:20:42

AW: Cachen von Threads
 
Naja, wie ich sagte, habe ich vor, alle Threads zu cachen. Dir sollte klar sein, dass ein Ram Cache so eine große Datenmenge wohl nicht verarbeiten kann.

Allerdings sollte die Performance mittels Datei Cache immernoch schneller sein, als über eine direkte Datenbankabfrage, vom Datenbank Traffic mal ganz abgesehen.

Mir geht es nur darum, ob die XML Variante sinnvoll ist und ob alle Posts in einer Datei sinnvoller ist, als für jede Seite eine Cache Datei.

Und ob allgemein der Weg über XML günstig ist, denke mal CSV sollte schneller sein, aber wesentlich unflexibler.

Big-Gremlin 02.06.2009 04:47:11

AW: Cachen von Threads
 
bau dir deine XML-Variante...lass das Script 100mal durchlaufen...mittels microtime ermittelst die Dauer des ausgeführen Scripts und speicherst die Werte zb in ne Datenbank

dann machste das Gleiche mit der reinen Datenbankvariante...

bei beiden ermittelst den Zwischenwert...dann siehste ob es sich lohnt

du kannst denk ich nicht pauschal sagen was besser ist...es kommt halt auch drauf an wies programmiert ist und sicherlich auch welche methoden du verwendest (SimpleXML? XMLWriter/Reader? oder PDO? MySQLi? oder einfaches MySQL?)

willst du die komplette Datenbank weg lassen??? ich denke eher nicht...weil ein Forum rein mit XML würde zwar gehen...aber Holla die Waldfee..ob sich das lohnt? *g*

oder willst du Threads erst in eine XML speichern und irgendwann (cronjob? gewisse anzahl von posts?) in die Datenbank aufnehmen??

oder willst du sowohl in die XML, als auch in die Datenbank speichern?? und nur beim Thread laden, die XML aufrufen?

ehrlich gesagt check ich auch nachm 5ten mal durchlesen noch nicht so richtig, was du genau willst *g* also schonmal sorry wenn ich komplett daneben gegriffen habe


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:05:33 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.