Post Cache Mod

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Waagenbauer
Mitglied
Beiträge: 219
Registriert: 11.06.2001 02:00
Kontaktdaten:

Post Cache Mod

Beitrag von Waagenbauer »

Gibt es einen Mod oder ein Script, welches Postings oder ganze Topic-Seiten in einen Cache bzw. files speichert?
Bei Aufruf soll aus dem Cache gelesen werden.
Die gecachte Seite oder der gecachte Text wird beim abschicken und editieren/löschen eines Postings/Topics erneuert.
http://www.kaltmacher.de - Die Seite für PC-Freaks und Profis.
Michael Zacher
Mitglied
Beiträge: 1620
Registriert: 03.01.2004 23:12
Wohnort: Aken (Elbe)

Beitrag von Michael Zacher »

Allein serverbedingt sollte das recht schwierig werden.
Stell Dir mal vor, dass gerade jemand einen Beitrag schreibt, während ein Moderator einen anderen Post editiert oder ein anderer User einen Post ediert.
Irgendwie würde sich das ja überschneiden und dann kommen irgendwelche missgestaltenen Themen/Beiträge bei raus. :-?
Mit freundlichen Grüßen / Best regards / Met vriendelijke groeten

Michael Zacher
Benutzeravatar
Waagenbauer
Mitglied
Beiträge: 219
Registriert: 11.06.2001 02:00
Kontaktdaten:

Beitrag von Waagenbauer »

Die gecachten Topics sollten nur Gästen (Suma) angezeigt werden.
Man könnte es so lösen (wie bei meinem Foren-Cache für Gäste), dass die Liste der zu cachenden Topics nur z.B. stündlich aktuallisiert wird.
Für Artikel, also Topics die nie oder selten geändert werden, kann der Cache für alle User gelten.
Ich werde das mal selber coden. Denke, nur das automatische erstellen der Topicliste nicht einfach zu machen ist.
http://www.kaltmacher.de - Die Seite für PC-Freaks und Profis.
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

mrgreen
Mitglied
Beiträge: 168
Registriert: 06.07.2006 02:02

Beitrag von mrgreen »

Habe mich mit dem Beitrags Cache System von dir nun ausgiebig befasst.

Sehr zu empfehlen !!!!!

:lol:
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

@ amigalink
Schade, dass ich die Entwicklung dieses Mods erst so spät entdeckt habe.

Die Idee ist super. Mir gefällt der Mod.

Ich werde versuchen die Idee bei mir mal umzusetzen, wobei ich aber gänzlich ohne die Statusanzeigen oder Recachefunktion arbeiten wollte bzw. ohne Datenbank. Ein simpler Einbau gestaltet sich als etwas schwierig seit dem CH eigene Funktionen für das Auslesen von Beiträgen besitzt.

Du hast die sicher schon ohne der genannten Funktionen (Icons, ohne SQL, etc.) durchdacht. Welche Schwierigkeiten hattest Du dabei?

Ich brauch meiner Meinung nach keine zusätzlichen Informationen für den "Endverbraucher", mit denen er kein Benefit hat. Daher dachte ich an eine "trockene" Lösung.

Denkbar wäre auch eine Lösung, die die viewtopic-Abfragen leicht entlastet. Ich denke dabei vor allen Dingen an die Abfrage der viewtopic:
$sql = "SELECT u.username, u.user_id, usw., p.*, pt.post_text, pt.post_subject, pt.bbcode_uid
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
WHERE p.topic_id = $topic_id
$limit_posts_time
AND pt.post_id = p.post_id
AND u.user_id = p.poster_id
ORDER BY p.post_time $post_time_order
LIMIT $start, ".$board_config['posts_per_page'];
Die drei fett geschriebenen Werte könnte man aus der Cache file holen, aber natürlich wie bereits von Dir bestens umgesetzt als fertig geparste Inhalte.

Also da man die Texte eh schon gecached hat, kann man dann in dem Fall sogar auf das Auslesen aus der Datenbank verzichten.

Bei der Idee hatte ich auch jetzt nicht daran gedacht die posts einzeln zu cachen, sondern die topics pro Seite inkl. posts. Dann hat man auch keine Bedenken, was die Größe der Cachedatei anbelangt.

Ein Cachen erfolgte dann nur, wenn die Seite voll ist. Also wenn kein neuer Beitrag mehr auf der Seite erscheinen kann. Rest ist wie gehabt. If EDIT recache, if DELETE delete usw.

Ich Trottel hatte die ganze Zeit versucht etwas zu coden, was die komplette Seite inkl. aller Inhalte parst. Auf ein reines Beitragscaching bin ich gar nicht gekommen (reicht ja :D).

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Hallo mgutt.

Zusätzliche Queries werden, beim Darstellen der Beiträge, von meinem Cache nicht erzeugt. Lediglich wenn der Cache erstellt bzw. erneuert wird, gibt es einen zusätzlichen Datenbankzugriff.
Die Indikatoren sind eigentlich nicht für die Benutzer gedacht, sondern dienen dem Admin und den Mods. Dem normalem User fallen die Bunten Punkte gar nicht auf (sind ja auch absichtlich relativ unauffällig gewählt worden). Zumindest bin ich auf meinem EmF noch nicht darauf angesprochen worden (Obwohl ich ein paar User habe, die sofort nachfragen wenn sie etwas neues Entdecken dessen Bedeutung sie noch nicht kennen). Auf AmigaLink.de gibt es auch bereits eine kleine Codeänderung, die bewirkt das die Indikatoren auch wirklich nur den Mods und Admins angezeigt werden.

