[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Database transactions, a Higher-level primitive in CSP?
Hi,
Rick mentiones the article:
> See SEMAPHOREs, RESOURCEs, EVENTs and BUCKETs
> (formerly: Higher Levels of Process Synchronisation in occam) by Welch & Wood
> http://wotug.ukc.ac.uk/parallel/occam/projects/occam-for-all/hlps/hlps.txt.
> "Channels are not enough" is the opening introduction.
> ...
>- CHANNEL
>- SEMAPHOR
>- RESOURCE locks
>- EVENT (barrier) sync
>- BUCKET synchronisation
I think the following "primitive" should be added:
- TRANSACTION. A Database Transaction, or transaction for short
allows realiable communication between any number of Processes
without prior knowledge of their communication behavior. Processes
perform transactions on the Database. Deadlock situations are
detected by the Database, and the deadlock situation is broken.
Processes may be asked by the Database to retry their transaction.
The Database guarantees the absense of both lifelock and deadlock.
During a Transaction, the Database gives a consistent view of the
data.
Remarks:
1. There is a world of literature on this subject.
2. It is a widely and succesfully used communication mechanism.
3. As far as I know, it has been completely ignored by the CSP community.
What do you think?
Marcel
ps. I hope that by raising many questions, I also get a lot of answers.
Tell me if you get tired from reading my remarks.