DEV Community

Scale
Scale

Posted on

Database Storage Internals — Extents, External Tables, and Metadata Architecture in GBase

Databases like GBase 8s don’t just store data in simple rows. They use advanced storage structures such as extents, system catalogs, and external table definitions.

Understanding these internals helps explain performance, scalability, and data organization.

What Is an Extent?

An extent is a contiguous block of disk space allocated to a table.

In GBase, extent behavior is controlled using:

  • first_kilobytes
  • next_kilobytes

These define how much storage is allocated initially and how it grows.

Why Extents Matter

Extents help:

  • Reduce fragmentation
  • Improve sequential access speed
  • Optimize disk allocation

System Catalog Integration

Extent and storage metadata are tracked in system catalogs like:

  • SYSTABLES
  • SYSFRAGMENTS
  • SYSINDICES

For example:

  • fextsize → initial extent size
  • nextsize → growth extent size

This allows the database optimizer to estimate storage usage.

External Tables in GBase

External tables allow databases to query data stored outside the database engine.

The SYSEXTERNAL catalog stores:

  • File format type (delimited/fixed)
  • Field separators
  • Reject file configuration
  • Error handling limits

This enables integration with:

  • CSV files
  • Log data
  • Data lakes

How Everything Connects

Here’s how the architecture fits together:

  1. SYSTABLES → defines logical structure
  2. SYSFRAGMENTS → defines physical storage layout
  3. SYSEXTERNAL → defines external data bindings
  4. Extents → define disk allocation strategy

Together, they form a complete metadata-driven storage system.

Final Thoughts

Modern database systems are deeply metadata-driven. What looks like a simple table is actually backed by multiple layers of catalog intelligence and storage optimization.

Understanding extents and system catalogs gives you a clearer picture of how databases achieve:

  • Scalability
  • Performance
  • Flexibility

Top comments (0)