Presentation is loading. Please wait.

Presentation is loading. Please wait.

Transactions are back But are they the same? R. Guerraoui, EPFL.

Similar presentations


Presentation on theme: "Transactions are back But are they the same? R. Guerraoui, EPFL."— Presentation transcript:

1 Transactions are back But are they the same? R. Guerraoui, EPFL

2 - Le retour de Martin Guerre - (Sommersby)

3

4 From the New York Times San Francisco, May 7, 2004 Intel announces a drastic change in its business strategy: « Multicore is THE way to boost performance »

5 The free ride is over Every one will need to fork threads

6 Forking threads is easy Handling the conflicts is hard

7 Coarse grained locks => slow Fine grained locks => errors (Most Java bugs are due to misuse of he word « synchronized »)

8 Double-ended queue Enqueue Dequeue

9 Lock-free computing? Every lock-free data structure  # podc/disc/spaa papers

10 A concurrency control abstraction that is: Simple to use Efficient to implement

11 Transactions Cope with both concurrency and recovery control

12 accessing object 1; accessing object 2; Back to the undergraduate level Begin { end }

13 Transactions Consistency Contract (ACID) C A-I-D

14 Historical perspective Eswaran et al (CACM’76) Database Papadimitriou (JACM’79) Theory Liskov/Sheifler (TOPLAS’82) Language Knight (ICFP’86) Architecture Herlihy/Moss (ISCA’93) Hardware Shavit/Touitou (PODC’95) Software

15 Simple example (consistency invariant) 0 < x < y

16 T: x := x+1 ; y:= y+1 Simple example (transaction)

17 You: « atomicity » (AID) Grand’ma: « consistency » ( C) Consistency Contract C A-I-D

18 A history is atomic if its restriction to committed transactions is serializable The underlying theory (P’79)

19 A history H of committed transactions is serializable if there is a history S(H) that is (1) equivalent to H (2) sequential (3) legal

20 This is all fine But this is not new Why should we care? Because we want jobs

21 Transactions are indeed back But are they really the same? How can we figure that out?

22 Ask system people System people know « Those who know don’t need to think » Iggy Pop

23 Simple algorithm (DSTM) To write an object O, a transaction acquires O and aborts “the” transaction that owns O To read an object, a transaction T takes a snapshot to see if the system hasn’t changed since T’s last reads; else T is aborted

24 Simple algorithm (DSTM) Killer write (ownership) Careful read (validation)

25 More efficient algorithm Apologizing versus asking permission Killer write Optimistic read: validity check at commit time

26 Am I smarter than a system guy? No way

27 Back to the example Invariant: 0 < x < y Initially: x := 1; y := 2

28 Division by zero T1: x := x+1 ; y:= y+1 T2: z := 1 / (y - x)

29 T1: x := 3; y:= 6 Infinite loop T2: a := y; b:= x; repeat b:= b + 1 until a = b

30 System people care about live transactions Theoreticians didn’t

31 We need a theory that talks about ALL transactions The old theory A history is atomic if its restriction to committed transactions is serializable

32 A history H is opaque if for every transaction T in H, there is a serializable history in committed(T,H) A new theory: Opacity (KG’06)

33 A new theory is nice but is it useful? Check with system people

34 Simple algorithm (DSTM) Careful read (validation) Killer write (ownership)

35 Visible vs Invisible Read (SXM; RSTM) Write is mega killer: to write an object, a transaction aborts any live one which has read or written the object Visible but not so careful read: when a transaction reads an object, it says so

36 Conjecture Either the read has to be visible or has to be careful Wrong

37 Giving up Progress (TL2) To write an object, a transaction acquires it and writes its timestamp To read an object, the transaction aborts itself if the object was written by a transaction with a higher timestamp

38 Theorem (GK’06) Visible read Vs Validation Vs (solo) Progress

39 The theorem does not hold for classical atomicity i.e., the theorem does not hold for database transactions

40 Solo progress cannot be ensured with disjoint access parallelism Solo progress cannot be ensured with transparent reads More theorems (GK’07)

41 Many more issues Progress? Real-time? Performance? Hardware support? Linguistic support?

42 With solo progress, some transactions might never commit Can we ensure that all transactions eventually commit? Progress

43 Theorem (GKK06): Solo progress and eventual global progress are incompatible When exactly can we ensure eventual global progress (resp. solo progress)?

44 If a transaction T wants to write an object O owned by another transaction, it calls a contention manager Various contention management strategies are possible Progress/Real-Time

45 System Perspective Scherer and Scott [CSJP 04] Exponential backoff “Karma” Transaction with most work accomplished wins Various priority inheritance schemes … Some work well, but … Can’t prove anything!

46 Greedy Contention Manager (GHP’05) State Priority (based on start time) Waiting flag (set while waiting) Wait if other has Higher priority AND not waiting Abort other if lower priority OR waiting

47 Preliminary Result Compare time to complete transaction schedule for Ideal off-line scheduler Knows transactions, conflicts, and start times in advance Greedy contention manager Does not know anything …

48 Competitive Ratio Let s be the number of objects accessed by all transactions Compare time to commit all transactions Greedy is O(s)-competitive with the off-line adversary GHP’05 O(s 2 ) AEST’06 O(s)

49 Many more issues Progress? Real-time? Performance? Hardware support? Linguistic support?

50 Performance How to evaluate transactional memory implementations? So far, mainly micro-benchmarks (linked lists, red-black trees)

51 Benchmarks STMBench7 (GKV’06) Dividing STMs by zero

52 http://www.cs.wisc.edu/trans- memory/biblio/index.html Sun, Intel, IBM, EU (VELOX) ISCA, OOPSLA, PODC, DISC, POPL, PPoPP, Transact What about SRDS? The Topic is VERY HOT

53 Transactions are conquering the parallel programming world They look simple and familiar and thus make the programmer happy Their implementation is in fact very tricky and that should make YOU happy The one slide to remember

54

55

56

57

58 Real-time T1: y := x; commit T2: x := x+1; commit T3: y := y+1; commit

59 Real-time X Y commit T1 (read(x)) T1 (write(y)) T2 (read-write(x)) commit T2 (read-write(y))

60 Recoverability is not enough commit T1 (read(x)) T1 (write(y)) T2 (read-write(x)) commit T2 (read-write(y))

61 User 1User 2 Transaction Server Classical database transactions Database (disk)

62 User 1User 2 Transaction server + database In-memory transactions Fast processor

63 Thread 4Thread 3 Thread 2 Processor 3Processor 2Processor 1 Transactional language: shared memory Thread 1 Shared memory transactions


Download ppt "Transactions are back But are they the same? R. Guerraoui, EPFL."

Similar presentations


Ads by Google