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§
- InMemory
Catalog - An in-memory catalog implementation for testing and development.
- Table
Identifier - A table identifier consisting of a namespace and table name.
Enums§
- Catalog
Error - Errors that can occur during catalog operations.
Traits§
- Catalog
- The main catalog trait for managing tables.
Type Aliases§
- Catalog
Result - Result type for catalog operations.
- Namespace
Properties - Properties for a namespace.