Ingres 6.4 DBMS Architecture

Download Report

Transcript Ingres 6.4 DBMS Architecture

Ingres Version 6.4
An Overview of the
Architecture
Presented by
Quest Software
Ingres 6.4 - An Overview
•
•
•
•
Client / Server Architecture
Components
Locking & I/O
Server Internals
– Query Processing
Client - Server Architecture
Client - Server Architecture
•
•
•
•
•
User Image
Name Server
DBMS Server
Archiver
Recovery Process
Name Server
• isql dbname
– image activated
– call Ingres General Communication Facility
(GCF) routines
– opens connection to Name Server
Name Server
Name Server
• Uses “GCA” Protocol
• Receives connection request from
User Image
• Provides mailbox address to User
• User Image Connects to DBMS
• What about Ingres / Net ?
Name Server - Ingres /Net
DBMS Server
•
•
•
•
•
The Ingres “engine”
Accepts incoming SQL
Processes it
Executes I/O on behalf of Users
Multi - threaded
Components
Logging and Recovery
• DBMS Server
– writes to memory log buffers
• Recovery Process
– Reads from memory log buffers
– Writes to Physical Log File
– Returns “ok to complete” to Server
• DBMS Server
– writes to the database
Logging and Recovery (cont)
Logging and Recovery (cont)
• “Circular” Log File
• All transactions which update the
database are logged
• Writes “Before Image” to log file
• “Transaction Complete” stamp after
complete
• Write to the log file BEFORE the
database
Group Commit / Fast Commit
• Group Commit
– Sever writes query “A” to log buffers
– Sever writes query “B” to same buffers
– All “commits” are written together
• Fast Commit
– Server writes “forces” directly to Log File
– then writes to the database (Cached)
– Write-Behind threads write to the database
Archiving
• Log File has periodic “Consistancy
Points”
• Archiver reclaims space from the Log
File
• Only extracts COMMITED transactions
from the Log File
• Writes transactions to the Journals
• Moves the End Of File marker forward
Archiving (cont)
• If there are Uncommitted Transactions
in the Log File
– Archiver Process cannot extract them
– Cannot move the EOF marker
– Log File Fills Up
– Chaos !
Components
Locking
• Initiated by Server Process
• Types
– Exclusive / Shared
• Levels
– Page / Table / Database
• VMS Cluster
– II_CSP talks to clusterwide lock manager
Locking (cont)
• Locking Escallation can Occur when
– MAXLOCKS exceeded
– Locks Per Transaction exceeded
– Ingres installation-wide resources low
• “Blocking Locks”
– Cause Deadlock checking to start
I/O Handling
• Unix has Synchronous I/O
– call iislave processes to offload I/O
requests
– II_NUM_SLAVES
– how many ?
• VMS has Asynchronous I/O
Server Internals
Query Processing - Parsing
• Query arrives in Server Control Facility
(SCF)
• Store Text in Query Storage Facility
(QSF)
• Parse the Query (PSF)
• Check the Relational Descriptions
(RDF)
• Check Query Modifications due to
Permits, Views etc. (QRYMOD)
Query Processing - Planning
• Create a Parsed Query Tree in QSF
• Optimiser (OPF) uses Query Tree &
Statistics to develop Query Plan
• Store the Query Plan in QSF
• Query Execution Facility validates table
descriptions (QEF)
Query Processing - Execution
• Access the actual files using the Data
Manipulation Facility (DMF)
• DMF returns data to QEF
• QEF returns data to SCF
• SCF returns data to GCA
communications
• Eventually ends up at the user’s front
end program !
Conclusions
• Ingres DBMS is complex
• Multiple Components
• Handle with care !!!