|
Mehr über Semantik und Race Conditions
2008-10-11T09: 01:00.011 +02:00
In früheren Buchung Ich habe sich die folgenden sceanario:
Aufgrund der einfachen Anwendung wie folgt:
- Es ist ein einmaliges Ereignis Quelle (so dass keine Fragen Taktsynchronisation) erzeugt, die Ereignisse von drei Arten E1, E2, E3.
- Lassen Sie uns auch sagen, dass es in unserer Geschichte gibt es einen einzigen Ereignisse jeder Art, die veröffentlicht werden (so dass keine Fragen Synonyme) zeigt die Tabelle, deren Auftreten Zeit (wenn sie in Wirklichkeit) und die Aufdeckung Zeit (wenn sie wurden an das System ) - jeder von ihnen wurde 1 mal Einheit nach ihrer Eintrittswahrscheinlichkeit, keine Re-Bestellung Problem.
- Veranstaltungen E1, E2 als Beitrag zu einer EPA vom Typ "Pattern Detection" erkennt, die eine zeitliche Reihenfolge Muster "E1 vor e2", und wenn dies erkannt wird, es ergibt sich ein Ereignis E4 - einige Funktionen von E1 und E2.
- Events E3 (Roh-Ereignis) und E4 (abgeleitet event) dienen als Input für die anderen EPA vom Typ "Muster-Erkennung", die wieder eine zeitliche Sequenzen erkennt Muster "E3 vor e4", wenn dieses Muster erkannt wird - die Event e5 löst eine Aktion in der Verbraucher.
Ich habe auch die Frage gestellt ist - in Anbetracht der oben - wird die Aktion durch e5 auftreten?, Also wird das Muster - "E3 vor e4" bewertet werden, um wahr?
Ich habe ein paar Antworten auf diese und Sie können sie als Kommentar zu der ursprünglichen Buchung, wie versprochen, ich bin widmen diese Buchungen bis zur Analyse dieser einfachen Fall:
Das erste, was zu diskutieren ist die Semantik von "zeitliche Abfolge". Es gibt zwei mögliche Arten von Semantik für die zeitliche Abfolge, die ich als "Nachweis Zeit Semantik" und "Ereignis Zeit Semantik".
- Die Nachweisgrenze Zeit Semantik wird in verschiedenen Sprachen und bedeutet, dass die zeitliche Reihenfolge ist die Reihenfolge der Zeit-Stempel, in dem die "Verarbeitungs-Plattform" erkennt, dass dieses Ereignis eintritt, wenn es einen einzigen Thread solcher Nachweis, dann die Ereignisse sind völlig bestellt, sonst kann es mehrere Veranstaltungen mit dem gleichen "Erkennung timestamp".
- Das Auftreten Semantik Zeit auch in verschiedenen Sprachen bedeutet, dass die zeitliche Reihenfolge ist die Reihenfolge der Zeit-Stempel, die im Rahmen der Veranstaltung Informationen und benennen - bei dieser Veranstaltung in der Realität passiert. Es gibt einige Komplexität der Synchronisierung der Zeit in Multi-Hersteller Umwelt, aber, in diesem Beispiel gehen wir davon aus einem einzigen Hersteller (ich schreibe über Multi-Hersteller in einem anderen Posting Fälle).
- Beachten Sie, dass diese beiden, um die Beziehungen dürfen nicht identisch sein.
- Es gibt auch Arten von Hybrid-Lösung ( "insgesamt um Semantik") - die Semantik ist wirklich "Erkennung Zeit" Semantik, sondern um Ereignisse, die kommen ein bisschen spät, um ihre Rolle, die Ereignisse der Warteschlange auf einen Puffer (und nicht als Feststellung) bis zum Time-out zu vermieten "out of order" Veranstaltungen zu gelangen und wieder, um den Puffer, und senden Sie dann die Ereignisse nach dem Puffer um.
Kommen wir zurück auf das Beispiel - in der kleinen Tabelle auf der linken Seite der Abbildung oben, gibt es mal Vorkommen und Nachweis von E1, E2, E3. Für E4 gibt es nur Erkennung Zeit - e4 unterscheidet sich von (E1, E2, E3) durch die Tatsache, dass es sich um eine Veranstaltung aus und nicht roh Veranstaltung wie die anderen drei. Die Frage ist, "was ist das Auftreten von einer abgeleiteten Veranstaltung"? - Es gibt keine klare Antwort für sie - gibt es mehrere mögliche Antworten:
- In der Veranstaltung abgeleitet Fall das Auftreten time \u003d Erkennung Zeit, da dieser Veranstaltung ist nicht das wirkliche Ereignis, sondern ein virtuelles, damit der Quelle ist die EPA, dass erstellt, und es kam vor, wenn erstellt. In unserem Fall bedeutet dies, dass occurence-Zeit (e4) \u003d 4.
- Sein Auftreten ist das Auftreten Zeitpunkt der letzten Fall, dass die Muster - da die teilnehmenden Veranstaltungen in der Schaffung von e4 sind (E1, E2) und E2 war der letzte, dass die Muster, Ereignis-Zeit (e4) \u003d Ereignis - Zeit (E2) \u003d 2
- Intervall-Semantik: Die Veranstaltung e4 tritt in das Intervall, in dem alle Teilnehmer auftreten, die diesem Fall bedeutet, Auftreten-Zeit (e4) \u003d [1, 2].
Das Phänomen der mehrfachen semantischen Interpretationen für verschiedene andere semantische Entscheidungen in der semantischen Verarbeitung der Veranstaltung Sprache, und die bevorzugte Lösung besteht darin, den Benutzer mit semantischen "Feinabstimmung"-Politik, unter denen der Benutzer die Wahl der gewünschten Semantik, anstelle von " Hard Code "eine gewisse Semantik (unter Verwendung der am häufigsten als ein Standard), ist dies einer der Vorteile der Verwendung von COTS für Event-Verarbeitung, da ist es recht schwierig, über diese Fragen bei der Entwicklung von EP manuaully mit konventionellen Sprache.
Die Semantik des zweiten "zeitliche Abfolge" (E3, E4) ist somit:
- Laut "Zeit-Erkennung" Semantik - beide Nachweis-Zeit von 4. Als solche ist die laufende Bedingung nicht erfüllt ist. Allerdings, wenn wir insgesamt durch einen einzigen Thread, dieser kann Rennen zwischen den beiden Veranstaltungen. In diesem Fall wird empfohlen, eine konsequente Politik Priorität - entweder Breite erste (die Roh-Veranstaltung findet immer an erster Stelle) oder Tiefe ersten (der abgeleiteten Veranstaltung findet immer an erster Stelle), um sicherzustellen, deterministische Ergebnis.
- Nach dem "Ereignis der Zeit" - es hängt von der Politik gewählt, aber nach allen interprerations - e4 tritt vor e3 - und damit die zeitliche Abfolge nicht zufrieden ist.
Bottome Zeile: die zeitliche Abfolge (E3, E4) ist erfüllt, wenn:
- Die zeitliche Semantik-Erkennung Zeit
- Es wird durch insgesamt um
- Die Summe, um Politik "Breite" First "- und zwar vorrangig für die Roh-Veranstaltungen.
In allen anderen Fällen ist die zeitliche Abfolge wird nicht erfüllt werden und die Folge wird nicht ausgeführt.
Quelle ...
|