Re: ITL mechanism

From: Mladen Gogala <no_at_email.here.invalid>
Date: Mon, 15 Aug 2011 16:13:20 +0000 (UTC)
Message-ID: <pan.2011.08.15.16.13.20_at_email.here.invalid>



On Fri, 12 Aug 2011 17:54:47 -0700, vsevolod afanassiev wrote:

> Thanks, I got it:
> - There is one ITL engtry per transaction. - Every row has lock byte
> that points to ITL entry of transaction that locked this row.
> Simple. Should be in the Concepts manual.

The big advantage of this mechanism is that it doesn't maintain in memory queues so it's not limited by the memory size. Now, it's a moot point, but when you install Oracle 6.0.36 on a mVAXII with 16MB RAM (yeah, you read correctly, it's "M", not "G") memory is extremely precious. Also, locks were allocated using system service, from something called "nonpaged  memory pool", which was even smaller than 16MB. There were two solutions for the memory problems with locking. The first was not to use and to develop a different approach. That's what Oracle did. Sybase took a different approach which included lock escalation. In other words, under certain conditions, many locks on a table would convert into a single table level lock, thus dramatically lowering the memory consumption. Unfortunately, that approach also limits concurrency, which is a problem.

-- 
http://mgogala.byethost5.com
Received on Mon Aug 15 2011 - 11:13:20 CDT

Original text of this message