Oracle RDBMS Kernel 的代码分成多层次,如<Oracle8i Internal Services>一书所介绍的:
其中部分代码层的作用:
The cache layer (KC)
The cache layer manages the database buffer cache. It uses operating
system dependent facilities for data file I/O, provides concurrency control
facilities for local access to the cache buffers, and provides parallel cache
management (PCM) instance locking facilities for Oracle parallel server.
The other main responsibility of the cache layer is the control of redo
generation into the log buffer, and the writing of redo to the log files. The
cache layer also caches control file information.
- To read blocks.
- To update blocks in redo only mode.
The transaction layer (KT)
This layer is responsible for the allocation of transactions to rollback
segments, interested transaction list changes within data blocks, changes
to rollback segment blocks for undo generation, transaction control
facilities such as savepoints, and read consistency. The transaction layer is
also responsible for space management, both at the level of segment free
lists and at the level of tablespace extent allocation.
- To update blocks with undo.
- To check with the status of the transaction.
- To manage recursive transactions for nested space operations.
The recursive program interface (RPI)
The recursive program interface is used to populate the dictionary cache
from the data dictionary. Row cache recursive SQL statements are
executed in a separate call context, but are not parsed and optimized in the
compilation layer.
Row Cache Layer
- To read/update space dictionary information, where acutal updates happens by callbacks when row cache is flushed.
Recursive SQL
- To read/update dictionary information.
File Layer
- To create/drop/alter files in tablespace.
以上各代码层实现了Oracle Space Management 空间管理的主要功能。