Expand description
The current types used to represent catalog data stored on disk. These objects generally fall into two categories.
The key-value objects are a one-to-one mapping of the protobuf objects used to save catalog
data durably. They can be converted to and from protobuf via the mz_proto::RustType
trait.
These objects should not be exposed anywhere outside the crate::durable
module.
The other type of objects combine the information from keys and values into a single struct,
but are still a direct representation of the data stored on disk. They can be converted to and
from the key-value objects via the DurableType
trait. These objects are used to pass
information to other modules in this crate and other catalog related code.
All non-catalog code should interact with the objects in crate::memory::objects
and never
directly interact with the objects in this module.
As an example, DatabaseKey
and DatabaseValue
are key-value objects, while Database
is the non-key-value counterpart.
Modules§
- serialization
- This module is responsible for serializing catalog objects into Protobuf.
- state_
update 🔒 - This module contains various representations of a single catalog update and the logic necessary for converting between representations.
Structs§
- Audit
Log - Audit
LogKey - Cluster
- Cluster
Config - Cluster
Introspection Source Index Key - Cluster
Introspection Source Index Value - Cluster
Key - Cluster
Replica - Cluster
Replica Key - Cluster
Replica Value - Cluster
Value - Cluster
Variant Managed - Comment
- Comment
Key - Comment
Value - Config
- Config
Key - Config
Value - Database
- Database
Key - Database
Value - Default
Privilege - Default
Privileges Key - Default
Privileges Value - Fence
Token - Token used to fence out other processes.
- GidMapping
Key - GidMapping
Value - IdAlloc
- IdAlloc
Key - IdAlloc
Value - Introspection
Source Index - Introspection
Source Index Catalog Item Id - A newtype wrapper for
CatalogItemId
that is only for the “introspection source index” namespace. - Introspection
Source Index Global Id - A newtype wrapper for
GlobalId
that is only for the “introspection source index” namespace. - Item
- ItemKey
- Item
Value - Network
Policy - Network
Policy Key - Network
Policy Value - Replica
Config - Role
- Role
Auth - Role
Auth Key - Role
Auth Value - RoleKey
- Role
Value - Schema
- Schema
Key - Schema
Value - Server
Configuration Key - Server
Configuration Value - Setting
- Setting
Key - Setting
Value - Snapshot
- A snapshot of the current on-disk state.
- Source
Reference - Source
References - Source
References Key - Source
References Value - Storage
Collection Metadata - Storage
Collection Metadata Key - Storage
Collection Metadata Value - This value is stored transparently, however, it should only ever be manipulated by the storage controller.
- System
Catalog Item Id - A newtype wrapper for
CatalogItemId
that is only for the “system” namespace. - System
Configuration - System
Global Id - A newtype wrapper for
GlobalId
that is only for the “system” namespace. - System
Object Description - System
Object Mapping - Functions can share the same name as any other catalog item type within a given schema. For example, a function can have the same name as a type, e.g. ‘date’. As such, system objects are keyed in the catalog storage by the tuple (schema_name, object_type, object_name), which is guaranteed to be unique.
- System
Object Unique Identifier - System
Privileges Key - System
Privileges Value - TxnWal
Shard Value - This value is stored transparently, however, it should only ever be manipulated by the storage controller.
- Unfinalized
Shard - Unfinalized
Shard Key - This value is stored transparently, however, it should only ever be manipulated by the storage controller.
Enums§
Traits§
- Durable
Type - A trait for representing
Self
as a key-value pair of type(Key, Value)
for the purpose of storing this value durably.