Thread Ordnerstruktur à la CGI::Cache (4 answers)
Opened by roooot at 2009-08-26 14:16

sid burn
 2009-08-26 15:23
#124859 #124859
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
2009-08-26T12:16:53 roooot
Ich denke mal er macht das um die Anzahl der Dateien in einem Ordner möglichst klein zu halten.

Ja zum einen, auch kann ein Lookup davon evtl. Profitieren, also das abfragen.

Quote
Da ich nun auch ein sehr sehr viele (kleine) Dateien schreiben lassse möchte ich auch solch eine Ordnerstruktur aufbauen.
Nun bin ich auf der Suche nach einem Modul, dass diese Aufteilung für mich übernimmt.

Ein Modul das die aufteilung komplett für dich übernimmt wird es wohl nicht geben. Es gibt aber Module die dir helfen mit Dateien/Verzeichnisse umzugehen.

Eingebaut und Core Modul ist hierbei "File::Spec", dass finde ich aber teilweise etwas umständlich zu nutzen. Schöner ist z.B: Path::Class

Quote
Ansonsten würde mein erster Ansatz wohl über CPAN:File::Path und CPAN:File::Find laufen.

Ein Cache funktioniert nach dem Key/Value prinzip. Daher du gibst einen schlüssel an und speicherst unter diesem etwas. Beim auslesen gibst du den Key an zum auslesen.

Da du den key schon weißt weiß ich nicht wofür du File::Find benötigst. Das abrufen eines Keys sollte eine einzige Operation sein ohne das du etwas suchen musst.

Zum Beispiel wenn dein schlüssel "name" heißt speicherst du es in der Datei "name". Zum auslesen öffnest du direkt die datei "name". Diese musst du dann nicht mehr suchen.

Eine implementation könnte sein wenn du den key in einen Hash umwandelst. z.B. als SHA1 hash. Deine aufteilung sieht dann so aus, das die ersten beiden buchstaben z.B. ein Ordner ist.

Zum Beispiel ist die SHA1 Nummer zu "name" => "6ae999552a0d2dca14d62e2bc8b764d377b1dd6c"

Daher du Speicherst es in "6a/e999552a0d2dca14d62e2bc8b764d377b1dd6c".

Optional kannst du es natürlich in mehrere ordner unterteilen. Durch die Abspaltung von den ersten beiden Zahlen und da dies Hex Nummern sind, schaffst du damit eine Segmentierung von 256 Ordnern.
Last edited: 2009-08-26 15:27:00 +0200 (CEST)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Ordnerstruktur à la CGI::Cache