Consider a concurrency control manager by timestamps. Below are several sequences of events, including start events, where sti means that transaction Ti starts and coi means Ti commits. These sequences represent real time, and the timestamp-based scheduler will allocate timestamps to transactions in the order of their starts. In each case below, say what happens with the last request. You have to choose between one of the following four possible answers: 1. the request is accepted, 2. the request is ignored, 3. the transaction is delayed, 4. the transaction is rolled back. (a) st1; st2; st3; r1(A); w1(A); r2(A); The system will perform the following action for r2(A): [3. Will wait for 1 to commit. If 1 commits, 2 reads the new value, if it doesn't, it reads the old value.] (b) st1; st2; r2(A); co2; r1(A); w1(A) The system will perform the following action for w1(A): [4. Transaction 1 is rolled back. 2 is supposed to know of everything 1 did.] (c) st1; st2; st3; r1(A); w2(A); w3(A); r2(A); The system will perform the following action for r2(A): [4. 2 is not supposed to be able to read the writes of 3, since in a serializable schedule 3 occurs after 2.] (d) st1; st2; r1(A); r2(A); w1(B); w2(B); The system will perform the following action for w2(B): [1. Thomas write rule is applied. Does not matter if 1 commits or not.] (e) st1; st2; st3; r1(A); w3(A); co3; r2(B); w2(A) The system will perform the following action for w2(A): [2. Thomas write rule is applied. Does not matter if 2 aborts or not.]