更新时间:2023-06-20 GMT+08:00

如何更新CSS生命周期策略?

CSS生命周期实现使用的是Open Distro的ISM。此处简单介绍不涉及ISM template的策略更新步骤,若要配置有关ISM template的策略可以参考Open Distro文档

  1. 当创建一个policy时,系统会往.opendistro-ism-config索引中写入一条数据,这条数据的“_id”就是policy的名字,内容是policy的定义。
    图1 写入一条数据
  2. 将policy和索引绑定以后,系统会再往.opendistro-ism-config索引中写入一条数据。这条数据的初始状态如下图所示。
    图2 数据初始状态
  3. 执行explain命令,此时返回的内容只有一条policy的id。
    GET _opendistro/_ism/explain/data2 
    {
      "data2" : {
        "index.opendistro.index_state_management.policy_id" : "policy1"
      }
    }

    之后Open Distro会执行一个初始化的流程,将policy的内容填到这条数据中,初始化以后的数据如下图所示。

    图3 初始化后数据

    初始化结束后,policy中的min_index_age都会被复制过来。

    如果此时去更新policy的内容,已经完成初始化流程的索引是完全不感知的,因为他已经将老的policy的内容复制了一份,更新policy的时候不会去更新复制的那部分内容。

  1. 修改完policy以后,执行change_policy API完成策略更新,如下所示。
    POST _opendistro/_ism/change_policy/data1
    {
      "policy_id": "policy1"
    }