linearizability cap announcements
play

Linearizability & CAP Announcements No hours this week. - PowerPoint PPT Presentation

Linearizability & CAP Announcements No hours this week. Announcements No hours this week. Sorry am traveling starting tomorrow. Announcements No hours this week. Sorry am traveling starting tomorrow. Lab 1 goes out


  1. Is Linearizable? A: q.enq(x) A: q.enq(x) A: q.enq(x) A: q.OK() A: q.OK() A: q.OK() B: q.enq(y) B: q.enq(y) B: q.enq(y) B: q.OK() B: q.OK() B: q.OK() A: q.enq(z) A: q.enq(z) A: q.enq(z) B: q.deq() Yes No B: q.deq() B: q.deq() B: q.OK(x) B: q.OK(y) B: q.OK(x) A: q.OK() A: q.OK() A: q.OK() A: q.deq() A: q.deq() A: q.deq() B: q.deq() B: q.deq() B: q.OK(y) B: q.OK(x) A: q.OK(z) A: q.OK(z)

  2. Is Linearizable? A: q.enq(x) A: q.enq(x) A: q.enq(x) A: q.OK() A: q.OK() A: q.OK() B: q.enq(y) B: q.enq(y) B: q.enq(y) B: q.OK() B: q.OK() B: q.OK() A: q.enq(z) A: q.enq(z) A: q.enq(z) B: q.deq() Yes No B: q.deq() Yes B: q.deq() B: q.OK(x) B: q.OK(y) B: q.OK(x) A: q.OK() A: q.OK() A: q.OK() A: q.deq() A: q.deq() A: q.deq() B: q.deq() B: q.deq() B: q.OK(y) B: q.OK(x) A: q.OK(z) A: q.OK(z)

  3. Sequential Consistency • Operations in a single process happen in the same order. • Globally operations happen in some sequential order across processes. inv(op1) res(op1) inv(op2) res(op2) Process 1 Process 2 inv(op3) res(op3) inv(op4) res(op4)

  4. Sequential Consistency inv(op1) res(op1) inv(op2) res(op2) Process 1 Process 2 inv(op3) res(op3) inv(op4) res(op4)

  5. Sequential Consistency inv(op1) res(op1) inv(op2) res(op2) Process 1 Process 2 inv(op3) res(op3) inv(op4) res(op4) inv(op1) res(op1) inv(op3) res(op3) inv(op2) res(op2) inv(op4) res(op4)

  6. Sequential Consistency inv(op1) res(op1) inv(op2) res(op2) Process 1 Process 2 inv(op3) res(op3) inv(op4) res(op4) inv(op1) res(op1) inv(op3) res(op3) inv(op2) res(op2) inv(op4) res(op4) inv(op1) res(op1) inv(op2) res(op2) inv(op3) res(op3) inv(op4) res(op4)

  7. Sequential Consistency inv(op1) res(op1) inv(op2) res(op2) Process 1 Process 2 inv(op3) res(op3) inv(op4) res(op4) inv(op1) res(op1) inv(op3) res(op3) inv(op2) res(op2) inv(op4) res(op4) inv(op1) res(op1) inv(op2) res(op2) inv(op3) res(op3) inv(op4) res(op4) inv(op1) res(op1) inv(op4) res(op4) inv(op2) res(op2) inv(op3) res(op3)

  8. Sequential Consistency

  9. Sequential Consistency • Not real time. Why? • Not local. Why?

  10. Sequential Consistency A: p.enq(x) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  11. Sequential Consistency A: p.enq(x) p.enq(x) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  12. Sequential Consistency X A: p.enq(x) p.enq(x) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  13. Sequential Consistency X A: p.enq(x) p.enq(x) p.OK( ) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  14. Sequential Consistency X q.enq(Y) A: p.enq(x) p.enq(x) p.OK( ) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  15. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) p.OK( ) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  16. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) q.OK( ) p.OK( ) A: p.OK() B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  17. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) q.OK( ) p.OK( ) A: p.OK() q.enq(X) B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  18. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) p.OK( ) A: p.OK() q.enq(X) B: q.enq(y) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  19. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) p.OK( ) A: p.OK() q.enq(X) B: q.enq(y) q.OK( ) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  20. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) q.OK( ) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  21. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X Y q.OK( ) p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) q.OK( ) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  22. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X Y q.OK( ) p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() q.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  23. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X Y q.OK( ) p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() q.deq() p.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  24. Sequential Consistency X Y q.enq(Y) A: p.enq(x) p.enq(x) X Y q.OK( ) p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() q.deq() p.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  25. Sequential Consistency A: p.enq(x) A: p.OK() B: q.enq(y) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  26. Sequential Consistency q.enq(Y) A: p.enq(x) A: p.OK() B: q.enq(y) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  27. Sequential Consistency Y q.enq(Y) A: p.enq(x) A: p.OK() B: q.enq(y) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  28. Sequential Consistency Y q.enq(Y) A: p.enq(x) q.OK( ) A: p.OK() B: q.enq(y) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  29. Sequential Consistency Y q.enq(Y) A: p.enq(x) q.OK( ) A: p.OK() p.enq(Y) B: q.enq(y) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  30. Sequential Consistency Y Y q.enq(Y) A: p.enq(x) q.OK( ) A: p.OK() p.enq(Y) B: q.enq(y) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  31. Sequential Consistency Y Y q.enq(Y) A: p.enq(x) q.OK( ) A: p.OK() p.enq(Y) B: q.enq(y) p.OK( ) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  32. Sequential Consistency Y Y p.enq(x) q.enq(Y) A: p.enq(x) q.OK( ) A: p.OK() p.enq(Y) B: q.enq(y) p.OK( ) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  33. Sequential Consistency Y Y p.enq(x) q.enq(Y) A: p.enq(x) q.OK( ) X A: p.OK() p.enq(Y) B: q.enq(y) p.OK( ) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  34. Sequential Consistency Y Y q.enq(Y) A: p.enq(x) p.enq(x) q.OK( ) X p.OK( ) A: p.OK() p.enq(Y) B: q.enq(y) p.OK( ) B: q.OK() A: q.enq(x) p q A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  35. Sequential Consistency Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) X p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() p.deq() A: q.enq(x) p q p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  36. Sequential Consistency Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) X p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() q.deq() p.deq() A: q.enq(x) p q p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  37. Sequential Consistency Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) X p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() q.deq() p.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  38. Sequential Consistency Y q.enq(Y) A: p.enq(x) p.enq(x) X q.OK( ) X p.OK( ) A: p.OK() p.enq(Y) q.enq(X) B: q.enq(y) p.OK( ) q.OK( ) B: q.OK() q.deq() p.deq() A: q.enq(x) p q q.ok(X) p.ok(Y) A: q.OK() B: p.enq(y) B: p.OK() A: p.deq() A: p.OK(y) Process A Process B B: q.deq() B: q.OK(x)

  39. Serializability and Strict Serializability • Common in databases, will deal with in a few classes.

  40. Serializability and Strict Serializability • Common in databases, will deal with in a few classes. • Basic extension: consider multiple operations at a time rather than one operation.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend