|
Mere om semantik og race betingelser
2008-10-11T09: 01:00.011 +02:00
I tidligere udstationering Jeg har udgjort følgende sceanario:
I betragtning af den simple ansøgning vist nedenfor:
- Der er en enkelt begivenhed kilde (så ingen ur synkronisering spørgsmål), som genererer begivenheder af tre typer E1, E2, E3.
- Lad os også sige, at i vores historie er der en enkelt hændelser af hver type, der er offentliggjort (så ingen synonymer spørgsmål), tabellen viser deres forekomst tid (når de har fundet sted i virkeligheden) og afsløring tid (når de er blevet indberettet til systemet ) - hver af dem er blevet rapporteret 1 gang enhed efter dens forekomst, der ikke re-bestilling problem.
- Etaper e1, e2 tjene som et input til en EPA af typen "mønster afsløring", som registrerer en tidsmæssig rækkefølge mønster "e1 før E2", og når det er påvist, den følger en begivenhed e4 - nogle funktion af E1 og E2.
- Etaper e3 (rå tilfælde) og e4 (afledt begivenhed) tjene som input til en anden EPA af typen "mønster afsløring", som igen finder en tidsmæssig sekvenser mønster "e3 før e4", hvis dette mønster er opdaget - Opret begivenhed E5, som udløser en handling i forbrugerprisindekset.
Jeg har også stillet spørgsmålet er - i lyset af ovenstående - vil aktionen udløst af e5 opstå?, Dvs vil det mønster - "e3 før e4" skal evalueres til sand?
Jeg fik et par svar på dette, og du kan læse dem som kommentarer til den oprindelige udstationering; som lovet Jeg afsætter denne udstationeringer til analyse af denne enkle tilfælde:
Den første ting at drøfte er semantik af "tidsmæssige rækkefølge". Der er to mulige former for semantik for tidsmæssige rækkefølge, som jeg kalder "afsløring tid semantik" og "hændelse tid semantik".
- Påvisning tid semantik er gennemført på forskellige sprog og betyder, at den tidsmæssige rækkefølge er rækkefølgen af tidsstempler, hvor "begivenhed forarbejdning platform" opdager, at denne begivenhed indtræffer, hvis der er en enkelt tråd af en sådan opdagelse, da de begivenheder, er helt bestilt, ellers kan der være flere arrangementer med samme "afsløring tidsstempel".
- Forekomsten tid semantik også implementeret på forskellige sprog betyder, at den tidsmæssige rækkefølge er rækkefølgen af tidsstempler, der leveres som en del af begivenheden oplysninger og udpege - når denne begivenhed happend i virkeligheden. Der er nogle komplicerede synkronisering af tid i multi-producent miljø, men i dette eksempel går vi ud fra en enkelt producent (I'll skrive om multi-producent tilfælde i en anden udstationering).
- Bemærk, at denne to For forbindelser kan ikke være identiske.
- Der er også slags hybrid opløsning ( "total for semantik") - den semantik er virkelig "afsløring tid" semantik, men for at gøre det muligt begivenheder at ankomme lidt sent at tage deres rolle, begivenhederne er kø på en buffer (og ikke betragtes som opdages) indtil time-out for at lade "out of order" arrangementer for at nå frem og igen for den buffer, og derefter sende begivenheder i henhold til buffer orden.
Kom tilbage til eksempel - i den lille tabel på den nederste venstre side af ovenstående figur er der forekomst og afsløring gange af E1, E2, E3. For e4 der kun afsløring tid - e4 er forskellig fra (e1, e2, e3) ved det faktum, at det er en afledt begivenhed, og ikke rå begivenhed ligesom de andre tre. Spørgsmålet er, "hvad er forekomsten af en afledt begivenhed"? - Der er ikke noget klart svar til det - der er flere mulige svar:
- I de afledte begivenhed tilfælde forekomsten tid \u003d afsløring tid, da dette arrangement er ikke reel begivenhed, men en virtuel en dermed sin kilde er EPA, der skaber det, og det fandt sted, da oprettet. I vores tilfælde betyder det, at occurence-tid (e4) \u003d 4.
- Dets forekomst tid er forekomsten tidspunktet for det sidste tilfælde af, at afsluttet mønster - da de deltagende begivenheder i skabelsen af e4 er (e1, e2) og E2 var den sidste, der afsluttede det mønster, tildragelsen-tid (e4) \u003d forekomst - tid (e2) \u003d 2
- Interval semantik: Arrangementet e4 opstår i den mellemliggende periode, hvor alle deltagerne optræde, som er dette tilfælde betyder forekomst-tid (e4) \u003d [1, 2].
Fænomenet med flere semantiske fortolkninger gælder for forskellige andre semantiske afgørelser i de semantiske hændelsestype forarbejdning sprog, og den foretrukne løsning er at give brugeren med semantisk "finjustering" politik, hvor brugeren kan vælge den ønskede semantik, i stedet for " hårde kode "en vis semantik (ved hjælp af de mest almindelige en som standard), dette er en af fordelene ved at bruge Vugger for begivenhed behandling, da det er ret vanskeligt at tænke over sådanne spørgsmål, når de udvikler EP manuaully anvender konventionelle sprog.
Betydningen af det andet "temporal sekvens" (e3, e4) er således:
- Ifølge "sporingstid" semantik - begge har afsløring-tiden af 4. Som sådan sekvensen betingelse er ikke opfyldt. Men hvis vi indføre samlede ordre med en enkelt tråd, dette kan skabe kapløb mellem de to begivenheder. I dette tilfælde anbefales det at anvende en konsekvent prioriteret politik - enten bredde første (den rå begivenhed altid kommer først) eller dybde første (den afledte begivenhed altid kommer først) for at sikre deterministiske resultat.
- Ifølge "hændelse tid" - det afhænger af de politiske valg, men ifølge alle interprerations - e4 indtræffer før E3 - dermed den tidsmæssige rækkefølge er ikke opfyldt.
Bottome linje: den tidsmæssige rækkefølge (e3, e4) er opfyldt, hvis:
- Den tidsmæssige semantik er sporingstid
- Det er gennemført af alt for
- Af den samlede ordre er "bredde først" - nemlig prioritet for rå begivenheder.
I alle andre tilfælde er den tidsmæssige rækkefølge, vil ikke blive opfyldt, og den naturlige konsekvens indsats ikke vil udføre.
Kilde ...
|