P
programmer13
Guest
Hallo zusammen
Beim Einsatz von MySQL NDB Cluster ist folgendes generelles Problem aufgetreten: Um einen neuen Record / Row einzufügen, sollte die letzte bzw. neuste Zeile in der Datenbank gelesen werden, nun geprüft werden, ob sie mit der einzufügenden Zeile kompatibel ist und dann die neue Zeile eingefügt werden.
Es stellt sich jedoch das Problem, dass in der Zwischenzeit eine andere Instanz den gleichen Prozess durchläuft und dann am Ende beide neuen Zeilen den gleichen letzten bzw. neusten Datensatz auf Kompatibilität mit ihrer einzufügenden Zeile geprüft haben und eingefügt werden.
Gibt es eine Möglichkeit, dies mit einem Sperrvorgang beispielsweise zu unterbinden?
So dass eine Instanz die letzte Zeile / den letzten Datensatz über JDBC in Java holt und diese Zeile zum Lesen sperrt, dann das Objekt überprüft und dann den neuen Datensatz einfügt und nun eine zweite Instanz den gleichen Prozess durchlaufen kann?
Vielen Dank für eure Antworten.
Beim Einsatz von MySQL NDB Cluster ist folgendes generelles Problem aufgetreten: Um einen neuen Record / Row einzufügen, sollte die letzte bzw. neuste Zeile in der Datenbank gelesen werden, nun geprüft werden, ob sie mit der einzufügenden Zeile kompatibel ist und dann die neue Zeile eingefügt werden.
Es stellt sich jedoch das Problem, dass in der Zwischenzeit eine andere Instanz den gleichen Prozess durchläuft und dann am Ende beide neuen Zeilen den gleichen letzten bzw. neusten Datensatz auf Kompatibilität mit ihrer einzufügenden Zeile geprüft haben und eingefügt werden.
Gibt es eine Möglichkeit, dies mit einem Sperrvorgang beispielsweise zu unterbinden?
So dass eine Instanz die letzte Zeile / den letzten Datensatz über JDBC in Java holt und diese Zeile zum Lesen sperrt, dann das Objekt überprüft und dann den neuen Datensatz einfügt und nun eine zweite Instanz den gleichen Prozess durchlaufen kann?
Vielen Dank für eure Antworten.