mito2

Module docs

Source
Expand description

§Mito developer document

§Engine

Engine hierarchy:

classDiagram class MitoEngine { -WorkerGroup workers } class MitoRegion { +VersionControlRef version_control -RegionId region_id -String manifest_dir -AtomicI64 last_flush_millis +region_id() RegionId +scan() ChunkReaderImpl } class RegionMap { -HashMap<RegionId, MitoRegionRef> regions } class ChunkReaderImpl class WorkerGroup { -Vec~RegionWorker~ workers } class RegionWorker { -RegionMap regions -Sender sender -JoinHandle handle } class RegionWorkerThread~LogStore~ { -RegionMap regions -Receiver receiver -Wal~LogStore~ wal -ObjectStore object_store -MemtableBuilderRef memtable_builder -FlushSchedulerRef~LogStore~ flush_scheduler -FlushStrategy flush_strategy -CompactionSchedulerRef~LogStore~ compaction_scheduler -FilePurgerRef file_purger } class Wal~LogStore~ { -LogStore log_store } class MitoConfig MitoEngine o-- MitoConfig MitoEngine o-- MitoRegion MitoEngine o-- WorkerGroup MitoRegion o-- VersionControl MitoRegion -- ChunkReaderImpl WorkerGroup o-- RegionWorker RegionWorker o-- RegionMap RegionWorker -- RegionWorkerThread~LogStore~ RegionWorkerThread~LogStore~ o-- RegionMap RegionWorkerThread~LogStore~ o-- Wal~LogStore~

§Metadata

Metadata hierarchy:

classDiagram class VersionControl { -CowCell~Version~ version -AtomicU64 committed_sequence } class Version { -RegionMetadataRef metadata -MemtableVersionRef memtables -SstVersionRef ssts -SequenceNumber flushed_sequence -ManifestVersion manifest_version } class MemtableVersion { -MemtableRef mutable -Vec~MemtableRef~ immutables +mutable_memtable() MemtableRef +immutable_memtables() &[MemtableRef] +freeze_mutable(MemtableRef new_mutable) MemtableVersion } class SstVersion { -LevelMetaVec levels -AccessLayerRef sst_layer -FilePurgerRef file_purger -Option~i64~ compaction_time_window } class LevelMeta { -Level level -HashMap<FileId, FileHandle> files } class FileHandle { -FileMeta meta -bool compacting -AtomicBool deleted -AccessLayerRef sst_layer -FilePurgerRef file_purger } class FileMeta { +RegionId region_id +FileId file_id +Option<Timestamp, Timestamp> time_range +Level level +u64 file_size } VersionControl o-- Version Version o-- RegionMetadata Version o-- MemtableVersion Version o-- SstVersion SstVersion o-- LevelMeta LevelMeta o-- FileHandle FileHandle o-- FileMeta class RegionMetadata

§Region workers

The engine handles DMLs and DDLs in dedicated workers.

§Region manifest

The RegionManifestManager manages metadata of the engine.