[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.