Optimistic Concurrency
# Optimistic Concurrency

Optimistic Concurrency (auch: Optimistisches Locking genannt) ist ein Verfahren, um beispielsweise in Warenwirtschaftssystemen den parallelen Zugriff von mehreren Benutzern auf denselben Datensatz konfliktarm und ohne Inkonsistenzen zu regeln.
Bei der Optimistic Concurrency wird mehreren Nutzern Parallelzugriff gewährt. Somit haben alle Benutzer grundsätzlich Leserechte, um z. B. Artikelinformationen aufzurufen oder auszudrucken. Wenn aber ein Artikel von einem der Benutzer geändert wurde, so bekommen andere Nutzer, die denselben Datensatz fast gleichzeitig zu ändern versuchen, eine Benachrichtigung, dass der Artikel aktualisiert wurde. In diesem Fall ist also der Nutzer privilegiert, der zuerst den Datensatz geändert hat. Wenn der Nutzer den Datensatz verlässt, wird ihm sein Privileg wieder entzogen, und ein nächster Anwender erhält Schreibzugriff.
Im Gegensatz dazu wird bei der Pessimistic Concurrency (Pessimistisches Locking) beim Zugriff eines Benutzers auf den Datensatz der Schreib- und Lesezugriff für alle anderen Nutzer gesperrt. Es ist damit also für weitere Benutzer nicht mehr möglich, einen Datensatz aufzurufen oder auszudrucken, bis der Datensatz wieder freigegeben wird.
Bei der Pessimistic Concurrency wird angenommen, dass ein Datensatz bei (fast) jedem Zugriff geändert werden soll. Die Optimistic Concurrency hingegen geht von der Prämisse aus, dass Datensätze vorwiegend für den Lesezugriff geöffnet werden.
Die Optimistic Concurrency minimiert Zugriffskonflikte im laufenden Betrieb, da nur gleichzeitige Zugriffe für Änderungen zu einem Konflikt führen, gleichzeitige Lesezugriffe hingegen nicht.