A deadlock occurs when a sequence of transactions is waiting for access to data that is being held by a lock in another transaction in the same cycling sequence, thus keeping each from completing as they wait upon each other to release their locks. Figure 16.18 does not express a deadlock as there is no cycle of transactions. However, given the addition of a request from transaction T28 for information locked by transaction T27, a cycle is introduced and thus a deadlock occurs as shown in figure 16.19 (Silberschatz, Korth, & Sudarshan, 2001). (Silberschatz, Korth, & Sudarshan, 2001, p.619) Now there is a deadlock caused by the cycle of T28, …show more content…
Information is needed to determine which of the transactions involved would be best to abort. Given information about each of the transactions, the ideal solution is to abort the ones that will result in the least additional work when aborted. Aspects to assess can include the volume of tasks that have already been performed and the volume of tasks that need to be performed to complete the transaction. Based on a chosen protocol the victim can be selected to be aborted and then resumed later. For this situation, I will assume that based on information about the status of the three involved transactions along with whatever protocol we have developed to select a victim has resulted in selecting T28 as the victim. It will resolve the deadlock by being aborted on its own allowing T26 and T27 to complete and commit, thus releasing their conflicting locks causing the