
Hallo Hartmut, wird das File während der Zugriffe verändert? Sind es viele Files und sind sie groß? Selbst SSDs mögen wegen des seriellen SATA Interfaces sowas nicht so gerne, bzw. sind nicht darauf ausgelegt gleichzeitig im selben Block an verschiedenen Stellen zu orgeln. Wenn also neben dem "Schrott" der ja auch an Festplatten-Limits liegen kann, das letzte Quentchen Performance zählt, versuchs mal mit einer RAM-Disk oder einem eigenen RAM-Cache. Leider heute oft vergessen aber so sauschnell, weil DMA es direkt in die Register schieben kann. Je nach Implementierung der RAM-Disk (es gibt verschiedene Möglickeiten) kann es auch lahm werden. Persistenz (wenn Du auch schreiben musst) ist auch ein Knackpunkt. Üblicherweise können sich nicht ohne Weiteres mehrere getrennte Pyython Prozesse eine Fileressource optimiert teilen. Ein Filehandle von mehreren Prouzessen anzusprechen geht doch glaube ich garnicht. Der Haken sind doch eher die unkoordinierten Zugriffe auf das Filesystem (disk-trashing). Vielleicht hilfts ja. -- Armin One last Thing: In Python ist ein String eine Liste aus Zeichen. Wenn Du also deine Datei wie eine Datenbank oder Liste bereitstellst, kannst du den Zugriff anders organisieren. Binäre Daten und schreibende Zugriffe und die Komplexität der Dateien/Struktur sind natürlich Knackpunkte die ich nicht kenne. Am 13.03.2015 um 16:07 schrieb Andreas Jung <lists@zopyx.com>:
Signierter PGP Teil Hartmut Goebel wrote:
Hallo,
ich habe ein kleine Nuss zu knacken:
Ich muss aus mehreren Prozessen aus dem gleichen File lesen. Das Problem ist, dass die gleichzeitigen Zugriffe und das nicht-atomare seek+read dazu führen, dass Schrott gelesen wird.
Warum verwendest Du nicht für jeden Prozess ein eigenes Filehandle?
-aj
_______________________________________________ python-de maillist - python-de@python.org https://mail.python.org/mailman/listinfo/python-de
-- Armin Carl Stroß-Radschinski | developer@acsr.de | Twitter: @syncmitter Dipl. Designer FH | project-consultant | fon +49 171 21 94699 | IRC: acsr | Skype: astrossradschinski ACSR industrialdesign | Armin Stroß-Radschinski Landgrafenstraße 32 · 53842 Troisdorf · Germany | UST. ID Nr: DE154092803 (EU VAT ID) info@acsr.de | www.acsr.de | phone +49 2241 946994 · fax +49 2241 946996