4/15/23, 9:05 PM
Project 3
4/19/2023
Attempt 1
PROGRESS
☐ INext up. Submit Assignment
Unlimited Attempts Allowed
4/10/2023 to 4/24/2023
Project 3
100 Possible Points
Add Comment
✓ Details
Two students can form a team and turn in one submission
Please add the following statement at the beginning of your report. I have neither given nor received unauthorized assistance on this
work
Sign:
Date:
Project Description
Implement a fault-tolerant 2-phase distributed commit (2PC) protocol and use controlled and randomly injected failures to study how
the 2PC protocol handles node crashes. Assume one transaction coordinator (TC) and at least two participants in the 2PC protocol.
Similar to the previous projects, we use multiple processes to emulate multiple nodes. Each node (both the TC and the participants)
devises a time-out mechanism when no response is received and transits to either the abort or commit state. For simplicity, you can
assume that only one node fails in the controlled test. Evaluate different possibilities of failures:
TC failure (20 points):
If the coordinator fails before sending the "prepare" message, nodes will not receive the "prepare" message until the time-out and will
abort. So, they will respond "no" to the "prepare" message after the coordinator comes back up and sends the "prepare" message.
https://uta.instructure.com/courses/132703/assignments/1423521
Submit Assignment
1/3 4/15/23, 9:05 PM
Node failure (20 points):
Project 3
If the transaction coordinator does not receive "yes" from a node, it will abort the transaction.
TC failure (20 points):
TC needs to store the transaction information on disk before sending the "commit" message to the nodes. If the TC fails after sending
one "commit" message to the nodes, it can't abort. When it comes back up it will send the "commit" message to the nodes that it
didn't send the "commit" message to.
Node failure (20 points):
A node needs to store the transaction information before replying "yes" to the TC. If it fails (time-out) after replying "yes"; after it comes
back up, it will fetch the commit information from the TC for that particular transaction.
To emulate a failure, you can impose a much longer delay at a failed node than the time-out period used by other active nodes. Node
prints their states(commit/abort) before termination.
Deliverables
The deliverables include the source code of the programs, a README file (10 points) containing instructions on how to compile and run
your programs, and a report (10 points) that briefly describes how you implemented the programs, what you have learned, and what
issues you encountered. Put all the required documents into a zipped folder. Make sure you clearly list your names and student IDs in
the report.
Choose a submission type
8
Upload
Studio
More
https://uta.instructure.com/courses/132703/assignments/1423521
Submit Assignment
2/3 4/15/23, 9:05 PM
Project 3
( Webcam Photo
https://uta.instructure.com/courses/132703/assignments/1423521
Canvas Files
or
Choose a file to upload
Submit Assignment
3/3