Suchfunktion des Boards



  • flammenvogel schrieb:

    Ich kann mich mit dem Problem nicht auseinandersetzen wenn ich es nicht kenne.

    Dann doch einfach, daß Du eine Problembeschreibung haben möchtest und fang nicht an wilde Thesen aufzustellen, wer keine Ahnung hat und wie einfach man das bestimmt alles richten könnte.

    Okay, fangen wir einfach nochmal frisch an. 🙂

    Das phpbb ist ein größeres Stück Software. Änderungen sind nicht so schnell mal einfach durchzuführen. Insbesondere eine Änderung der Datenbankstruktur ist nicht so ohne weiteres möglich, weil große Mengen an Daten bereits vorliegen.
    Schau Dir den phpbb-Code bei Gelegenheit mal an. Ich finde ihn sehr häßlich. Es gibt keine Modularisierung, alles ist in großen elend langen Funktionen einfach runtergeschrieben.

    Zur Problembeschreibung:
    Die Suchfunktion erzeugt während der Suche sehr große Zwischenergebnisse (temporäre Tabellen). Diese machen den Speicher dicht und die Suchanfrage wird nur noch sehr langsam abgearbeitet. Die Datenbank läßt nur eine feste Anzahl von parallelen Anfragen gleichzeitig zu. Die anderen Anfragen (und vielleicht noch zusätzliche Suchanfragen) werden stark verzögert und das Limit der gleichzeitig erlaubten Datenbankabfragen wird erreicht. Dann kriegt keiner mehr ne DB-Verbindung, das Forum ist tot.

    So ist der grobe Ablauf, soweit ich ihn verstanden habe.

    Leider ist der Fehler aber auch nicht wirklich beliebig reproduzierbar. Mal passiert es, mal nicht. Ich bin mir nichtmal sicher, ob eine bestimmte SQL-Abfrage als Auslöser indentifiziert werden konnte. Afair nicht.

    Am Rechner liegt es imho nicht. Meiner Meinung nach sollte der auf jeden Fall in der Lage sein die Suchanfragen zu verarbeiten.

    Ich sehe zwei Lösungsmöglichkeiten:

    1. Vollständige Neuimplementierung der Suchfunktion
      Dazu müßte man eine Datenstruktur erstellen, die in der Lage ist, Suchanfragen bei unserer Datenbankgröße zügig und ohne zu viel Overhead zu beantworten. Das Design von sowas ist durchaus ne komplizierte Sache.
      Außerdem müßte alte Daten entsprechend indiziert werden. Das ist zwar machbar, aber ebenfalls einiges an Aufwand. Zudem müßten dabei viele Teile des Boards angefaßt werden: Nicht nur die Suche, sondern auch das Eintragen der Postings in die entsprechenden Datenstrukturen.

    Dafür spricht, daß meines Wissens auch andere Boards Probleme mit der Suche des phpbb haben. Die Suche scheint einfach nicht richtig zu skalieren.

    1. Die kritischen SQL-Anfragen irgendwie abändern und so die Last von der DB nehmen.

    Das ist vom Aufwand her eigentlich deutlich weniger, allerdings nicht ganz einfach durchzuführen, weil zum einen afair nicht genau bekannt ist, woran es liegt und zudem sich die Frage stellt, wie umschreiben? Soweit ich mich erinnern kann haben auch ein paar Mods mit SQL-Erfahrung mal über die Statements geschaut.

    Nur um das nochmal Klarzustellen, wir versuchen hier eine öffentliche Disskussion zu führen, um Lösungsansätze zu sammeln. Das wäre als Moderator eigentlich dein Job.

    Sag mir nicht, was mein Job ist und wie ich ihn zu machen habe, ja?
    Die öffentliche Diskussion mit dem Aufruf "Gibt's hier auch mal nen Mod der Ahnung hat" ist wirklich was, was uns bei der Lösung weiterhilft. 😉



  • Jester schrieb:

    Okay, fangen wir einfach nochmal frisch an. 🙂

    Gute Idee, da kann ich mich nur anschließen ... 😉

    Jester schrieb:

    Zur Problembeschreibung:
    Die Suchfunktion erzeugt während der Suche sehr große Zwischenergebnisse (temporäre Tabellen). Diese machen den Speicher dicht und die Suchanfrage wird nur noch sehr langsam abgearbeitet. Die Datenbank läßt nur eine feste Anzahl von parallelen Anfragen gleichzeitig zu. Die anderen Anfragen (und vielleicht noch zusätzliche Suchanfragen) werden stark verzögert und das Limit der gleichzeitig erlaubten Datenbankabfragen wird erreicht. Dann kriegt keiner mehr ne DB-Verbindung, das Forum ist tot.

    Ok, das nenne ich mal eine ausführliche Problembeschreibung.

    Jester schrieb:

    Leider ist der Fehler aber auch nicht wirklich beliebig reproduzierbar. Mal passiert es, mal nicht. Ich bin mir nichtmal sicher, ob eine bestimmte SQL-Abfrage als Auslöser indentifiziert werden konnte. Afair nicht.

    Das möchte ich auch stark bezweifeln, das man das Problem durch das Umschreiben von ein paar Zeilen (MySql-)Code einfach lösen kann. Ich tippe stark darauf das die Datenbank, mehrmals durchsucht wird. Ich werde mir den phpBB Code nochmal anschauen. Mir ist allerdings nicht klar was du mit der nicht reproduzierbarkeit des Fehlers meinst.
    Könntest du mir das vielleicht noch etwas näher erleutern?

    Jester schrieb:

    1. Vollständige Neuimplementierung der Suchfunktion
      Dazu müßte man eine Datenstruktur erstellen, die in der Lage ist, Suchanfragen bei unserer Datenbankgröße zügig und ohne zu viel Overhead zu beantworten. Das Design von sowas ist durchaus ne komplizierte Sache.
      Außerdem müßte alte Daten entsprechend indiziert werden. Das ist zwar machbar, aber ebenfalls einiges an Aufwand. Zudem müßten dabei viele Teile des Boards angefaßt werden: Nicht nur die Suche, sondern auch das Eintragen der Postings in die entsprechenden Datenstrukturen.

    Das ist natürlich die radikale Lösung, aber eventuell immer noch vertretbar, wenn der phpBB Code von Grund auf nicht dafür geeignet ist mit derart großen Datenmassen umzugehen.

    Also nach allem was du gesagt hast Tippe ich auf einen starken Konstruktions/Prinzipfehler bei der Suche bei phpBB. Nachdem wie du oben das Problem geschildert hast liegt eins der Probleme im immensen Ram-Verbrauch der phpBB Suchfunktion. Ergo würde ein veringern der SQL-Anfragen, das Problem wahrscheinlich lösen. Oder sehe ich da was falsch?

    Jester schrieb:

    Nur um das nochmal Klarzustellen, wir versuchen hier eine öffentliche Disskussion zu führen, um Lösungsansätze zu sammeln. Das wäre als Moderator eigentlich dein Job.

    Sag mir nicht, was mein Job ist und wie ich ihn zu machen habe, ja?
    Die öffentliche Diskussion mit dem Aufruf "Gibt's hier auch mal nen Mod der Ahnung hat" ist wirklich was, was uns bei der Lösung weiterhilft. 😉

    Das hätte ich vielleicht auch nicht sagen sollen. Srry. Ich war ... naja sagen wir etwas "aufgebracht" 😉



  • Jester schrieb:

    Zudem müßten dabei viele Teile des Boards angefaßt werden: Nicht nur die Suche, sondern auch das Eintragen der Postings in die entsprechenden Datenstrukturen.

    werde ich ignoriert? Man kann es doch völlig unabhängig vom Board machen. Der einzige Nachteil ist, dass die Daten dann doppelt rumliegen würden. Soweit ich weiß gehts hier aber nicht um dermaßen riesige Datenmengen, dass das nicht akzeptierbar wäre. Oder ist die Festplatte schon halb voll?



  • @DrGreenthumb: Warum sollen die Daten doppelt rumliegen? Also warum erfordert die neu Implementierung einer Suche, einen doppelten Datenbestand?



  • DrGreenthumb schrieb:

    werde ich ignoriert? Man kann es doch völlig unabhängig vom Board machen. Der einzige Nachteil ist, dass die Daten dann doppelt rumliegen würden.?

    Richtig schön ist das aber auch nicht. Und selbst wenn die doppelte Datenhaltung in Frage kommt: Wie werden die neuen Datenstrukturen aktualisiert? Doch beim Eintragen der Postings. Also muß das Board eben doch angefaßt werden.

    @Reproduzierbarkeit:
    Damit meine ich: Wir können den Fehler nicht selbst auslösen und damit gezielt nach der genauen Ursache suchen. Manchmal funktioniert es, manchmal nicht. Wenn wir den Fehler nach belieben auslösen könnten, dann könnten wir auch gut testen, welche Veränderungen was bringen und welche nicht. Leider kennen wir keine Möglichkeit dafür. 😞
    Wir können die Suche nur aktivieren und dann warten ob das Board irgendwann abschmiert.

    Ich hab auch ne Idee, woran es liegen könnte. Der Code ist allerdings extrem häßlich zu lesen, außerdem habe ich keine geeignete Testumgebung um Änderungen durchzuführen und zu testen.

    Bist Du halbwegs fit mit php? Wenn Du Lust hast können wir uns ja mal im IRC treffen und mal ne Runde diskutieren. Vielleicht kommt ja was dabei raus.

    MfG Jester



  • @Jester: Also ich habe mir den phpBB Code mal angesehen und ich stimme dir zu das er ziemlich hässlich ist. Wenn du keine Testumgebung hast, ich habe noch ein Vserver im Inet stehen auf dem ich morgen mal phpBB + Datenbank installieren und einrichten werde. Ich wollte mich schon immer etwas näher mit phpBB auseinandersetzen.

    @DrGreenthumb: Was hälst du denn von meiner Lösung eine neue DB zu machen in der Indizierungstabllen liegen auf die das Suchsystem Lese + Schreibrechte hat und auf die phpBB Tabellen nur Leserechte. Damit sollte man eine halbwegs vernünftige Trennung Suche <-> Board hinkriegen. Vorausgesetzt das man das Suchsystem mit der vorhanden Tabellenstruktur überhaupt weit genug optimieren kann, dass die Suche wieder vernünftig läuft.

    Bist Du halbwegs fit mit php? Wenn Du Lust hast können wir uns ja mal im IRC treffen und mal ne Runde diskutieren. Vielleicht kommt ja was dabei raus.

    Bezieht sich das auf Dr. Greenthumb oder auf mich? *nicht sicher bin*



  • Jester schrieb:

    DrGreenthumb schrieb:

    werde ich ignoriert? Man kann es doch völlig unabhängig vom Board machen. Der einzige Nachteil ist, dass die Daten dann doppelt rumliegen würden.?

    Richtig schön ist das aber auch nicht. Und selbst wenn die doppelte Datenhaltung in Frage kommt: Wie werden die neuen Datenstrukturen aktualisiert? Doch beim Eintragen der Postings. Also muß das Board eben doch angefaßt werden.

    nein, habe doch geschrieben, alle paar Tage (oder sogar täglich) per cronjob. Ist dann halt nicht genau aktuell, aber macht ja nichts. Besser als jetzt.

    Richtig schön ist das sicherlich nicht. Aber es wäre eine einfache(?) Möglichkeit, die vor allem irgendjemand programmieren könnte. Zum Ändern der Forumsoftware, wie ihr es vorschlagt, kommen ja offenbar nur 2 oder 3 Leute (die keine Zeit haben) in Frage. Diskussionen in die Richtung, gabs ja nun genug, ohne das was bei rauskommt.



  • flammenvogel schrieb:

    Bist Du halbwegs fit mit php? Wenn Du Lust hast können wir uns ja mal im IRC treffen und mal ne Runde diskutieren. Vielleicht kommt ja was dabei raus.

    Bezieht sich das auf Dr. Greenthumb oder auf mich? *nicht sicher bin*

    Ich meinte eigentlich Dich. Ich will aber natürlich Dr. Greenthumb und auch andere nicht ausschließen. 😉
    Schreib mir doch mal ne Mail, wann Du mal Zeit hast.

    Ich würde gerne zuerst versuchen das phpbb zu fixen. Mir sind da ein paar Kleinigkeiten aufgefallen. Ich muß es mir aber zunächst nochmal durchschaun.



  • DrGreenthumb schrieb:

    Oder ist die Festplatte schon halb voll?

    Nein.



  • Ihr meint, dass phpBB das mit der Suche nicht hinkriegt. Aber ich würde mal sagen wer Windows XP ohne Service Packs installiert und sich dann beschwert warum es dauernt abstürzt muss sich nicht wundern: Natürlich werden Bugs gefixt! Und an dem Copyright seh ich, dass dies anscheinend nicht die neuste Version von phpBB ist. Und wenn man auf folgende Seite geht:
    http://www.phpbb.com/phpBB/
    Kann man sehr schön sehen, dass phpBB suchen kann! (Es scheint zu gehen, berichtet mich wenn die Suche dort auch kacke ist.) Ich schlage mal vor, dass man eine neue Version installiert.

    So wer jetzt sagt: Ja, dieses Forum ist auch viel größer, der rechnet mal die Anzahl der Beiträge zusammen und merkt, dass das phpBB Forum ungefährt doppelt so viele hat.

    mfg.



  • ne neue version davon zu installieren ist mit extrem viel aufwand verbunden. man muss alle mods wieder einfrickeln. 🙄



  • joomoo schrieb:

    So wer jetzt sagt: Ja, dieses Forum ist auch viel größer, der rechnet mal die Anzahl der Beiträge zusammen und merkt, dass das phpBB Forum ungefährt doppelt so viele hat.

    Bist ja ein richtiges Wunderkind! Mal ehrlich: Wenn es mit einem 2-minütigen Update der Forensoftware getan wäre, glaubst du nicht, dass hätte jemand gemacht? Zumal schon einiges an Zeit in die Suche investiert wurde.



  • Das wurde auch, soweit ich weiß alles schon versucht. Es hat nur nix gebracht. Das Forum auf www.gentoo.org hat übrigens auch Probleme mit der Suche des phpbb und afaik haben die auch noch keine wirklich passable Lösung gefunden.

    Wenn ich auf dem Board bei phpbb.com nach "search problems" suche, dann krieg ich ne leere komplett weiße Seite. So gut funktioniert das dort. 👍



  • Jetzt wo ihr soviele Werbe-Einblendung habt könntet ihr euch ja mal eine vernünftige Foren-Software kaufen.



  • @joomoo
    Zudem sei angemerkt, das es sich hierbei, denke ich, durchaus um ein aktuelles phpBB handelt! Man kann phpBB nähmlich auch manuell updaten, man muss nicht immer das Vanilla neu installieren! Allerdings hat das phpBB-Team in letzter Zeit einige Dinge in phpBB eingebaut, die mehr schlecht als Recht sind. Wenn hier nur das Sicherheitstechnische eingebaut wird, dann wundere dich nicht über Abweichungen vom Vanilla!

    EDIT:
    @.............
    Zum Beispiel? vBulletin? Oder WBB? Das ich nicht lache ...



  • Es gibt noch kein Gutes? Dann muss ich mal eins proggen. 😉



  • Mach das! Melde Dich sobald Du es fertig hast! 👍



  • Dann scheint phpBB echt schlecht zu sein.

    Ja das mit dem weißen Bildschirm ist mir auch eben aufgefalle, echt arm.

    Was spricht gegen das WBB? Ich kenn mich da nicht aus, aber das müsste es doch schon geben, ein Board was funtkioniert oder?

    mfg.



  • joomoo schrieb:

    Was spricht gegen das WBB? Ich kenn mich da nicht aus, aber das müsste es doch schon geben, ein Board was funtkioniert oder?

    So einfach kann man ja nicht sagen, daß das phpBB nicht funktioniert. Es hat kein gutes Datenbankdesign bzgl des Suchindex, aber auch das stört selbst bei großen Boards nicht so sehr, solange die Beiträge gewisse Kriterien erfüllen.

    In unserem Fall mit vielen Wiederholungen von bestimmten Worten (Schlüsselwörter der Sprachen) entwickelt sich die Tabelle besonders ungünstig. Das ergibt sich auch aus den Supportforen zum phpBB, einige Leute haben mit der Suche extreme Probleme, während vor allem "Plauderboards" mit Beiträgen, die eher normale Textauszüge sind, keine Schwierigkeiten haben.

    Ob das jetzt bei einem anderen Forensystem besser wäre, kann man nicht sagen. Das phpBB (bzw seine Form der Datenhaltung) hat sich ja auch erst im Laufe der Zeit so zum Negativen hin entartet.

    Auch ist ein Umzug durch die hier durchgeführten spezifischen Anpassungen (Latex, Syntaxcoloring, etc) nur mit erheblichem Aufwand durchführbar.



  • Ganz einfach: WBB kostet Geld und ist vollgestopft mit Plugins, die
    1. keiner braucht
    2. von den Kunden selbst entwickelt wurden und dann irgendwann ins WBB aufgenommen wurden.

    Außerdem währe es wohl ein noch größerer Aufwand, das Forum hier zu portieren, als eine neue Suche zu schreiben.

    @Jester
    Ich habe einmal eine Forensoftware geschrieben ... Das User Management hatte noch ein paar Lücken, aber ansonsten kam die Leistung (bis auf die Dinge wie Syntax Highlighting und LaTeX) in etwa an das phpBB hier ran ... Dumm nur, das es nur unter MySQL 5 und PHP 5.1 lief ... Aber möglich ist es prinzipiell schon im Alleingang 😉

    EDIT: Mist, zu langsam ...


Anmelden zum Antworten