Lines Matching refs:commit
51 This relogging is also used to implement long-running, multiple-commit
71 asynchronous. That is, they don't commit to disk until either a log buffer is
174 the delayed logging tracking lock to commit the transaction. However, the
184 transaction commit while the item is locked in the transaction. Instead of
192 rewriting can all be done while the object is locked during transaction commit,
277 in transaction commit order, so when an object is relogged it is removed from
312 formatted log items and a commit record at the tail. From a recovery
323 the transaction commit record, but tracking this requires us to have a
338 workloads, just like the existing transaction commit code does. This, however,
339 requires that we strictly order the commit records in the log so that
344 into the new CIL, then checkpoint transaction commit code cannot use log items
397 commit the checkpoint.
400 attached to the log buffer that the commit record was written to along with a
423 committed transactions with the log sequence number of the transaction commit.
430 To do this, transactions need to record the LSN of the commit record of the
445 Then, instead of assigning a log buffer LSN to the transaction commit LSN
446 during the commit, we can assign the current checkpoint sequence. This allows
455 checkpoint commit completes, it is removed from the committing list. Because
456 the checkpoint context records the LSN of the commit record for the checkpoint,
457 we can also wait on the log buffer that contains the commit record, thereby
479 transactions to remain untouched (i.e. commit an asynchronous transaction, then
490 amount of log space required as we add items to the commit item list, but we
535 The problem with this is that it can lead to deadlocks as we may need to commit
545 result of a transaction commit inserting a new memory buffer into the CIL, then
563 checkpoint commit to complete. This background push is checked and executed by
564 transaction commit code.
578 Currently log items are pinned during transaction commit while the items are
587 as there is a 1:1 relationship with transaction commit and log item completion.
589 For delayed logging, however, we have an asymmetric transaction commit to
591 through the commit process without a corresponding completion being registered.
592 That is, we now have a many-to-one relationship between transaction commit and
594 log items becomes unbalanced if we retain the "pin on transaction commit, unpin
601 the CIL during a transaction commit, then we do not pin it again. Because there
608 CIL commit/flush lock. If we pin the object outside this lock, we cannot
613 (or not pinning, as the case may be). Hence we must hold the CIL flush/commit
620 commits must scale to many concurrent commits. The current transaction commit
625 As a result, the delayed logging transaction commit code needs to be designed
631 3. Checkpoint commit ordering
633 Looking at the transaction commit and CIL flushing interactions, it is clear
635 the number of concurrent transactions that can be trying to commit at once is
640 The amount of time a transaction commit needs to hold out a flush is a
646 the transaction commit side.
648 Because of the number of potential transaction commit side holders, the lock
655 transaction commit or CIL flush side sleeps with the lock held.
658 compared to transaction commit for asynchronous transaction workloads - only
660 transaction commit concurrency due to cache line bouncing of the lock on the
663 The second serialisation point is on the transaction commit side where items
666 commit/flush exclusion. It also needs to be an exclusive lock but it is only
671 The final serialisation point is the checkpoint commit record ordering code
672 that is run as part of the checkpoint commit and log force sequencing. The code
675 before writing the commit record. This loop walks the list of committing
676 checkpoints and needs to block waiting for checkpoints to complete their commit
682 events they are waiting for are different. The checkpoint commit record
683 sequencing needs to wait until checkpoint contexts contain a commit LSN
684 (obtained through completion of a commit record write) while log force
710 6. Transaction commit
713 Write commit LSN into transaction
723 Write commit LSN into log item
755 6. Transaction commit
771 sequence commit records
780 Write commit LSN into log item