存算分离Data Cache

更新时间:
复制为 MD 格式

本文介绍存算分离 Data Cache 的功能原理及配置方法。通过将远端存储中的热点数据缓存至 CN 节点本地,可显著提升存算分离集群的查询性能。

功能介绍

自 StarRocks v3.1.7 和 v3.2.3 版本起,StarRocks 在存算分离集群中引入 Data Cache 功能,默认开启。该功能以 Block(MB 级别)为单位,按需从远端存储加载数据至本地缓存,取代早期版本中的 File Cache 功能。

说明

自 v3.4.0 版本起,StarRocks 存算分离内表和数据湖查询共用同一个 Data Cache 实例。

使用限制

  • 仅适用于 Serverless StarRocks 存算分离实例。

  • 自 StarRocks v3.1.7 和 v3.2.3 版本起支持,默认开启。

配置 Data Cache

您可以通过以下 CN 配置项对 Data Cache 进行配置。

缓存磁盘容量

存算分离集群的磁盘缓存容量取 datacache_disk_sizestarlet_star_cache_disk_size_percent 两个参数中较大的值。

配置参数

说明

datacache_disk_size

单个磁盘缓存数据量的上限,可设为比例上限(如 80%)或物理上限(如 2T500G)。若配置了两块缓存磁盘且设置为 20G,则最多可缓存 40 GB 数据。默认值为 0,即仅使用内存作为缓存介质。

starlet_star_cache_disk_size_percent

Data Cache 可使用的磁盘容量百分比,默认值为 80(%)。

表级缓存配置

  • 禁用指定表的缓存:将云原生表的 datacache.enable 属性设置为 false,该表将不使用 Data Cache。

  • 限制缓存数据时间范围:通过 datacache.partition_duration 属性设置热数据有效期,超出该时间范围的数据将不会被缓存。支持的时间单位:YEARMONTHDAYHOUR。例如 7 DAY12 HOUR。不指定时,所有数据均作为热数据进行缓存。

    说明

    此属性仅在 datacache.enable 设置为 true 时可用。

查看 Data Cache 状态

  • 执行以下 SQL 查看 Data Cache 磁盘使用上限:

    SELECT * FROM information_schema.be_configs
    WHERE NAME LIKE '%starlet_star_cache_disk_size_percent%'
       OR NAME LIKE '%datacache_disk_size%';
  • 在阿里云控制台,进入业务洞察 > 缓存洞察,查看实例或计算组的缓存命中情况,以便进行业务优化。

禁用 Data Cache

如需禁用 Data Cache,执行以下 SQL:

SET [GLOBAL] skip_local_disk_cache = true;
说明

若仅需对特定表禁用缓存,建议配置表级别的 datacache.enable,而非全局关闭。