die shelve-Doku sagt unter anderem:
"The shelve module does not support concurrent read/write access to shelved objects. (Multiple simultaneous read accesses are safe.) When a program has a shelf open for writing, no other program should have it open for reading or writing. Unix file locking can be used to solve this, but this differs across Unix versions and requires knowledge about the database implementation used."
Nachdem 'shelf.open()' letztlich 'anydbm' bemüht ist es ja wohl so, dass auch 'anydbm' konkurrierende Schreib-/Lesezugriffe nicht unterstützt.
Bleiben für mich die Fragen:
- Warum keine Lesezugriffe, trotz Anmerkung: (Multiple simultaneous read accesses are safe.) Also was denn nun?
- Warum nennt sich 'anydbm' dann Datenbankmodul? Ist das Verwalten von konkurrierenden/gleichzeitigen Zugriffen nicht eine elementare Aufgabe jedes Datenbanksystems?
- Oder besteht zwischen konkurrierend und gleichzeitig ein kleiner aber feiner Unterschied?