缓存过滤
缓存过滤概述
在某些情况下,数据集的总大小可能会超过分配给Alluxio缓存的总磁盘空间。 为了解决这个问题,Alluxio提供了缓存过滤功能,使我们可以仅缓存热门数据。 通过配置缓存过滤,用户可以根据文件路径指定要缓存的特定文件。
配置
要启用缓存过滤功能,请在alluxio-site.properties
文件中添加以下配置:
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文件,展示了如何设置规则。
这个JSON文件有两个部分。一部分是metadata(元数据),另一部分是data(数据)。让我们以数据部分为例。
immutable
键设置了一个带有正则表达式模式.*/immutable_tables/.*
的单例列表,因此这些文件将永不驱逐。skipCache
键设置了一个带有正则表达式模式.*/skip_cache_tables/.*
的单例列表,因此这些文件将永不缓存。maxAge
键设置了一个单条目映射{".*/mutable_tables/.*":"10s"}
。 匹配正则表达式模式.*/mutable_tables/.*
的文件将被缓存,并在10s
后过期。
metadata部分的设置方式相同,因此相同文件的元数据将具有相同的缓存行为。 这两种类型被分别定义,以允许每种类型具有不同的行为。
最后,我们可以为不匹配任何配置的正则表达式模式的文件设置默认类型。 在这个例子中,defaultType
是immutable
。
Last updated