Datafusion计算过程中需要使用的到的系统资源统一在RunimeEnv进行管理。
pub struct RuntimeEnv {
/// Runtime memory management
pub memory_pool: Arc<dyn MemoryPool>,
/// Manage temporary files during query execution
pub disk_manager: Arc<DiskManager>,
/// Manage temporary cache during query execution
pub cache_manager: Arc<CacheManager>,
/// Object Store Registry
pub object_store_registry: Arc<dyn ObjectStoreRegistry>,
}简单分为了四类
- 运行时的内存管理
- 计算的临时磁盘管理
- 计算的临时缓存管理
- 存储管理 相较于其他几个部分,存储的管理更多的是对接不同类型的存储的,并不是那么重要。 我们主要关注的是会影响程序稳定性和性能的其他几个资源。