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>,
}

简单分为了四类

  • 运行时的内存管理
  • 计算的临时磁盘管理
  • 计算的临时缓存管理
  • 存储管理 相较于其他几个部分,存储的管理更多的是对接不同类型的存储的,并不是那么重要。 我们主要关注的是会影响程序稳定性和性能的其他几个资源。