Hans: sqlite parallele Schreibzugriffe

Hi,

Sqlite sperrt ja bei einem Schreibzugriff die ganze DB. Das bedeutet, dass weitere parallele Schreibzugriffe sozusagen in einer Warteschleife stehen.

Wie gross darf diese Warteschleife sein bzw. könnte es passieren, dass aufgrund Vielzahl einige Schreibanfragen verloren gehen?

Was passiert eigentlich hinter den Kulissen, wenn exakt(100% Zeitgleich) einige Anfragen kommen, wie entscheidet Sqlite dann, wer Priorität in der Warteschleife hat?

Hans

  1. Hello,

    Sqlite sperrt ja bei einem Schreibzugriff die ganze DB. Das bedeutet, dass weitere parallele Schreibzugriffe sozusagen in einer Warteschleife stehen.

    Wie gross darf diese Warteschleife sein bzw. könnte es passieren, dass aufgrund Vielzahl einige Schreibanfragen verloren gehen?

    Was passiert eigentlich hinter den Kulissen, wenn exakt(100% Zeitgleich) einige Anfragen kommen, wie entscheidet Sqlite dann, wer Priorität in der Warteschleife hat?

    Gute Frage.
    sind ja "nur" 919 Zeilen C-Code im Insert-Modul der DB.
    Sonst hätte ich es hier gepostet. Ist aber auch so nicht leicht verständlich, was darin passiert.

    "Zeitgleich" ist aber immer eine Frage des Betriebssystems.
    Das ist bei Vorhandensein mehrerer Kanäle (Ports) zur Applikation auch für die Serialisierung der Anfragen zuständig. Gibt es aber nur einen Port, dann kann immer nur eine Anfrage zur gleichehn Zeit beantwortet werden, oder es gibt eine Kollision. Dann wird keine der konnkurrierenden Anfragen beantwortet.

    Ein harzliches Glückauf

    Tom vom Berg

    http://bergpost.annerschbarrich.de
    .

    --
    Nur selber lernen macht schlau