I have some problems understanding the theory within a transaction
manager...
1. What is an input schedule used for? It is an element of the shuffle
product of all TA's. Any element of shuffle(TA) may be incorrect to my
understanding. So, why is an potentially incorrect input schedule
created at all instead of simply taking the serial schedule as input?
The scheduler corrects this one as an output schedule anyway...
2. Are there any (generic) algorithms or pseudo code available as to how
an input schedule is created from a list of transactions?
This looks to me as an extremely complicated implementation issue,
especially considering the permanent online state. Some instance has to
know which transactions have been completed and which haven't. What
happens with the actions in the old input schedule when another
transaction is started? I'd bet the old schedule is retained, and only
the new actions are interleaved "somewhere". If this interleaving is
incorrect, it will be corrected by the scheduler. This is my bet... But:
I don't know if I'm right.
3. *When* does the scheduler run? It runs all the time - ok - but when
does it create new output schedules?
I'd very much appreciate if someone could help me with (parts of) these
questions. I have to implement a demo software, but the resources I have
found so far don't answer these "time" questions, especially my profs
script.