Als «concurrency» getaggte Fragen

Bei Fragen zu Problemen, die auftreten, wenn mehrere Benutzer oder Prozesse gleichzeitig auf freigegebene Informationen in einem Datenbanksystem zugreifen oder diese ändern.

1
Postgres UPDATE… LIMIT 1
Ich habe eine Postgres-Datenbank, die Details zu Serverclustern enthält, z. B. den Serverstatus ("Aktiv", "Standby" usw.). Aktive Server müssen möglicherweise jederzeit auf einen Standby-Modus umschalten, und es ist mir egal, welcher Standby-Modus im Besonderen verwendet wird. Ich möchte, dass eine Datenbankabfrage den Status eines Standbys ändert - NUR EINS - …


4
Wie testet man in einer Datenbank auf Rennbedingungen?
Ich versuche, Datenbankcode zu schreiben, um sicherzustellen, dass er keinen Rennbedingungen unterliegt, und um sicherzustellen, dass ich die richtigen Zeilen oder Tabellen gesperrt habe. Aber ich frage mich oft: Ist mein Code korrekt? Kann man bestehende Rassenbedingungen zwingen, sich zu manifestieren? Ich möchte sichergehen, dass meine Anwendung das Richtige tut, …


6
Kann ich mich darauf verlassen, dass die SQL Server-Identitätswerte der Reihe nach gelesen werden?
TL; DR: Die folgende Frage lautet: Gibt es beim Einfügen einer Zeile ein Zeitfenster zwischen der Generierung eines neuen IdentityWerts und dem Sperren des entsprechenden Zeilenschlüssels im Clustered-Index, in dem ein externer Beobachter einen neueren sehen könnte Identity Wert, der von einer gleichzeitigen Transaktion eingefügt wurde? (In SQL Server.) Ausführliche …


1
Teilweise aktualisierte Zeile lesen?
Angenommen, ich habe zwei Abfragen, die in zwei separaten Sitzungen in SSMS ausgeführt werden: Erste Sitzung: UPDATE Person SET Name='Jonny', Surname='Cage' WHERE Id=42 Zweite Sitzung: SELECT Name, Surname FROM Person WITH(NOLOCK) WHERE Id > 30 Ist es möglich, dass die SELECTAnweisung eine halb aktualisierte Zeile liest, zum Beispiel eine mit …

3
Einfügen, wenn nicht vorhanden, gleichzeitig
Ich habe Parallelitätsprobleme mit meinen Einfügungen in einer gespeicherten Prozedur. Der relevante Teil des Verfahrens ist: select @_id = Id from table1 where othervalue = @_othervalue IF( @_id IS NULL) BEGIN insert into table1 (othervalue) values (@_othervalue) select @_id = Id from table1 where othervalue = @_othervalue END Wenn wir …

1
Hochbegleitendes Speichersystem
Stellen Sie sich vor, Sie benötigen 3 große Tabellen (strukturierte Daten) mit jeweils 30 Milliarden Zeilen (Gesamtgröße von 4 TB), von denen Ihre vielen gleichzeitigen Benutzer (die parallele Betriebssystem-Threads auf Remote-LAN-Computern sind) einen Teil lesen müssen die Daten durch ihre SELELCT WHERE GROUPBY-Abfragen und hochgradig gleichzeitige Abfragen, z. B. 10.000 …


1
Sperren von Postgres für die Kombination UPDATE / INSERT
Ich habe zwei Tische. Eine ist eine Protokolltabelle; Ein anderer enthält im Wesentlichen Gutscheincodes, die nur einmal verwendet werden können. Der Benutzer muss in der Lage sein, einen Gutschein einzulösen, der eine Zeile in die Protokolltabelle einfügt und den Gutschein als verwendet markiert (durch Aktualisieren der usedSpalte auf true). Natürlich …

2
LATCH_EX wartet auf die Ressource METADATA_SEQUENCE_GENERATOR
Wir haben einen Prozess, der einen Inventarbericht generiert. Auf der Clientseite teilt der Prozess eine konfigurierbare Anzahl von Arbeitsthreads auf, um einen Datenblock für den Bericht zu erstellen, der einem von vielen Speichern entspricht (möglicherweise Tausende, normalerweise Dutzende). Jeder Arbeitsthread ruft einen Webdienst auf, der eine gespeicherte Prozedur ausführt. Der …


1
Einfügen einer Select-Anweisung in eine Transaktion
Was ist der Unterschied zwischen diesen beiden Abfragen: START TRANSACTION; SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; COMMIT; Und ohne Transaktion: SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; Was bewirkt eine SELECTinterne Transaktion? Wenn in beiden Fällen DELETE FROM orders …

3
Inkonsistenz beim wiederholbaren Lesen
http://www.postgresql.org/docs/9.2/static/transaction-iso.html Der wiederholbare Lesemodus bietet eine strenge Garantie dafür, dass jede Transaktion eine vollständig stabile Ansicht der Datenbank sieht. Diese Ansicht ist jedoch nicht unbedingt immer mit einer seriellen (einzelnen) Ausführung gleichzeitiger Transaktionen derselben Ebene konsistent. Beispielsweise wird bei einer schreibgeschützten Transaktion auf dieser Ebene möglicherweise ein Kontrolldatensatz aktualisiert, um …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.