Benjamin Keil: Suchdauer, Dateiwust & ACID

Beitrag lesen

Hi Bio

  1. Bei zunehmender Datenmenge hast Du eine zunehmende Dateimenge und dann irgendwann ein Chaos von kryptisch benannten Dateien

Das Problem kann man vorraussehen und umgehen, z.B.
Dateinamen in Form des aktuellen Datums, das würde mir
z.B. bei einem extremen Gästebuch eine einfachen Archivierung ermöglichen.

  1. Das Einlesen der Daten dauert zunehmend länger, [...]

In dem Fall muss ich die Daten auf viele kleine Dateien aufteilen.

  1. Eine Datenbank garantiert einige Sachen:

Atomicity (Atomizität): Das Eintragen erfolgt ganz oder gar nicht - wenn Deine Dateien beim Aktualisieren z.B. halb geschrieben werden, und dann der Rechner abstürzt, dann sind einfach Daten weg.

Das würde bedeuten, das Beispiel-Array währe kaput
und ich kann es nicht mehr einlesen?
Ein guter Provider müsste doch dann Backups haben,
sicherlich sinds diese Daten dann einige Stunden oder Tage alt.

Consistency (Konsistenz): Die Datenbank weigert sich, falsche Daten anzunehmen, dadurch sind die Daten immer konsistent und wieder auslesbar. [...]

Ich muss doch sowieso grundsätzlich allen Eingaben misstrauen
und diese auf mögliche Probleme, z.B. HTML-Tags untersuchen.
Oder meinst Du was anderes? Hättest Du ein kleines Beispiel?

Isolation: Bei gleichzeitigem Zugriff von mehreren Transaktionen auf die Datenbank werden die Zugriffe von der Datenbank so gehandhabt, daß sie sich nicht in die Quere kommen. Bei Deinen Dateien könnten zwei Benutzer gleichzeitig eine Datei bearbeiten und dann hochladen, und die Änderungen des einen würden verloren gehen. Eine Datenbank würde den Zugriff auf die Daten, die bearbeitet werden, temporär sperren, so daß soetwas nicht vorkommen kann.

Wieder das Beispiel Gästebuch, angenommen 100 user tragen
sich innerhalb von einer Sekunde ein. Werden Sie dann
nicht nacheinander abgearbeitet, also 1. Eintrag
wird empfangen, *.dat wird gelesen und mit neuem Eintrag
am Ende neu geschrieben, 2. Eintrag wird empfangen,...

Durability: Die Datenbank führt Logs und speichert die Daten ggf. mehrfach, so daß ein Absturz die Daten nicht zerstört und der Zustand der Datenbank wiederhergestellt werden kann, auch wenn der Rechner mitten im Betrieb kaputt geht. Ein Dateisystem kann es schon mal zerbrezeln.

Das dürfte aber ein relativ geringes Risiko sein,
und mit entsprechender Hardware (wie heissen die Dinger, Raid-Controller ?) teilweise zu umgehen sein?

Ich bin noch nicht ganz in der Lage das Verhälltniss zwischen
Aufwand und Sicherheit einer DB abzuschätzen.

Selbst bei einem Gästebuch währe es ja peinlich wenn
man eine Fehlermeldung 'Ausser Betrieb' ausgeben muss.

Grüße,

Ben