Vorteile einzelner Dateien

für die Liste aller Seiten

Entwickler und Administratoren

PmWiki speichert Seiten in einfachen Dateien (flat files) anstatt Datenbanken wie MySQL zu benutzen. Diese Seite erklärt, warum diese Design-Entscheidung gefallen ist.

Pms Erklärung

Pm: Ich habe einfache Dateien zum Speichern von PmWiki-Seiten gewählt, weil ich keine wirklichen Vorteile in der Benutzung einer Datenbank gesehen habe, und es gibt definitiv einige Nachteile. Für die Standardoperationen (Lesen, Bearbeiten, Versionen) ist die Vorhaltung der Informationen in einfachen Dateien klar schneller als der Zugriff darauf in einer Datenbank, und mit Seiten-Caching-Möglichkeiten (kommt in Kürze) wird das noch schneller. Die einzige Operation, die wirklich von der Datenbank profitiert, ist die Suche, aber ich habe immer geglaubt, dass es für schnelle, flexible Such-Fähigkeiten besser ist, existierende Progamme wie ht://Dig oder Google zu benutzen als selbst eine weitere Suchmaschine nachzuerfinden. PmWikis Site.Search ist funktionell und schnell für die meisten Zwecke und wenn ein höherer Durchsatz gebraucht wird, ist es besser zu einer richtigen Suchmaschine umzuschalten.

Tatsächlich hat Wikipedia im Januar 2004 eine MySQL-Datenbank benutzt, um ihre 190K+ Einträge zu speichern, aber selbst mit der Datenbank hat Wikipedia ihre Onlinesuche wegen des Durchsatzes abgeschaltet und Suchanfragen direkt zu Google durchgereicht.
siehe die talk page der englischen Seite

Und es gibt große Nachteile bei der Benutzung einer Datenbank – mit einer Datenbank müssten wir ein Bündel von "Verwaltungswerkzeugen/Skripten" schreiben, um Dinge wie massenweises Löschen von Seiten aus der Datenbank, Sichern und Wiederherstellen der Seiten, Wiederherstellen von Seiten, die versehentlich gelöscht wurden etc zu unterstützen. Das Meiste dieses Programmier-Wasserkopfes ist durch die Benutzung einfacher Dateien gestrichen, da die Administratoren vorhandene Werkzeuge benutzen können (FTP-Clients, web-basierte Datei/Verzeichnis-Manager, Shell-Kommandos). Die Administratoren sind mit diesen Werkzeugen schon vertraut. Es ist auch viel einfacher, ausgefuchste und angepasste Management-Werkzeuge und Skripten für spezielle Anwendungen zu schreiben.

Letztendlich ist PmWiki schon so strukturiert, dass die einfache-Datei-Struktur leicht durch eine Datenbank ersetzt werden kann, sollte es sich je als notwendig erweisen. Allerdings funktionieren selbst PmWikis mit mehr als 40'000 Seiten mit den einfachen Dateien gut ohne spürbare Durchsatzprobleme.

PmWiki bietet die Möglichkeit, das wiki.d/-Verzeichnis in getrennte Unterverzeichnisse für jede Gruppe zu unterteilen, womit das "too large"-Problem von Verzeichnissen vermieden wird. Sehen Sie sich das Cookbook:PerGroupSubDirectories (in englisch) wegen weitere Informationen an.

Kommentare

Die Sektoren können auf irgendeiner Platte oder irgendeinem Server sein. Das Ergebnis ist, man kann einen Server / eine Platte für die Datenbank nehmen, einen anderen Server für PHP und einen dritten für den Webserver. Man kann die Ausgabe-Belastung verteilen und erhält so einen besseren Über-Alles-Durchsatz selbst bei sehr starker Nutzung. Natürlich ist das nicht das Ziel von PmWiki, ;-). – Peter
Naja, man kann immer NFS benutzen, wenn man seine Dateien auf einem anderen Server haben will. Aber in beiden Fällen (NFS oder DB) führt die Ausführung auf einem anderen Rechner zu einer Erhöhung der Latenz und nicht notwendigerweise zu einer Erhöhung des Durchsatzes. Der Vorteil einer separaten DB ist offensichtlicher, wenn man mehr als einen Client hat, die gleichzeitig darauf zugreifen sollen, was man natürlich auch mit NFS machen kann. Die DB könnte bessere Locking-Mechanismen bieten, abe die sind wahrscheinlich nicht so wichtig für PmWiki (nicht genügend viele Autoren). Wie würdest du PHP auf einem anderen Server laufen haben als den Webserver? Und, was auch immer deine Lösung ist, geht das auch ohne DB? Martin Fick

Category: PmWiki Design

<< | Dokumentations-Index | >> für die Liste aller Seiten


Originalseite auf PmWikiDe.FlatFileAdvantages   —   Rückverweise

Zuletzt geändert:   PmWikiDe.FlatFileAdvantagesam 22.11.2020