跳转到: 导航, 搜索

Swift/ideas/task-execution

< Swift‎ | ideas

目标

将任务执行扩展到数据所在的位置(对象过期器、容器同步、自动分层、元数据索引等)。

任务注册

任务由 item-server 注册到特殊账户的容器中。对于每一对(item, partition),都有一个账户,因此每个 item-server 只请求其持有的数据对应的任务。容器名称依赖于功能

.tasks-objects-42
  object-expirer-<timestamp>
  auto-tiering-<timestamp>
  metadata-indexation

任务执行

每个 item-server 获取其持有的 partition 的任务并执行它们

  • account-server 从 .tasks-account-<part number> 获取任务
  • container-server 从 .tasks-container-<part number> 获取任务
  • object-server 从 .tasks-object-<part number> 获取任务

回填

对于在账户或容器级别启用的功能(例如:元数据索引),在功能激活时会执行一个回填任务。例如:对于元数据索引,它会创建一个容器任务,请求为 N 到 M 行创建元数据索引任务

.tasks-container-<container partition>
   metadata-indexation
       account/container/start_row-end_row

执行后,我们会得到一批任务

.tasks-object-<object partition>
   metadata-indexation
       account/container/object/timestamp

同样适用于容器同步。