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

Jan Krueger jk at microgalaxy.net
Do Aug 14 17:54:49 CEST 2003


On Wednesday 13 August 2003 23:11, Steffen Dettmer wrote:
> * Dani Oderbolz wrote on Wed, Aug 13, 2003 at 13:29 +0200:
> > Das problemist, dass das ganez sehr schwer zu handeln ist (Du
> > kannst halt nicht einfach kucken, wo welche Daten liegen, es
> > ist eine Mega - Blackbox.
>
> Geht bei Tablespaces ohnehin schlecht. Und sollte einen auch
> nicht wirklich interessieren, was da binär rumliegt, oder?
>
> > (Man machte es nur aus Performance Gründen).
>
> Das bezweifel ich!

Ein Journaling FS loggt in der Regel nur Metainformationen (Wieviel genau und 
wo das hin soll und mit welchen attributen) nicht die Daten selbst. Eine DB 
loggt in der Regel die Daten. Ein JFS und eine DB ergänzen sich also 
wunderbar :)

Gegenüber dem DB-Schreiben direkt auf die Partition entsteht beim JFS ein 
Overhead für des Schreiben der MetaInformationen. Besonders bei vielen 
kleinen Transaktionen kann sich das ausbremsend bemerkmar machen, abhängig 
davon, wie die DB die Informationen loggt. Bei der vor einiger Zeit erwähnten 
Objektorientierten DB geschah das loggen durch anlegen einer einzelnen Datei 
für jede Transaktion, also muß das Filesystem auch jedesmal die 
Metainformationen loggen -> performance geht runter. Krass wird es natürlich, 
wenn dann die geloggten Daten winzig sind, sagen wir 128 Bit, dann wird 
deutlich, da die Metainformation größer ist als die Daten, daß ein JFS 
ausbremst.

Wenn die DB nun aber schlau ist, und so loggt (eine ausreichend große Datei 
für alles, die größe der datei ändert sich nicht), daß das Filesystem nicht 
ständig Metainfos schreiben muß, wird man kaum einen Unterschied feststellen 
können zwischen Partition Direkt und Filesystem.

Es kommt also auf die DB an und wie sie loggt.

> > Das Problem das du ansprichst ist mit Journaling FS eigentlich
> > gut gelöst - obwohl du damit natürlich 2 Mal loggst.

s.o.

> Das JFS kann ja nicht wissen, welche 100KB von den 2GB unbedingt
> synchron geschrieben werden muß (koste es, was es wolle), kann
> also nie optimal synchronisieren. Und ganz ohne caching geht kein
> Filesystem unter Linux, weil die unteren Ebenen AFAIK schon einen
> Buffercache bereitstellen. Was man hier aber eben nicht möchte.
> Die DB möchte an ein paar Stellen das genau wissen, und nur die
> DB kennt die Semantik der binärdaten. Cachen muß eine DB sowieso,
> also bringt das Buffer-Caching nicht so viel, verbraucht bloß
> Speicher und cacht dann notfalls vollständig Blöcke, die
> vielleicht nur zum Teil belegt sind etc.

Man kann Software so schreiben, daß sie die Features eines OS optimal für sich 
nutzt oder man läßt es und geht davon aus, sämtliche OSse sind eh nur aus 
Pappe und man selbst kann man sowieso alles viiieeel besser und macht halt 
alles selbst.

Meiner administrativen Ansicht nach, ist dieser DirectIO kram komplett Pappe  
weil man dadurch als Administrator sehr viele Möglichkeiten ( positiven :) 
Einfluß nehmen zu können verliert.
Das fängt bei der Überwachung der Platznutzung an. Ein df ist mir viel 
sympatischer als dafür extra eine Anfrage an die DB stellen zu müssen.
Und hört spätestens bei irgendwelchen Defekten auf. da ist eine Datei doch 
viel einfacher zu handhaben als eine Partition mit binärem Krust, besonders 
wenn der drunterliegende Storage sich fehlerhaft verhält. Die Datei kommt 
einfach woanders hin, und die Partition? Wenn man die Partition bewegt (mit 
LVM oder so), findet die DB noch ihre Daten?

Gruß
Jan





Mehr Informationen über die Mailingliste linux-l