[linux-l] Dateien mit '/' im Dateinamen

Steffen Dettmer steffen at dett.de
Do Aug 14 11:38:23 CEST 2003


* Peter Ross wrote on Thu, Aug 14, 2003 at 10:51 +1000:
> Eine DB wird z.B. sicher, wenn sie will, dass etwas auf der
> Platte landen soll, fsync(2) aufrufen.

fsync (also libc stdio) ist ja nochmal mehr gebuffert (libc user
buffer)! Dreifachbuffered file I/O :-) Nee, denke mal, ne DB
nimmt open(...., |O_SYNC) und betet. 

> Ausserdem gibt es auch noch fcntl(2) mit folgendem Parameter:
> 
> O_DIRECT     

man 2 fcntl|grep DIRECT

<nix>

Scheint nicht sehr portabel zu sein. O_SYNC paßt auch bissel
besser, denk ich.

> Minimize or eliminate the cache effects of reading and writ-
> ing.  The system will attempt to avoid caching the data you
> read or write.  If it cannot avoid caching the data, it will
> minimize the impact the data has on the cache.  

Würde mir als DB Hersteller auch nicht gefallen "minimize" und
"will attempt", dabei will ich doch garantiert synchrone
Operationen.

raw-IO ist doch logisch passend. Was möchte eine Datenbank?
Einfach wahlfrei adressierbaren, synchronen Platz. Ein Filesystem
fügt nicht benötigte Komplexität hinzu. Braucht man doch gar
nicht! Also wozu Implementierungsrisiken eingehen? Außerdem
schreibt ne DB ja auch chunks, die vielleicht zum Teil "unbelegt"
sind, man also nur die Hälfte davon im Speicher cachen muß. Der
Buffercache kostet bei einer guten DB Implementierung damit evtl.
mehr Speicher, als notwendig. Dann weiß der Buffercache auch
nicht, was nicht gecacht werden soll, weil vielleicht extrem
selten benötigt. Ne Datenbank hingegen pflegt
Zugriffsstatistiken, um optimal zu cachen. Davon weiß ein
Buffercache ja nix. Also möchte man das alles doch gar nicht?

> Duerfte z.B. bei MySQL und den vielen kleinen Files
> problematischer sein.

Na gut, mySQL ist auch keine "richtige" Datenbank, oder? Ist eher
das MS-Acess unter den DBMSes, oder?

> Und die ab und an korrupten Indizes (erlebt mehr oder minder
> als regelmaessiges Aergernis unter Version 3) sprechen auch
> dafuer, dass da hin- und wieder nicht "gesynct" wird.

Gehen die Indizes nur bei Systemcrashs kaputt? Hört sich für
mich eher nach schlechter Implementierung an, ehrlich gesagt...

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.




Mehr Informationen über die Mailingliste linux-l