phpbar.de logo

Mailinglisten-Archive

[php] [RE] Filesystem vs. DB

[php] [RE] Filesystem vs. DB

Egon Schmid php_(at)_phpcenter.de
Tue, 23 Oct 2001 10:57:07 +0200


Wegen "Content-Transfer-Encoding: quoted-printable" mal ein
Vollquoting.

Es ist keine Linux vs. Windows-Diskussion.

Deine Aussagen sind falsch. Es geht darum große, meistens binäre,
Daten im Filesystem abzulegen und die Verzeichnisse und Dateinamen
in einer Datenbank abzulegen. Ein jedes Filesystem (egal ob Linux
oder Windows) ist hierarchisch aufgebaut. Es macht natürlich wenig
Sinn 167.211 in EINEM Verzeichnis anzulegen.

Bitte schau Dir mal die Speicherung von Daten eines LDAP- oder
Proxy-Servers an. Ein Filesystem besteht eben nicht aus EINEM
Verzeichnis. Dazu kommt, dass die Datenbanklösung von vornherein,
die schlechtere Lösung für Daten ist, die sich wenig ändern. Wenn
die Daten, wie z.B. in Webanwendungen, oft gelesen werden sollen,
dann ist die Ablage der Daten im Filesystem optimal. Das Anlegen der
Dateien im Filesystem ist dagegen etwas langsamer wie in einer
Datenbank. Dieses fällt aber unter den Tisch, wenn diese Vorgänge
selten vorkommen.

-Egon

----- Original Message -----
From: "Napolitano, Axel" <Axel_Napolitano_(at)_de.rolandberger.com>
To: <php_(at)_phpcenter.de>
Cc: <norbert_(at)_itbw.de>
Sent: Tuesday, October 23, 2001 10:00 AM
Subject: [php] [RE] Filesystem vs. DB


Hallo,


ich kann die ganze Diskussion leider nicht mehr ernst nehmen, da sie
sich mittlerweile dem Niveau einer "Linux ist besser als
Windows"-Diskussion nähert.

Ich habe hier viele theoretische Aussagen gelesen und mir auch die
(wenngleich nicht wirklich praxisnahen) Benchmarks angesehen.

Faktum ist, das die Anforderungen entscheidend sind. Ich habe hier
im
Rahmen der Vorbereitung unseres inhouse Media-Asset-Systems
umfangreiche
Tests sowohl auf Filesystem-Ebene als auch auf Datenbankebene
durchgeführt.

Die Ergebnisse sprechen ohne Ausnahme für die Datenbanklösung.

Ein kleiner Test:

Einfach mal ein Verzeichnis ("/db_name/tb_name/")anlegen und dann
viele
(bei uns sind es derzeit 167.211) Dateien in diesem Verzeichnis
anlegen.
Die Durchschnittsgröße der Dateien beträgt 45KByte (Das alleine ist
schon ein ziemliche Brocken an Daten). Pro Jahr kommen etwa 18.000
bis
20.000 Dokumente weltweit hinzu. Diesen Daten sind noch einmal die
gleiche Menge Thumbnails zugeordnet (durchschnittsgröße 2,5Kbyte)

Um das Szenario zu Ende zu spielen:

Gleichzeitig eine Datenbank anlegen und dort genau die gleiche
Datenmenge ablegen.

Spasshalber kann jetzt mal versucht werden, eine definierte Datei
innerhalb dieser Dateiwüste zu finden - am besten auch (auch wenn es
hier viele Linux-User gibt) mit dem Windows-Explorer (Kaffee nicht
vergessen)

Um die Sache noch spannender zu machen:

Die Datenbasis soll innerhalb einer Firma mit derzeit33 Standorten
in
mehreren Ländern (nicht auf Europa beschränkt) genutzt werden. Es
existieren konstant mindestens 1.300 Clients, die im Schnitt
2.000/2.700
Zugriffe am Tag durchführen. Um Ausfällen und Engpässen vorzubeugen
existiert ein zweiter Server, der die Daten spiegelt. Beide Server
sind
geografisch getrennt. Neuzugänge/Abgänge werden nachts bzw. in den
jeweiligen Büroschlusszeiten repliziert. Es muss möglich sein, nach
Belieben weitere Server zu integrieren.

Die Daten müssen mittels eines WebFrontends und über eine speziell
entwickelte Recherche-Software, welche in alle bei uns verwendeten
Applikationen als "AddIn" integriert ist zur Verfügung stehen.

Für jede Datei werden alle Bearbeitungsschritte gesichert. D.h. das
es
mehrere Versionen einer Datei geben kann (rudimentäres
Versionstracking)

Viele Daten sind vertraulich und dürfen daher auch in keinem Fall
für
Unbefugte verfügbar sein - auch bei einem potenziellen Hackerangriff
müssen die Daten hinreichend sicher sein (die Hürde an die Daten
heranzukommen muss sehr hoch sein).

Wenn jetzt jemand eine (praktikable) Lösung hat, diese Anforderungen
mit
einer Filesystem-Basierten Ablage zu realisieren, möge er sich
melden.

Zum Schluss noch eines: Für eine Handvoll Dateien lohnt sich das
Speichern in einer Datenbank kaum - das will ich nicht bestreiten.
Bei
derart massiven Datenmengen und Anforderungen ist es jedoch nicht
sinnvoll, sich mit dem Filesystem zu beschäftigen.


Gruß

Axel Napolitano



--
** http://www.php-center.de **
Die PHP-Liste: mailto: php_(at)_phpcenter.de
http://lists.phpcenter.de/mailman/listinfo/php




php::bar PHP Wiki   -   Listenarchive