management of distributed transactions

33
13-05-2016 1 Ankita Dubey

Upload: ankita-dubey

Post on 06-Apr-2017

53 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Management of Distributed Transactions

13-05-2016

1

Ankita Dubey

Page 2: Management of Distributed Transactions

13-05-2016

2

Overview Introduction Framework Supporting atomicity Concurrency control Summarization References

2

Page 3: Management of Distributed Transactions

13-05-2016

3

Distributed Database System

3

A distributed database system consists of loosely coupled sites that share no physical component Database systems that run on each site are independent of each other Transactions may access data at one or more sites

Page 4: Management of Distributed Transactions

13-05-2016

4

Introduction The management of distributed transactions require dealing with several problems which are strictly interconnected, like-

a. Reliability b. Concurrency controlc. Efficient utilization of the resources of the whole system.

4

Page 5: Management of Distributed Transactions

13-05-2016

5

Framework for Transaction Management1. Properties of transactions 2. Goals of transaction management 3. Distributed transactions

5

Page 6: Management of Distributed Transactions

13-05-2016

6

1. Properties of transactions Atomicity Durability Serializability Isolation

6

Page 7: Management of Distributed Transactions

13-05-2016

7

2. Goals of transaction management CPU and main memory utilization Control messages Response time Availability

7

Page 8: Management of Distributed Transactions

13-05-2016

8

Lets summarize! The goal of transaction management in a distributed database is to control the execution of transactions so that:

1. Transactions have atomicity, durability, serializabilityand isolation properties. 2. Their cost in terms of main memory, CPU and number of transmitted control messages and their response time are minimized.3. The availability of the system is maximized.

8

Page 9: Management of Distributed Transactions

13-05-2016

9

3. Distributed transactions Agent: An agent is a local process which performs some actions on behalf of an application.

9

Page 10: Management of Distributed Transactions

13-05-2016

10

Example

10

Page 11: Management of Distributed Transactions

13-05-2016

11

An updating transaction

11

An updating transaction Updating a master tape is faulttolerant: If a run fails for any reason, all the tape could berewound and the job restarted with no harm done.

Page 12: Management of Distributed Transactions

13-05-2016

12

Basic Transaction Primitives

12

Page 13: Management of Distributed Transactions

13-05-2016

13

Transaction execution

13

Page 14: Management of Distributed Transactions

13-05-2016

14

Nested versus distributed transaction

14

Page 15: Management of Distributed Transactions

13-05-2016

15

Flat and nested transactions

15

Page 16: Management of Distributed Transactions

13-05-2016

16

Flat and nested transactions Flat transaction send out requests to different servers and each request is completed before client goes to the next one. Nested transaction allows sub-transactions at the same level to execute concurrently.

16

Page 17: Management of Distributed Transactions

13-05-2016

17

Supporting Atomicity of Distributed Transactions Recovery in centralized databases Communication failures in distributed databases. Recovery of distributed transactions. The 2-Phase-commitment protocol

17

Page 18: Management of Distributed Transactions

13-05-2016

18

1-phase atomic commit protocol A transaction comes to an end when the client requeststhat a transaction be committed or aborted. Simple way is: coordinator to communicate the commit orabort request to all of the participants in the transactionand to keep on repeating the request until all of them haveacknowledged that they had carried it out. Inadequate because when the client requests a commit, itdoes not allow a server to make a unilateral decision toabort a transaction. E.g. deadlock avoidance may force atransaction to abort at a server when locking is used. So anyserver may fail or abort and client is not aware.

18

Page 19: Management of Distributed Transactions

13-05-2016

19

2-phase commit protocol Allow any participant to abort its part of a transaction.Due to atomicity, the whole transaction must also beaborted. In the first phase, each participant votes for thetransaction to be committed or aborted. Once voted tocommit, not allowed to abort it. So before votes tocommit, it must ensure that it will eventually be ableto carry out its part, even if it fails and is replaced. A participant is said to be in a prepared state if it willeventually be able to commit it. So each participantneeds to save the altered objects in the permanentstorage device together with its status prepared.

19

Page 20: Management of Distributed Transactions

13-05-2016

20

2-phase commit protocol In the second phase, every participant in thetransaction carries out the joint decision. If any oneparticipant votes to abort, the decision must be toabort. If all the participants vote to commit, then thedecision is to commit the transaction. The problem is to ensure that all of the participantsvote and that they all reach the same decision. It is anexample of consensus. It is simple if no error occurs.However, it should work when servers fail, messagelost or servers are temporarily unable to communicatewith one another.

20

Page 21: Management of Distributed Transactions

13-05-2016

21

2-phase commit protocol If the client requests abort, or if the transaction isaborted by one of the participants, the coordinatorinforms the participants immediately. It is when the client asks the coordinator to committhe transaction that two-phase commit protocol comesinto use. In the first phase, the coordinator asks all theparticipants if they are prepared to commit; and in thesecond, it tells them to commit or abort thetransaction.

