what is ITL( Interested Transaction list)
来源:互联网 发布:matlab画数组 编辑:程序博客网 时间:2024/06/12 00:42
Segment Transaction Slot Internals
Interested Transaction List (ITL) Waits Demystified
What is ITL?
Ever wondered how Oracle locks rows on behalf of transactions? In some RDBMS vendor implementations, a lock manager maintains information on which row is locked by which transaction. This works great in theory, but soon the lock manager becomes a single point of contention, as each transaction must wait to get a lock from the manager and then wait again to release the lock. This severely limits the scalability of the applications. In fact, application developers of some RDBMS products despise holding locks for a long time, and often resort to a full table lock when all that's needed is to get a few rows locked. This creates further waits, and consequently, scalability suffers.
So how is that different in Oracle? For starters, there is no lock manager. When a row is locked by a transaction, that information is placed in the block header where the row is located. When another transaction wishes to acquire the lock on the same row, it has to travel to the block containing the row anyway, and upon reaching the block, it can easily tell that the row is locked from the block header. There is no need to queue up for some single resource like a lock manager. This makes applications immensely scalable.
So, what portion of the block header contains information on locking? It is a simple data structure called "Interested
Interested Transaction List (ITL) Waits Demystified
Transaction List" (ITL), a linked list data structure that maintains information on transaction address and rowid. ITL contains several slots or place holders for transactions. When a row in the block is locked for the first time, the transaction places a lock in one of the slots with the rowid of the row that is locked. In other words, the transaction makes it known that it is interested in the row (hence the name "Interested Transaction List"). When the same transaction or another one locks another row, the information is stored in another slot, and so on. After a transaction ends via commit or a rollback, the locks are released and so are the slots that were used to mark the blocks, and these newly freed slots are reused for the other transactions. So there is in fact a queue, but it's at a block level, not at the entire database level or even at a segment level.
The next logical question that comes up is, how many slots are typically available? During the table creation, the initrans parameter defines how many slots are initially created in the ITL. When the transactions exhaust all the available slots and a new transaction comes in to lock a row, the ITL grows to create another slot. The ITL can grow up to the number defined by the maxtrans parameter of the table, provided there is space in the block. Nevertheless, if there is no more room in the block, even if the maxtrans is high enough, the ITL cannot grow.
What Is an ITL Wait
Interested Transaction List (ITL) Waits Demystified
What is ITL?
Ever wondered how Oracle locks rows on behalf of transactions? In some RDBMS vendor implementations, a lock manager maintains information on which row is locked by which transaction. This works great in theory, but soon the lock manager becomes a single point of contention, as each transaction must wait to get a lock from the manager and then wait again to release the lock. This severely limits the scalability of the applications. In fact, application developers of some RDBMS products despise holding locks for a long time, and often resort to a full table lock when all that's needed is to get a few rows locked. This creates further waits, and consequently, scalability suffers.
So how is that different in Oracle? For starters, there is no lock manager. When a row is locked by a transaction, that information is placed in the block header where the row is located. When another transaction wishes to acquire the lock on the same row, it has to travel to the block containing the row anyway, and upon reaching the block, it can easily tell that the row is locked from the block header. There is no need to queue up for some single resource like a lock manager. This makes applications immensely scalable.
So, what portion of the block header contains information on locking? It is a simple data structure called "Interested
Interested Transaction List (ITL) Waits Demystified
Transaction List" (ITL), a linked list data structure that maintains information on transaction address and rowid. ITL contains several slots or place holders for transactions. When a row in the block is locked for the first time, the transaction places a lock in one of the slots with the rowid of the row that is locked. In other words, the transaction makes it known that it is interested in the row (hence the name "Interested Transaction List"). When the same transaction or another one locks another row, the information is stored in another slot, and so on. After a transaction ends via commit or a rollback, the locks are released and so are the slots that were used to mark the blocks, and these newly freed slots are reused for the other transactions. So there is in fact a queue, but it's at a block level, not at the entire database level or even at a segment level.
The next logical question that comes up is, how many slots are typically available? During the table creation, the initrans parameter defines how many slots are initially created in the ITL. When the transactions exhaust all the available slots and a new transaction comes in to lock a row, the ITL grows to create another slot. The ITL can grow up to the number defined by the maxtrans parameter of the table, provided there is space in the block. Nevertheless, if there is no more room in the block, even if the maxtrans is high enough, the ITL cannot grow.
What Is an ITL Wait
- what is ITL( Interested Transaction list)
- ITL(Interested Transaction List)理解
- Orace ITL(Interested Transaction List) 说明
- Orace ITL(Interested Transaction List) 说明
- Orace ITL(Interested Transaction List) 说明
- 转 -- Oracle Interested Transaction List (ITL) Waits
- 什么是数据库事务(what is database transaction)?
- dml/transaction/block scn/itl scn
- ITL
- ITL
- What is what ?!
- what is what?
- Interested Papers
- What is portal? & What is portlet?
- what is game? what is good game?
- What Is 'SSL'? What Is 'SSH'?
- WHAT IS C#
- What is System Administration?
- Crashing Balloon
- Anagrams by Stack
- A + B Problem
- Base64 Supermarket - 暈
- PCTFREE, PCTUSED, INITRANS, MAXTRANX, FREELIST PARAMETERS
- what is ITL( Interested Transaction list)
- 很想写以下这本书(C#2.0学习心得),就是没有时间
- (N1744)给C++ 0x标准的大整数库提案 粗略翻译稿
- (N1744)Big Integer Library Proposal for C++0x 粗略翻译稿 双语对照(有什么不妥,请参看原文)
- 欧洲之行-德国杜塞尔多夫
- PYRAMY
- RANKING ACTIONS
- 遇到hi.a.shifen.com(百度别名)
- 我使用AJAX技术制作的动态刷新网页和部分源代码