Zitat von
Dragon27:
Ich glaube, dass AbsoluteDB keine Anfragen paralell ausführen kann, oder? Ist ja nur eine Datei...
Damit hat das nichts zu tun,
MSSQL hat auch nur eine Datei (ok, und eine für die Logs). Das Problem ist:
Prozess A will in einer Tabelle einen Wert um eins erhöhen, Prozess B will das auch (die gleiche Stelle).
A liest den Wert (z.B. x=10), erhöht ihn (x=11). Weiter kommt er nicht, denn B will auch mal. B liest also (x=10) und erhöht ihn (x=11).
Nun ist A wieder dran und speichert die 11. B tut das auch und alle sind zufrieden. Alle? Also ich nicht.
Wenn A nun seine ganze 'Transaktion' exklusiv ausgeführt oder wenigstens die Tabelle gesperrt hätte, dann wäre ich zufrieden:
A sperrt die Tabelle, liest den Wert (z.B. x=10), erhöht ihn (x=11). Weiter kommt er nicht, denn B will auch mal. B will also lesen, darf nicht und sagt 'na gut, ich warte, bis die Tabelle wieder frei ist'.
Nun ist A wieder dran und speichert die 11 und entsperrt die Tabelle. B wacht auf, liest (x=11) und erhöht (x=12) und speichert. So sieht das schon besser aus.
Zu deiner Frage:
Entweder sorgst Du dafür, das aus deinem Programm nur streng sequentiell Operationen auf den Daten durchgeführt werden, oder Du machst das parallel (was u.U. weeesentlich schneller ist), kapselst deine Transaktionen aber. Dafür gibt es in so gut wie jedem
DBMS, vermutlich auch ADS, entsprechende Mechanismen.