[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: Transactions and Undos. Novel

Status
Not open for further replies.
G

George Potemkin

Guest
> 1) the ratio of bi record reads and bi record writes during undo can vary quite a bit and is complicated, depending on the operation being undone and what happened when it was originally performed. consider creating a record. when that happens, we allocate space from the rm chain. We need to estimate an undo time of the large transactions. They will often create a few records in the same blocks (about RPB). Hence a block will be removed from RM chain only once per many RMCR notes. While creating a record Progress will also create its index keys – most likely for more than one index. In the example above dbkey 342214129 was split when the update counter was 14398, in other words the index split happened after the thousands of CXINS notes. Yes, there are the extra notes that are generated apart of the “mainstream” notes (RMCR and CXINS notes in case of creating the bunch of records) and it’s not possible to predict those extra notes but the events when they are generated are relatively rare. > 3) i suppose you could make a rough estimate of projected transaction undo time based on the number of notes the transaction generated during forward processing if you had enough sample history for the specific system and application but it would be muchly affected by what the other transactions were doing during the rollback. I got the "Status: Active Transactions" screens from the customer: 9 different branches; 18 separate databases per branch; 4 days of monitoring 30,644 screens in total Then I selected the transactions in BEGIN status and with non-zero BI RReads. Like the following one: Usr:Ten Name Domain Type Login time Tx start time Trans id BI RReads BI RWrites Trans State 4516 XXXXXXXX -4 REMC/ABL 02/27/19 13:28 - 819303242 3748 9246 Begin FWD As I wrote in the first post the values of RReads/RWrites are left by previous transaction of the same user. I got 4192 such transactions. 1021 of them were rather large (RWrites ge 100). Ratio of RWrites to RReads: RReads RWrites Writes /Reads 3748 9246 2.47 1888 4917 2.60 1934 4383 2.27 1660 4331 2.61 1490 4014 2.69 1654 3770 2.28 ... 40 104 2.55 41 102 2.44 Statistics for the ratio: Min: 2.06 Max: 38.36 Average 2.48 The exceptions seem to be an undo of sub-transactions: RReads RWrites Reads/Writes 25 961 38.36 57 576 10.07 18 523 28.94 31 293 9.39 So I would use the following rules to estimate a transaction undo time: Note reads during UNDO = Note writes during FWD and UNDO / 2.5 Note reads during UNDO = Note writes during FWD As result: Note writes during UNDO = 1.5 * Note writes during FWD I don’t need an accurate estimation of transaction undo time. 50% would be enough. Anyways we can’t do anything with undo but only wait.

Continue reading...
 
Status
Not open for further replies.
Top