Search for question
Question

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