Lines Matching refs:commit

48 This relogging is also used to implement long-running, multiple-commit
68 asynchronous. That is, they don't commit to disk until either a log buffer is
170 the delayed logging tracking lock to commit the transaction. However, the
180 transaction commit while the item is locked in the transaction. Instead of
188 rewriting can all be done while the object is locked during transaction commit,
272 in transaction commit order, so when an object is relogged it is removed from
306 formatted log items and a commit record at the tail. From a recovery
317 the transaction commit record, but tracking this requires us to have a
332 workloads, just like the existing transaction commit code does. This, however,
333 requires that we strictly order the commit records in the log so that
338 into the new CIL, then checkpoint transaction commit code cannot use log items
391 commit the checkpoint.
394 attached to the log buffer that the commit record was written to along with a
416 committed transactions with the log sequence number of the transaction commit.
423 To do this, transactions need to record the LSN of the commit record of the
438 Then, instead of assigning a log buffer LSN to the transaction commit LSN
439 during the commit, we can assign the current checkpoint sequence. This allows
448 checkpoint commit completes, it is removed from the committing list. Because
449 the checkpoint context records the LSN of the commit record for the checkpoint,
450 we can also wait on the log buffer that contains the commit record, thereby
472 transactions to remain untouched (i.e. commit an asynchronous transaction, then
482 amount of log space required as we add items to the commit item list, but we
527 The problem with this is that it can lead to deadlocks as we may need to commit
537 result of a transaction commit inserting a new memory buffer into the CIL, then
555 checkpoint commit to complete. This background push is checked and executed by
556 transaction commit code.
569 Currently log items are pinned during transaction commit while the items are
578 as there is a 1:1 relationship with transaction commit and log item completion.
580 For delayed logging, however, we have an asymmetric transaction commit to
582 through the commit process without a corresponding completion being registered.
583 That is, we now have a many-to-one relationship between transaction commit and
585 log items becomes unbalanced if we retain the "pin on transaction commit, unpin
592 the CIL during a transaction commit, then we do not pin it again. Because there
599 CIL commit/flush lock. If we pin the object outside this lock, we cannot
604 (or not pinning, as the case may be). Hence we must hold the CIL flush/commit
610 commits must scale to many concurrent commits. The current transaction commit
615 As a result, the delayed logging transaction commit code needs to be designed
621 3. Checkpoint commit ordering
623 Looking at the transaction commit and CIL flushing interactions, it is clear
625 the number of concurrent transactions that can be trying to commit at once is
630 The amount of time a transaction commit needs to hold out a flush is a
636 the transaction commit side.
638 Because of the number of potential transaction commit side holders, the lock
645 transaction commit or CIL flush side sleeps with the lock held.
648 compared to transaction commit for asynchronous transaction workloads - only
650 transaction commit concurrency due to cache line bouncing of the lock on the
653 The second serialisation point is on the transaction commit side where items
656 commit/flush exclusion. It also needs to be an exclusive lock but it is only
661 The final serialisation point is the checkpoint commit record ordering code
662 that is run as part of the checkpoint commit and log force sequencing. The code
665 before writing the commit record. This loop walks the list of committing
666 checkpoints and needs to block waiting for checkpoints to complete their commit
672 events they are waiting for are different. The checkpoint commit record
673 sequencing needs to wait until checkpoint contexts contain a commit LSN
674 (obtained through completion of a commit record write) while log force
699 6. Transaction commit
702 Write commit LSN into transaction
712 Write commit LSN into log item
744 6. Transaction commit
760 sequence commit records
769 Write commit LSN into log item