0
971views
Explain optimistic concurrency control technique.
1 Answer
0
17views
written 2.6 years ago by |
Concurrency control
Concurrency controlling techniques ensure that multiple transactions are executed simultaneously while maintaining the ACID properties of the transactions.
Simultaneous execution of transactions overashared database can create several data integrity and consistency problems.
- Lost Update
- Dirty Read Problems
- Incorrect Summary Problems
- Unrepeatable Read Problem
Optimistic concurrency control
Optimistic concurrency control isaconcurrency control method applied to transactional systems
- The transaction is executed without restriction and before committing, each transaction verifies that no other transaction has R/W conflicts.
- If the check reveals conflicting modifications, the committing transaction rolls back and can be restarted.
In optimistic methods, each transaction moves through the following phases:
- Read phase.
- Validation or certification phase.
- Write phase.
Read phase:
- The transaction reads the database, executes the needed computations and makes the updates toaprivate copy of the database values.
- All update operations of the transactions are recorded ina temporary update file, which is not accessed by the remaining transactions.
Validation phase:
- The transaction is validated to establish whether or not its operations on objects conflict with operations of other transactions on the same objects.
- If the validation test is positive, the transaction goes toa write phase. If the validation test is negative, the transaction is restarted and the changes are discarded.
To pass the validation test one of the condition must be true,
- The earlier transaction Ti finish before new transaction Tj started (no overlapping transactions)
- The new transaction Tj starts before the earlier transaction Ti started (overlapping transactions)
- The validation phase ofatransaction comes after the write phase of another transaction, then validation is true
Two types of Validation,
- Backward Validation
- Forward Validation
Backward validation:
- algorithm checks the transaction in validation phase with other preceding overlapping transactions that have entered validation phaseO
- Write operations are ok since Read operations of earlier transactions are done already (Rule1)
- Check if Read operations have any conflict with Write operations of earlier overlapping transactions (Rule 2) => if yes, abort transaction
Forward validation
- algorithm checks transaction in validation phase with other overlapping active transactionsO
- Read operations are ok since later transactions do not write until the transaction is done (Rule 2)
- check if Write operations have any conflict with Read operations of overlapping active transactions (Rule 1) => if yes, abort transaction
- Validation uses the read-write conflict rules to ensure that the scheduling ofaparticular transaction is serially equivalent with respect to all other overlapping transactions
- Write Phase:
- The changes are permanently applied to the database.
ADD COMMENT
EDIT
Please log in to add an answer.