AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Programmablauf synchron? [Verständnisfrage]
Thema durchsuchen
Ansicht
Themen-Optionen

Programmablauf synchron? [Verständnisfrage]

Ein Thema von Dragon27 · begonnen am 30. Aug 2009 · letzter Beitrag vom 31. Aug 2009
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: Programmablauf synchron? [Verständnisfrage]

  Alt 31. Aug 2009, 17:07
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz