TiDB在执行DDL后未清理遗留的placement-rules

额,好像并不是BUG,找了一个规则跟了一下,这个是针对表设置的PLACEMENT POLICY,就跟这个规则一样,是指partition_id为61818的分区,必须满足disk in ["sata-new"]这个规则。

» config placement-rules rule-bundle get TiDB_DDL_61818
{
  "group_id": "TiDB_DDL_61818",
  "group_index": 80,
  "group_override": true,
  "rules": [
    {
      "group_id": "TiDB_DDL_61818",
      "id": "partition_rule_61818_0",
      "index": 40,
      "start_key": "74800000000000f1ff7a00000000000000f8",
      "end_key": "74800000000000f1ff7b00000000000000f8",
      "role": "leader",
      "is_witness": false,
      "count": 1,
      "label_constraints": [
        {
          "key": "disk",
          "op": "in",
          "values": [
            "sata-new"
          ]
        },
        {
          "key": "engine",
          "op": "notIn",
          "values": [
            "tiflash"
          ]
        }
      ]
    },
    {
      "group_id": "TiDB_DDL_61818",
      "id": "partition_rule_61818_1",
      "index": 40,
      "start_key": "74800000000000f1ff7a00000000000000f8",
      "end_key": "74800000000000f1ff7b00000000000000f8",
      "role": "voter",
      "is_witness": false,
      "count": 2,
      "label_constraints": [
        {
          "key": "disk",
          "op": "in",
          "values": [
            "sata-new"
          ]
        },
        {
          "key": "engine",
          "op": "notIn",
          "values": [
            "tiflash"
          ]
        }
      ]
    }
  ]
}

查询元数据后,确实是主动把这个分区放到HDD盘上的,是符合预期的。

mysql> select * from information_schema.partitions where TIDB_PARTITION_ID='61818' limit 1\G
*************************** 1. row ***************************
                TABLE_CATALOG: def
                 TABLE_SCHEMA: XXXXXX
                   TABLE_NAME: XXXXXX
               PARTITION_NAME: p202307
            SUBPARTITION_NAME: NULL
   PARTITION_ORDINAL_POSITION: 1
SUBPARTITION_ORDINAL_POSITION: NULL
             PARTITION_METHOD: RANGE COLUMNS
          SUBPARTITION_METHOD: NULL
         PARTITION_EXPRESSION: cal_date
      SUBPARTITION_EXPRESSION: NULL
        PARTITION_DESCRIPTION: '2023-08-01'
                   TABLE_ROWS: 0
               AVG_ROW_LENGTH: 0
                  DATA_LENGTH: 0
              MAX_DATA_LENGTH: 0
                 INDEX_LENGTH: 0
                    DATA_FREE: 0
                  CREATE_TIME: 2023-08-28 15:52:16
                  UPDATE_TIME: NULL
                   CHECK_TIME: NULL
                     CHECKSUM: NULL
            PARTITION_COMMENT:
                    NODEGROUP: NULL
              TABLESPACE_NAME: NULL
            TIDB_PARTITION_ID: 61818
   TIDB_PLACEMENT_POLICY_NAME: on_sata_new
1 row in set (0.31 sec)
1 个赞