Start Again
Fahd Bahoo, February 16, 2017 - 7:28 am UTC
"and then you can all start again" what do you mean by this? what does stop while commiting ?
February 17, 2017 - 12:40 am UTC
Changes to data can be (loosely) thought of a "fire and forget". By that, I mean I can make a change to a block (which is done in cache), and I move on - I dont need to wait (or even care) that this change is not reflected on disk yet.
A commit is different - I cant fire and forget. When I commit, I cannot proceed until I get a signal back telling me that it's complete - so I wait.
Moreover, when I commit, I'm not just impacting myself, because I'm now utilizing a common resource (redo log buffer, and lgwr). Each version of the database improves the capacity for sessions to concurrently access these resources whilst commits occur, but there is still an impact because you need serialization structures (latches) to protect the consistency of these common resources.