Scheduler
The ‘‘Transaction Manager’’ is a component of a Database that issues read and write requests to the ‘‘scheduler’’.
The ‘‘scheduler’’ determines the order of execution of these requests
- Given some transactions,
- Find a conflict-serializable schedule to execute them
Problem:
- Read/Write requests arrive continuously and the scheduler never knows the whole transaction
- it also may be a long running transaction
$\Rightarrow$ the scheduler has to construct the schedule dynamically by
- allowing some read/write requests
- blocking others
- restarting some transactions when necessary
- all to ensure that the resulting schedule is conflict-serializable
There are many schedulers:
Serializable Level of Isolation