Frage

Ich suche einen Server mit vielen kleinen Dateien, die von einem XML-API geliefert zu bauen. Es wird nicht eine ganze Menge Iteration über Verzeichnisse oder Blöcke sequentieller Dateien tun -. Wir reden hier viel, viel für diskontinuierliche Daten sucht

Wird Zeit auf BSD UFS degradiert über die Zeit für Anfragen für einzelne Dateien suchen? Ich verstehe, dass die Inode-Grenze des Dateisystems auf der Größe der Partition / Scheibe basiert, aber die Festplatte hat durch die Inode-Tabelle für jede Dateianforderung zu dem Schritt, bevor er die Position der Daten entdecken. Welches Dateisystem liefert die beste Leistung für die Zeit suchen?

Die Alternative ist die Einrichtung 2-4GB „Blob“ Dateien und verfügt über ein separates System von einer Datei in ihnen aus der Software enthalten suchen. Die Software der „Inode-Tabelle“ für die Lieferung optimiert wird aktuell angemeldeten Benutzer basierend auf, etc ... Diese „inode Tabellen“ würden wahrscheinlich im RAM zwischengespeichert werden und nur für die Nutzer zur Zeit in so protokolliert beziehen würden, dass es weniger Verschwendung von Ressourcen .

Wo kommen diese beiden Lösungen Rate auf Skalierbarkeit und Wartung Sicht? Welche Art von Performance-Gewinne, wenn überhaupt, ich unter Verwendung der zweiten Lösung erwarten können?

War es hilfreich?

Lösung

Die naheliegendste und bewährte Minderungstechnik ist ein gutes hierarchisches Design für Verzeichnisse verwendet wird (und Suchstrategien Pfadnamen), und hat mehr Verzeichnisse mit weniger Dateien in jedem.

Andere Tipps

Für die letzten FreeBSD-Versionen mit dirhash und Soft Updates Ich habe gesehen, keine Probleme mit ein paar zehntausend Dateien pro Verzeichnis. Sie wollen wahrscheinlich nicht nördlich von 500.000 Dateien gehen oder so. Z.B. hat mich 3 Tage ein Verzeichnis mit 2.500.000 Dateien zu löschen.

Ich bin mir nicht sicher, ob ich Dich richtig verstehe die Frage, aber wenn man über viele Dateien suchen will, warum nicht eine partioned MySQL-Tabelle angelegt auf einem RAID0 oder VFS-Dateisystem verwenden?

Edit: soweit ich weiß, viele Dateien in einem Ordner wird degradieren jede FS Geschwindigkeit, da es größere Listen von Dateien, Berechtigungen und Namen beibehalten hat, wird eine Datenbank entwickelt, Listen zu halten in eine sehr optimierte Art und Weise durch von Daten im Speicher und sucht.

Weitere Einzelheiten Ihrer Situation wäre hilfreich, werden die Dateien bestehenden oder würden sie von der Anwendung erstellt werden? Wenn Sie eine Möglichkeit, beliebige Daten zu speichern, mit aus der Struktur einer relationalen Datenbank haben Sie unter Objektdatenbanken

Eine weitere Option, wenn Ihre Objekte sollten oder über HTTP zugegriffen werden kann, ist ein Lack rel="nofollow Cache vor einem kleinen Web-Server. Zunächst würde Objekte auf der Festplatte gespeichert, sondern Lack würde speichern und Objekte aus dem Speicher nach dem ersten Zugriff auf ein bestimmtes Objekt dienen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top