Although the device framework on main has been restructured, it still cannot meet complex requirements.
Requirements:
- Multiple devices can be utilized (each device may be a directory or a raw block device).
- Each device has its own throttle and statistics.
- Different non-overlapping parts of each device can be used by different engines.
To address this complexity, foyer will restructure the device-related abstractions.
- Device Group: Aggregated devices that can be used by an engine, created by user.
- Device: A raw block device or a directory in a fs, or part of an existing device, created by user.
- Partition: An append-only continuous part of a device, created by engine in the init phase.