21

Page 22: Management of Distributed Transactions

13-05-2016

22

Operations for 2-phase commit protocol canCommit?(trans)-> Yes / No

Call from coordinator to participant to ask whether it can commit a transaction. Participant replies with its vote. doCommit(trans)

Call from coordinator to participant to tell participant to commit its part of a transaction. doAbort(trans)

Call from coordinator to participant to tell participant to abort its part of a transaction. haveCommitted(trans, participant) ▫

Call from participant to coordinator to confirm that it has committed the transaction. getDecision(trans) -> Yes / No

Call from participant to coordinator to ask for the decision on a transaction after it has voted Yes but has still had no reply after some delay. Used to recover from server crash or delayed messages.

22

Page 23: Management of Distributed Transactions

13-05-2016

23

Communication in 2-phase commit protocol

23

Page 24: Management of Distributed Transactions

13-05-2016

24

Concurrency Control for Distributed Transactions Concurrency control based on locking in centralized databases. Concurrency control based on locking in distributed databases.

24

Page 25: Management of Distributed Transactions

13-05-2016

25

Concurrency control in distributed transactions Concurrency control for distributed transactions: eachserver applies local concurrency control to its ownobjects, which ensure transactions serializabilitylocally. However, the members of a collection of servers ofdistributed transactions are jointly responsible forensuring that they are performed in a seriallyequivalent manner. Thus global serializability isrequired.

25

Page 26: Management of Distributed Transactions

13-05-2016

26

locks Lock manager at each server decide whether to grant alock or make the requesting transaction wait. However, it cannot release any locks until it knows thatthe transaction has been committed or aborted at allthe servers involved in the transaction. A lock managers in different servers set their locksindependently of one another. It is possible thatdifferent servers may impose different orderings ontransactions.

26

Page 27: Management of Distributed Transactions

13-05-2016

27

Timestamp ordering concurrency control In a single server transaction, the coordinator issues aunique timestamp to each transaction when it starts. Serialequivalence is enforced by committing the versions ofobjects in the order of the timestamps of transactions thataccessed them. In distributed transactions, we require that eachcoordinator issue globally unique time stamps. Thecoordinators must agree as to the ordering of theirtimestamps. , the agreed ordering of pairs of timestamps isbased on a comparison in which the server-id is lesssignificant. The timestamp is passed to each server whose objectsperform an operation in the transaction.

27

Page 28: Management of Distributed Transactions

13-05-2016

28

Timestamp ordering concurrency control To achieve the same ordering at all the servers, The servers of distributed transactions are jointly responsible for ensuring that they are performed in a serially equivalent manner. E.g. If T commits after U at server X, T must commits after U at server Y. Conflicts are resolved as each operation is performed. If the resolution of a conflict requires a transaction to be aborted, the coordinator will be informed and it will abort the transaction at all the participants.

28

Page 29: Management of Distributed Transactions

13-05-2016

29

locking

29

Page 30: Management of Distributed Transactions

13-05-2016

30

Distributed deadlock Deadlocks can arise within a single server when locking is used for concurrency control. Servers must either prevent or detect and resolve deadlocks. Using timeout to resolve deadlock is a clumsy approach. Why? Another way is to detect deadlock by detecting cycles in a wait for graph.

30

Page 31: Management of Distributed Transactions

13-05-2016

31

Summarization Distributed transaction managers must ensure that all transactions have theatomicity, durability, seriability and isolation properties. In most systems, this isobtained by implementing on top of existing local transaction managers the 2-phasecommitment protocol for reliability,2-phase-locking for concurrencycontrol, and timeouts for deadlock detection. The 2-phase-commitment protocol ensures that the subtransactions of the sametransaction will either all commit or all abort, in spite of the possible failures. 2-phasecommitment is resilient to any failure in which no log information is lost.The 2- phase-locking mechanism requires that all subtransactions acquire locksin the growing phase and release locks in the shrinking phase. Timeoutmechanisms for deadlock detection simply abort those transactions which are inwait, possibly for a deadlock. Several computation and communication structures are possible for distributedtransaction managers. The computation can use processes permanently assignedto transactions, or servers dynamically bound to them. Processes can have acentralized structure, in which one agent activates all other agents, or ahierarchical structure, in which each agent can in turn activate other agents. Thecommunication can use sessions or datagrams. The communication structure ofthe commitment protocol can be centralized, hierarchical, linear, or distributed.

31

Page 32: Management of Distributed Transactions

13-05-2016

32

References Distributed Database Principles and Systems by Stefano Ceri and Giuseppe Pelagatti.

32

Page 33: Management of Distributed Transactions

13-05-2016

33

33

Any questions?