Skip to main content

Module catalog

Module catalog 

Source
Expand description

§SuperTable Catalog

This module defines the catalog abstraction for SuperTable. The catalog is responsible for:

  • Namespace management: Organizing tables into hierarchical namespaces
  • Table metadata tracking: Storing the location of current metadata files
  • Atomic commits: Ensuring ACID guarantees through compare-and-swap

§Catalog Implementations

SuperTable supports multiple catalog backends:

  • In-Memory: For testing and development
  • SQLite: For single-node deployments
  • PostgreSQL: For production multi-node deployments
  • REST: For integration with existing Iceberg REST catalogs

§Concurrency

All catalog implementations must support atomic compare-and-swap operations to enable optimistic concurrency control. This is typically achieved through:

  • Database transactions with row-level locking
  • Conditional writes (e.g., etags, version numbers)
  • Distributed consensus (e.g., Raft, Paxos)

Structs§

InMemoryCatalog
An in-memory catalog implementation for testing and development.
TableIdentifier
A table identifier consisting of a namespace and table name.

Enums§

CatalogError
Errors that can occur during catalog operations.

Traits§

Catalog
The main catalog trait for managing tables.

Type Aliases§

CatalogResult
Result type for catalog operations.
NamespaceProperties
Properties for a namespace.