Was die Entlastung der viewtopic abfragen anbetrifft.
Es wurde mal ein MOD entwickelt der ebenfalls die Beiträge Cached. Den Cache aber nicht in Dateien ablegt, sondern in der Datenbank. (Das Ding ist nie fertiggestellt oder releast worden).
Das ermöglicht zwar die Queries der viewtopic zu senken, ist aber langsamer als meine Methode. :D Das weiss ich weil der genannte MOD mal auf oxpus.de gelaufen ist (nein er wurde nicht von oxpus entwickelt) und nun durch meinen ersetzt wurde. :P

Schwierigkeiten hatte ich bei der Entwicklung des MODs überhaupt keine. :)
(Er ist halt gut durchdacht. ;o))
Einzig und alleine die Statistik und Cacheverwaltung im ACP (nicht die Konfiguration) kann auf sehr großen Boards zu einem Timeout führen. Das ist aber die Natur der Dinge und nicht weiter Tragisch.
Denn die Statistik ist unwichtig und kann abgeschaltet werden und den Cache kann man auch direkt via FTP löschen (Wenn man ihn unbedingt mal löschen möchte). ;)
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ja die Fehlermeldung habe ich gesehen.

Aber das kannst Du simpel mit einem count(glob()) steuern und einem Refresh. Ich denke Du weißt was ich meine.

Das mit dem zusätzlichen Query hatte ich dann falsch nach gelesen. Mein Fehler.

Was hälst Du denn von der Idee die Topics pro Seite zu cachen. Dies bringt zwar keinen Vorteil bei der Sortierung (oder doch, je nachdem, wie man das anpackt), aber die Sortierung nutzen meiner Meinung nach <0,1% aller User. (auch ein Grund warum ich sie entfernt habe)

So könnte man 10 Beiträge in eine Cachedatei legen. Bei mehr als 50.000+ Beiträgen ist es denke ich einfacher vom Handling her.

Das ein Problem mit der Anzahl der Dateien auftauchen kann, kann ich widerlegen. Ich hatte bestimmt 100.000 Dateien alleine vom Attachment Mod, aber heute bin ich tatsächlich hingegangen und habe es in Jahr und Monat unterteilt (also die Attachments). Es war einfach nervig, dass man per ftp keinen Zugriff mehr auf das Verzeichnis bekommen konnte ;)

Dann habe ich gesehen, dass Du die Beiträge packst. Hast du mal getestet, ob es schneller ist darauf zu verzichten? Könnte ich mir eigentlich gut vorstellen bei bis zu XX Beiträgen pro Seite.

Es ist ein wirklich interessantes Thema. Ich werde versuchen eine Lösung für CH zu machen, wobei das nur ein Dirty Script wird ohne Config. Aber vielleicht kommt man so zu einem perfekten Ergebnis.

Mich stört es in jedem Fall wenn ein Beitrag schon gecached wurde, warum diese Information dennoch aus der Datenbank ausgelesen wird. Ich weiß bei Dir wird nicht jeder Beitrag gespeichert, aber ich stelle mir das gerade unter der Voraussetzung Cachedatei pro Topicseite vor.

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ja ich weiss was du mit dem refresh meinst. Das ist auch ungefähr die Lösung die ich im Hinterkopf habe. :D

Von der Möglichkeit ganze threads bzw. dessen Seiten zu cachen halte ich gar nichts.
Die Methode bringt keinen Geschwindigkeitvorteil, sondern kompliziert nur die Cacheverwaltung. (Stichwörter: Anzeigereihenfolge ändern, Anzeige der Beiträge pro Seite ändern, Beiträge löschen, verschieben, editieren, ...) Beim Cachen der einzelnen Beiträge brauch man sich da keine weiteren Gedanken zu machen. ;)

Was das Komprimieren anbetrifft. Die erste Alpha war noch ohne Komprimierung und hatte keinerlei Geschwindigkeitvorteile. Benötigte aber ein vielfaches des jetzigen Speicherplatzes.
Auch solltest du dich nicht daran stören das die Beitragsdaten weiterhin aus der Datenbank gelesen werden. Der Geschwindigkeitvorteil kommt durch das Verhindern der Ausführung von Performanceträchtigen PHP Routinen. Wenn die Queries senken willst, dann ist ein Beitragscache der falsche weg. Denn Post-Text, Subjekt und BBCode_UID sind bestandteil einer abfrage die du sowieso machen musst und erzeugen nur einen einzigen querie. Diesen Querie kannst du nur einsparen wenn du vorher bereits weisst das die Daten anderwertig vorliegen, was du wiederum irgendwie ermitteln musst. Unter Umständen geht das Schuss dann nach hinten los und du hast 1 oder sogar 2 Queries mehr als vorher. :-?
Vom Aufwand und der verschenkten Performance mal ganz abgesehen. :wink:
Geh also lieber hin und installier einen SQL Cache. Der bringt dir mehr. :)

Außerdem, warum ein bereits ausgereiftes und erprobtes System neu erfinden? Nimm einfach mein CPS und gut is. :grin:
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Das geht im CH nicht.

Wie gesagt ist die Routine zur Abfrage von Posts anders. Es gibt auch keine viewtopic.php wie Du sie kennst. Es wird jetzt alles in Klassen abgefragt.

Ich bin schon ganz gut durchgekommen.

Ich werde es ganz simpel halten. Cache generieren, wenn die Seite geladen wurde und Cache löschen, wenn irgendwas geändert wurde. Mehr brauche ich nicht. Derzeit habe ich es mal ohne SQL-Abfrage getestet. Mal sehen welche Daten alle falsch sind.

Gruß

EDIT:
Ich habe den Mod nun als Alphaversion fertiggestellt und bei mir installiert:
http://ptifo.clanmckeen.com/viewtopic.php?t=7287

Ich konnte wie geplant die MySQL Abfrage komplett einsparen. Welche Nachteile mir noch daraus entstehen ist zu prüfen.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“