Programming

Question #1 (1 point)

Note: ^ is the superscript operator and _ is the subscript operator. Hence, e_1^2 means an event 2 in process 1.

Consider 3 processes: P_1, P_2 and P_3. We have 5 events from P_1 (e_1^1 to e_1^5), 6 events from P_2 (e_2^1 to e_2^6), and 5 events from P_3 (e_3^1 to e_3^5). e_1^2 is a send event and its corresponding receive event is e_2^5. e_1^3 is a send event and its corresponding receive event is e_3^4. e_2^2 is a send event and its corresponding receive event is e_3^3. e_3^1 is a send event and its corresponding receive event is e_1^4. e_3^2 is a send event and its corresponding receive event is e_2^3. e_3^5 is a send event and its corresponding receive event is e_2^6.

Consider a cut C1 such that e_1^3, e_1^4, e_1^5, e_2^4, e_2^5, e_2^6 and e_3^5 are in the future of C1, and all other events are in the past of C1. Which of the following statements is true?

  1. C1 is a consistent cut.
  2. C1 is an inconsistent cut.
  3. C1 is not a cut.

Question #2 (1 point)

For the execution history in question 1, list all the earliest events at each of the processes that e_2^4 causally affects.

Question #3 (1 point)

For the execution history in question 1, list all the events in Max_Past(e_2^6).

Question #4 (1 point)

For the execution history in question 1, what is the scalar clock timestamp for e_2^6?

Question #5 (1 point)

For the execution history in question 1, what is the vector clock timestamp for e_2^6?

Question #6 (1 point)

For the execution history in question 1, what is the vector clock timestamp for e_2^6, when implemented using differential vector clocks?

Question #7 (1 point)

For the execution history in question 1, what is the vector clock timestamp for e_2^6 during execution, when implemented using direct dependency technique?

Question #8 (1 point)

Consider an execution history with 5 processes. One of the events ‘e’ has vector clock timestamp [1, 3, 1, 8, 4]. Which of the following statements best describes the situation?

  1. Exactly 17 events causally precede e.
  2. At most 16 events causally precede e.
  3. At most 17 events causally precede e.
  4. At least 17 events causally precede e.
  5. None of the other options is true.
  6. Exactly 16 events causally precede e.
  7. At least 16 events causally precede e.

Question #9 (1 point)

For the execution history in question 1, what is the timestamp sent by the differential vector clock along with the message from e_3^5 to e_2^6?

Question #10 (1 point)

For the execution history in question 1, what is the timestamp sent by the direct dependency technique along with the message from e_3^5 to e_2^6?

Question #11 (1 point)

In 1 sentence, explain why strong consistency is an important property for developing logical clocks