My Research

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:

  1. Play with the feature using public blogs, demos, and examples.
  2. Apply what I know about how the feature could be developed, from an algorithmic perspective, to how Oracle may have implemented it.
  3. Write personal code (My Projects) to test my knowledge.
  4. 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