Overview
As a longtime database internals developer, I’ve worked on many different areas of database engine development. Given I’ve never worked on the Oracle Database, however, there are a few cool things it does that interest me. This is a summary of my academic research in those areas.
Research Methodology
From a problem-solving standpoint, there are only so many ways to skin a cat. As such, all vendors generally solve the same computational problems in a similar fashion. While I often have a hunch about how to solve something, I like to ensure I have a solid understanding before sharing any information with others. Accordingly, my process is as follows:
- Play with the feature using public blogs, demos, and examples.
- Apply what I know about how the feature could be developed, from an algorithmic perspective, to how Oracle may have implemented it.
- Write personal code (My Projects) to test my knowledge.
- Share my findings.
In terms of sharing my findings, I generally do that based on the following:
- Discuss general functionality/architecture in blogs/conferences.
- Provide open-source tools (My Tools) for things that are pretty simple to figure out, aren’t security-related, and which I don’t believe Oracle would consider trade secrets.
Storage Architecture
- Oracle Block Format
- Oracle OLTP Compression
- Oracle Hybrid Columnar Compression
- ASM Internals
Network Protocol
- Performance Optimization
- Transparent Network Substrate
- Two Task Common/Interface
Memory Architecture
- Shared Global Area
Data Access Components
- Precompiler Compilation Unit Data (CUD)
- Oracle Call Interface
- User Programmatic Interface
- SQLLIB Interface
Utility File Formats
- Oracle Messages Binary (MSB)
- Export File Format (DMP/EXP)
- Data Dump File Format