IntroductionIn this paper an Concurrency Control Mechanism (CCM) is proposed that ensures epsilon serializability and report its performance. The ability to perform transaction activities such as bill payments, transfer funds from anytime anywhere is in great demand. CCMs proposed earlier 1, 2, 3, 4 did not indicate conservation of resources and some of them are message intensive.
This paper argues that a weaker form of consistency is desirable and proposes a CCM which uses semantic properties 2 of broadcast data and reports its performance.ApproachIn data processing develop a weaker correctness criteria is acceptable in a number of situations and use ? serializability (ESR) 5, 6, which permit very few amount of inconsistency specified by ? to develop this CCM. It is based on a two-tier replication scheme 7 that produces ? serializable schedule.
The idea behind two-tier replication is to allow the user to run transactions on the Mobile Unit (MU) which will make data updates locally and whenever the MU connects to servers, these transactions will be re-executed on servers as base transactions. Base transactions are serialized on the master copy of data and MUs are informed about the failed Base transactions. But the disadvantage of using this approach is that large number of transactions are rejected as MU execute transaction locally and the commit time of transaction at MU will be large because it will know its outcome only after the Base transactions have been executed. This paper modifies two-tier replication scheme to reduce the number of rejections and transaction commit time at MU.The Concurrency control mechanismAn assumption is made in this paper that there is a central server that holds and manages the database. The data records will be replicated at the Mobile Unit, a limit ? is kept for the amount of change that can appear on the replicated record at each MU.
If the transaction changes the data value in a MU by at most ?, then they can be committed instead of waiting for results of the Base Transaction at DBS. This will reduce transaction’s commit time and will also helps in reducing the number of rejections, which may arise due to Base Transaction not being able to commit. To control the validity of ?, we define a timeout parameter whose value will indicate a duration within which the value of ? is valid.
Timeout values of the data item should be multiple (I) of broadcast cycle time (T). The steps of the algorithm are below: At the DBS: ? is calculated for each data object D by using a function ? = f (d, n). For each D there is a function f (d, n) associated with it and this function depends on the application semantics.A timeout value ? is linked with ? of each data item.DBS broadcasts (d, ?) for each data item and ? for these values at the starting of the broadcast cycle.
The DBS can receive a pre-committed transactions (transactions which made updates to replicas on the MU and got committed) or it can receive request transactions (transactions that are directly sent to the DBS by the MU). A request transaction will not be executed at an MU as the transaction will have changed the value of replica D by more than ? at the MU.Execution of transaction on master copy of the data record: (i) DBS serializes the pre-committed transactions on the master copy according to the order they arrived on the DBS (ii) After ? is expired, DBS runs request transaction and reports it to the MU whether the transaction was committed or aborted. After ? expires the DBS goes back to procedure 1. At MU: MU has (d,?) for each D it has cached and their ? value.MU runs transaction t: Let (?-t) be the change t made to D. Let (?-c) be the current value of the total change in D since the last broadcast of value ?.
If transaction t changes the value of D by an amount (?-t), then the amount (?-t) is added to (?-c). The following cases are possible: If (?-t) <= ? and (?-c) <= ? then the transaction t will be committed at MU and will be sent to the server for re-execution as a Base Transaction on the master copy.If (?-t) <= ? and (?-c) > ? then the transaction t will be blocked at MU until the new set of (d,?) is received from the server.If (?-t) > ? then the transaction t will be blocked at MU and submitted to the server as a request transaction.