[saga-rg] SAGA thread model

Thilo Kielmann kielmann at cs.vu.nl
Sun Jul 16 21:16:26 CDT 2006


I am sorry to say, but SAGA's task model seems to me severely flawed.
This is for two reasons:

1. the "main" thread (executing sync operations) 
   needs to be considered as yet another task
2. there must be a concise definition of the shared state. current solutions
   are ad-hoc and mostly undefined.
   shared state is:
     - local objects, shared between multiple tasks of the same process
       here: definition of synchronization between tasks
     - remote objects, in the service(s)
       here: definition of legal execution orders

so far, I can see only a few incidental definitions, but they are far from
being concise.

"tasks in a bulk operation have to be independent"
"a task cancel is doing 'best effort' but can not guarantee cancelation"

The latter, BTW, is a special case, because this is about connection 
termination for which you can formally prove that there is no protocol that 
can guarantee this AND notify both parties of successful termination.

To be constructive:
what the task model must do first thing is
- define tasks
- define which data is shared between tasks and which concurrency control
  happens on this shared data

That is the only way to define clearly what tasks will do in the event of
sharing, really.

You may want to look at:

http://www.amazon.com/gp/product/0201695812/qid=1153102128/sr=2-3/ref=pd_bbs_b_2_3/002-2045221-3597631?s=books&v=glance&n=283155

This is: 
Doug Lea, "Concurrent Programming in Java: Design Principles and Patterns"

This book uses 280 pages on objects, shared state and concurrency control
before using 95 pages for the thread operations...


-- 
Thilo Kielmann                                 http://www.cs.vu.nl/~kielmann/





More information about the saga-rg mailing list