mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-14 09:12:57 +00:00
* refactor: Move fields in SharedData to EngineInner Since `SharedData` isn't shared now, we move all its fields to EngineInner, and remove the `SharedData` struct, also remove the unused config field. * feat: Store RegionSlot in engine's region map A `RegionSlot` has three possible state: - Opening - Creating - Ready (Holds the `RegionImpl`) Also use the `RegionSlot` as a placeholder in the region map to indicate the region is opening/creating, so another open/create request will fail immediately. The `SlotGuard` is used to clean the slot if we failed to create/open the region. * feat: Add a blank method `RegionImpl::open` * feat: Remove MetadataId from Manifest Now metadata id of manifest is unused, also unnecessary as we have manifest dir to build the manifest, but constructing the manifest still needs a passing region id as argument, which is unavailable during opening region. So we remove the metadata id from manifest so `region_store_config()` don't need region id as input anymore * feat: Remove region id from logstore::Namespace and Wal This is necessary for implementing open, since we don't have region id this time, but we need to build Wal and its logstore namespace. Now this is ok as id is not actually used by logstore. * feat: Setup `open_region` code skeleton