dremio 社区版本scheduler 任务池加载处理机制简单说明

dremio 当前发行版本包含了已给社区版本的调度,此包的加载还是比较有意思的

参考处理机制

TaskPoolInitializer start 中会进行taskpool 的创建

 @Override
  public void start() throws Exception {
    final TaskPoolFactory factory = TaskPools.newFactory(dremioConfig.getSabotConfig());
    pool = factory.newInstance(optionManager.get(), dremioConfig);
  }

TaskPools 参考处理

public final class TaskPools {
 
  public static final String DREMIO_TASK_POOL_FACTORY_CLASS = "dremio.task.pool.factory.class";
 
  private TaskPools() {}
 
  public static TaskPoolFactory newFactory(SabotConfig config) {
    final TaskPoolFactory factory;
    // 此配置是核心,包含了会加载ce 版本的不然就是默认的
    if (config.hasPath(TaskPools.DREMIO_TASK_POOL_FACTORY_CLASS)) {
      factory = config.getInstanceOf(TaskPools.DREMIO_TASK_POOL_FACTORY_CLASS, TaskPoolFactory.class);
    } else {
      factory = new DedicatedTaskPool.Factory();
    }
 
    return factory;
  }
}

dremio-ce-sabot-scheduler 的配置
sabot-module.conf

 
dremio: {
  // Adding slicing task pool options
  classpath.scanning: {
    packages += "com.dremio.sabot.task.slicing.SlicingTaskPool"
  }
 
  // Changing default task pool factory, 因为此配置,就会加载ce 的任务调度处理机制了
  task.pool.factory.class = "com.dremio.sabot.task.slicing.SlicingTaskPool$Factory"
}

说明

ce 版本的scheduler设计还是很强大的,后变会介绍下设计,其中依赖了一个很不错的线程库锁包openhft.affinity 值得学习下

参考资料

sabot/kernel/src/main/java/com/dremio/sabot/task/TaskPools.java
sabot/kernel/src/main/java/com/dremio/sabot/exec/TaskPoolInitializer.java

posted on   荣锋亮  阅读(61)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-03-03 dremio 14 版本发布&&新的官方文档页面
2020-03-03 pgmetrics 一个灵活方便的pg 监控cli
2020-03-03 Kuma 0.4 发布支持7层链路追踪以及grafana dashboard
2020-03-03 yugabyte 2.1.0. 发布
2019-03-03 Announcing HashiCorp Consul + Kubernetes
2019-03-03 katalog-sync: Reliable Integration of Consul and Kubernetes

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示