Alluxio
ProductsLanguageHome
AI-3.2
AI-3.2
  • 概览
  • 部署Alluxio
    • 资源需求和兼容性
    • 在Kubernetes上安装Alluxio
    • 监控和指标
    • Alluxio 集群操作
    • 系统健康检查和快速恢复
  • 底层存储系统
    • 存储集成概述
    • Amazon AWS S3
    • HDFS
    • 阿里云 OSS
    • 腾讯 COS
    • 火山引擎 TOS
  • Client APIs
    • Alluxio Python Filesystem API based on FSSpec
    • 基于 FUSE 的 POSIX API
    • S3 API
  • 功能
    • Alluxio 命名空间和底层文件系统命名空间
    • 缓存预加载
    • Client 写回
    • 缓存驱逐
    • 缓存过滤
    • 缓存释放
    • 文件多副本
    • 文件分片
    • I/O弹性
  • 性能基准测试
    • Fio 测试概览
    • MLPerf Storage 基准测试
    • 性能优化
  • 参考
    • 用户命令行接口
    • S3 API Usage
    • Third Party Licenses
Powered by GitBook
On this page
  • 缓存过滤概述
  • 配置
  • 在JSON文件中设置过滤规则
  1. 功能

缓存过滤

缓存过滤概述

在某些情况下,数据集的总大小可能会超过分配给Alluxio缓存的总磁盘空间。 为了解决这个问题,Alluxio提供了缓存过滤功能,使我们可以仅缓存热门数据。 通过配置缓存过滤,用户可以根据文件路径指定要缓存的特定文件。

配置

要启用缓存过滤功能,请在alluxio-site.properties文件中添加以下配置:

alluxio.user.client.cache.filter.enabled=true
alluxio.user.client.cache.filter.class=alluxio.client.file.cache.filter.RuleSetBasedCacheFilter
alluxio.user.client.cache.filter.type=RULE_SET
alluxio.user.client.cache.filter.config.file=${ALLUXIO_HOME}/conf/cache_filter.json
alluxio.user.client.cache.filter.config.check.interval=5min
  • alluxio.user.client.cache.filter.config.file 用于指定设置过滤规则的JSON文件路径

  • alluxio.user.client.cache.filter.config.check.interval 用于检查JSON文件的间隔

这两个属性允许在运行中的集群上动态更新过滤规则。

在JSON文件中设置过滤规则

Alluxio中有三种不同类型的过滤规则:

  • Immutable(不可变):假设UFS上的文件永远不会更改;这些文件被缓存且永不驱逐

  • Skip Cache(跳过缓存):假设UFS上的文件经常更改;这些文件从不缓存,总是从UFS读取

  • Max Age(存活时间):假设UFS上的文件将在指定时间间隔内更改;这些文件被缓存,但设置为在一定时间间隔后过期

下面是一个示例JSON文件,展示了如何设置规则。

{
  "apiVersion": 1,
  "data": {
    "immutable": [".*/immutable_tables/.*"],
    "skipCache": [".*/skip_cache_tables/.*"],
    "maxAge": {".*/mutable_tables/.*":"10s"},
    "defaultType": "immutable"
  },
  "metadata": {
    "immutable": [".*/immutable_tables/.*"],
    "skipCache": [".*/skip_cache_tables/.*"],
    "maxAge": {".*/mutable_tables/.*":"10s"},
    "defaultType": "immutable"
  }
}

这个JSON文件有两个部分。一部分是metadata(元数据),另一部分是data(数据)。让我们以数据部分为例。

  • immutable键设置了一个带有正则表达式模式.*/immutable_tables/.*的单例列表,因此这些文件将永不驱逐。

  • skipCache键设置了一个带有正则表达式模式.*/skip_cache_tables/.*的单例列表,因此这些文件将永不缓存。

  • maxAge键设置了一个单条目映射{".*/mutable_tables/.*":"10s"}。 匹配正则表达式模式.*/mutable_tables/.*的文件将被缓存,并在10s后过期。

metadata部分的设置方式相同,因此相同文件的元数据将具有相同的缓存行为。 这两种类型被分别定义,以允许每种类型具有不同的行为。

最后,我们可以为不匹配任何配置的正则表达式模式的文件设置默认类型。 在这个例子中,defaultType是immutable。

Last updated 7 months ago