the case, it means that there is a not solved conflict
between two transactions (the least priority
transaction was not aborted).
Let us remind that the two transactions T
1
and T
2
,
which correspond respectively to the index 0 and 1
in the
liste_tr array elements, manipulate the x
granule in reading and writing. If these two
transactions are executed simultaneously, a conflict
can occur. The LTL formula, described below,
allows to check if this conflict is solved or not (if it
appears).
The LTL formula is as follows:
[]((<>(a&&b)-><>c)&&(<>(!a&&d)-><>e))
The properties a, b, c, d and e are defined as follows:
#define a
(liste_tr[0].ordre <liste_tr[1].ordre)
#define b (liste_tr[0].state==finish)
#define c (xval==tr2)
#define d (liste_tr[1].state==finish)
#define e (xval==tr1)
This LTL formula treats the two possible cases
between T
1
and T
2
according to their priority orders.
Case 1:
if T
1
> T
2
("a" = true) and if T
1
is finished ("b"=true)
Æ we must be sure to have :
“c” = true in a future state (xval="tr2").
Case 2:
if T
1
< T
2
("a" != true) and if T
2
is finished
("d"=true) Æ we must be sure to have :
“e” = true in a future state (xval="tr1").
The application of this formula gives a valid result.
4 CONCLUSION
In this paper, we checked that OCCA_SC/TTR
operates correctly. We showed formally, using SPIN
tool, that the general working of our system is
correct. Nevertheless, this formal verification
permits us to find some insufficiencies and to
resolve an error problem relating to the moment
when a transaction must have the finished state. We
showed that the state of a transaction T
i
must have
the value "finish" before making awake another
transaction T
j
.
In addition, the definition and the application of
the two LTL formulas, using SPIN, enabled us to
check that the strong consistency of the database is
maintained, on the one hand, and that in the case of a
conflict between two transactions, this conflict is
solved by aborting transaction having the least
priority, on the other hand.
Our future work aims at the validation of this
algorithm, using a complete study case, and to show
that it ensures better performances compared to
those of pessimistic algorithms presented in the
literature.
REFERENCES
Bernstein, P, A., Hadzilacos, V., Goodman, N., 1987.
Concurrency control and recovery in DBS.
ADDISON-WESLEY Edition.
Berstel, J., Reghizzi, S, C., Roussel, G., Pietro, P, S.,
2005. A Scalable Formal Method for Design and
Automatic Checking of User Interfaces. ACM
Transactions on Software Engineering and
Methodology.
Brinksma, E., Mader, A., Fehnker, A., 2002. Verification
and Optimization of a PLC Control Schedule. Journal
on Software Tools for Technology Transfer.
Bouaziz, R., Makni, A., 2005. ACCO_CF/RTT: Un
algorithme de contrôle de concurrence optimiste pour
les relations temporelles de transaction. Information
Sciences for Decision Makin, Janvier 2005.
Castro, C., 1998. On concurrency management in
temporal relational databases. In SEBD’98.
Elloumi, S, D., Bouaziz, R., Moalla, M., 1998. Contrôle de
concurrence multiversion dans les bases de données
temporelles. In BDA’98. International Conference on
advanced databases.
Finger, M., McBrien, P., 1997. Concurrency Control for
Perceivedly Instantaneous Transactions in Valid-Time
Databases. In TIME’97.
Gardarin, G., 1988. Base de données : Les systèmes et
leurs langages. EYROLLES Edition.
Gnesi, S., Lenzini, G., Latella, D., Abbaneo, C.,
Amendola, A., Marmo, P., 2000. An Automatic SPIN
Validation of a Safety Critical Railway Control
System. In DSN’00. International Conference on
Dependable Systems and Networks. Published by
IEEE Computer Society Press.
Havelund, K., Lowry, M., Penix, J., 2001. Formal
Analysis of a Space Craft Controller using SPIN.
IEEE Transaction on Software Engineering.
Holzmann, G, J., 1997. The model cheker spin. IEEE
Transaction on Software Engineering.
Rahgozar, M., 1987. Contrôle de concurrence par gestion
des événements. PhD thesis.
ICEIS 2006 - DATABASES AND INFORMATION SYSTEMS INTEGRATION
272