freemandealer commented on code in PR #1072:
URL: https://github.com/apache/doris-website/pull/1072#discussion_r1766350641


##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。
 
-数据主要通过以下三种方式进入缓存:
+| 操作          | 未命中 File Cache 数据进入 File Cache 的类型 | 写入数据进入 File Cache 的类型     
   | 读取数据使用 Cache |
+| ------------- | -------------------------------------- | ---------- | 
----------------- |
+| 导入          | TTL / LRU (insert into ... from select) | TTL / LRU     | ALL  
            |
+| 查询          | TTL / LRU                                 | N/A        | ALL   
         |
+| schema change | Disposable                             | TTL / LRU     | ALL 
              |
+| compaction    | Disposable                             | TTL / LRU     | ALL 
              |
+| 预热          | N/A                                    | TTL /L LRU     | ALL  
             |
 
-- **导入**:新导入的数据将异步写入缓存,以加速数据的首次访问。
-- **查询**:如果查询所需数据不在缓存中,系统将从远端存储读取该数据至内存,并同时写入缓存,以便后续查询。
-- 
**主动预热**:尽管远端存储的数据可实现多计算集群共享,但缓存数据并不会共享。当新计算集群创建时,缓存为空,此时可主动预热,使集群迅速从远端存储拉取所需数据至本地缓存。
 
-### 缓存淘汰
+## 缓存策略
 
-Doris 支持 LRU 和 TTL 两种缓存管理策略。
+Doris 提供了两种主要的缓存管理策略:LRU(最近最少使用)和 
TTL(时间到期)。这些策略旨在优化数据访问效率和缓存使用,确保系统在高负载情况下仍能保持良好的性能。
 
-- **LRU 策略**:作为默认策略,LRU 
通过维护一个队列来管理数据。当队列中某块数据被访问时,该数据将被移至队列前端。新写入缓存的数据同样置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
-- **TTL 策略**:旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。TTL 
策略下的数据在缓存中具有最高地位,且 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。同时,所有 
TTL 策略下的数据并不会因过期时间差异而被区别对待。当 TTL 数据占据全部缓存空间时,新导入的数据(无论是否设置 
TTL)或从远端存储拉取的冷数据,均不会被写入缓存。
-  -  TTL 策略可以应用于期望在本地持久化的小规模数据表。对于此类常驻表,可设置一个相对较大的 TTL 
值,以确保其在缓存中的数据不会因其他大型数据表的查询操作而被过早淘汰。
+### LRU 策略
 
-  -  此外,对于采用动态分区策略的数据表,可以根据分区中 Hot Partition 的活跃时间,针对性地设定相应的 TTL 值,从而保障 Hot 
Partition 的数据在缓存中的留存,避免其被 Cold Partition 的查询操作所影响。
+LRU 
策略是默认的缓存管理策略。它通过维护一个队列来管理缓存中的数据。当队列中的某块数据被访问时,该数据将被移至队列的前端。新写入缓存的数据同样会被置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
 
-  -  目前,系统暂不支持直接查看 TTL 数据在缓存中的占比。
+### TTL 策略
 
-### 缓存预热
+TTL 策略旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。在 TTL 
策略下,数据在缓存中具有最高优先级,且所有 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。
+
+*应用场景*
+- TTL 策略适用于期望在本地持久化的小规模数据表。对于常驻表,可以设置较大的 TTL 值,以确保其数据不会因其他大型数据表的查询操作而被过早淘汰。
+- 对于采用动态分区策略的数据表,可以根据 Hot Partition 的活跃时间,设定相应的 TTL 值,以保障 Hot Partition 
数据在缓存中的留存。
+
+*注意事项*
+- 目前,系统不支持直接查看 TTL 数据在缓存中的占比。
+
+
+## 缓存淘汰
+
+### 淘汰步骤

Review Comment:
   这里是 LRU/Normal 的淘汰步骤,应注明



##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。
 
-数据主要通过以下三种方式进入缓存:
+| 操作          | 未命中 File Cache 数据进入 File Cache 的类型 | 写入数据进入 File Cache 的类型     
   | 读取数据使用 Cache |
+| ------------- | -------------------------------------- | ---------- | 
----------------- |
+| 导入          | TTL / LRU (insert into ... from select) | TTL / LRU     | ALL  
            |
+| 查询          | TTL / LRU                                 | N/A        | ALL   
         |
+| schema change | Disposable                             | TTL / LRU     | ALL 
              |
+| compaction    | Disposable                             | TTL / LRU     | ALL 
              |
+| 预热          | N/A                                    | TTL /L LRU     | ALL  
             |
 
-- **导入**:新导入的数据将异步写入缓存,以加速数据的首次访问。
-- **查询**:如果查询所需数据不在缓存中,系统将从远端存储读取该数据至内存,并同时写入缓存,以便后续查询。
-- 
**主动预热**:尽管远端存储的数据可实现多计算集群共享,但缓存数据并不会共享。当新计算集群创建时,缓存为空,此时可主动预热,使集群迅速从远端存储拉取所需数据至本地缓存。
 
-### 缓存淘汰
+## 缓存策略
 
-Doris 支持 LRU 和 TTL 两种缓存管理策略。
+Doris 提供了两种主要的缓存管理策略:LRU(最近最少使用)和 
TTL(时间到期)。这些策略旨在优化数据访问效率和缓存使用,确保系统在高负载情况下仍能保持良好的性能。
 
-- **LRU 策略**:作为默认策略,LRU 
通过维护一个队列来管理数据。当队列中某块数据被访问时,该数据将被移至队列前端。新写入缓存的数据同样置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
-- **TTL 策略**:旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。TTL 
策略下的数据在缓存中具有最高地位,且 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。同时,所有 
TTL 策略下的数据并不会因过期时间差异而被区别对待。当 TTL 数据占据全部缓存空间时,新导入的数据(无论是否设置 
TTL)或从远端存储拉取的冷数据,均不会被写入缓存。
-  -  TTL 策略可以应用于期望在本地持久化的小规模数据表。对于此类常驻表,可设置一个相对较大的 TTL 
值,以确保其在缓存中的数据不会因其他大型数据表的查询操作而被过早淘汰。
+### LRU 策略
 
-  -  此外,对于采用动态分区策略的数据表,可以根据分区中 Hot Partition 的活跃时间,针对性地设定相应的 TTL 值,从而保障 Hot 
Partition 的数据在缓存中的留存,避免其被 Cold Partition 的查询操作所影响。
+LRU 
策略是默认的缓存管理策略。它通过维护一个队列来管理缓存中的数据。当队列中的某块数据被访问时,该数据将被移至队列的前端。新写入缓存的数据同样会被置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
 
-  -  目前,系统暂不支持直接查看 TTL 数据在缓存中的占比。
+### TTL 策略
 
-### 缓存预热
+TTL 策略旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。在 TTL 
策略下,数据在缓存中具有最高优先级,且所有 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。
+
+*应用场景*
+- TTL 策略适用于期望在本地持久化的小规模数据表。对于常驻表,可以设置较大的 TTL 值,以确保其数据不会因其他大型数据表的查询操作而被过早淘汰。
+- 对于采用动态分区策略的数据表,可以根据 Hot Partition 的活跃时间,设定相应的 TTL 值,以保障 Hot Partition 
数据在缓存中的留存。
+
+*注意事项*
+- 目前,系统不支持直接查看 TTL 数据在缓存中的占比。
+
+
+## 缓存淘汰
+
+### 淘汰步骤
+
+当 Cache 空间不够用时,Doris 采用如下步骤淘汰各类型 Cache 中的数据,直到释放出足够的空间为止。
+
+1. 淘汰 disposable 和 LRU 中的过期数据,过期数据是指自上次访问以来超过指定有效期的缓存。LRU 和 Disposable 
缓存的有效时间分别为:
+   - LRU 索引缓存:7 天
+   - LRU 普通数据:1 天
+   - LRU Disposable(临时数据):1 小时
+
+2. 如果 `file_cache_enable_evict_from_other_queue_by_size` 
开关已打开且当前队列的缓存大小和数量未超限(该限制可通过 `file_cache_path` 进行设置,默认限制为总 File Cache 容量的 
85%),则可以强制从 Disposable 类型中淘汰数据。
+
+3. 根据 LRU 策略释放自身的数据。
+
+*注意*
+
+TTL 中的数据过期之后会移动到 LRU,之后按照 LRU 淘汰。
+
+### TTL 淘汰
+
+TTL 类型缓存在缓存管理中具有最高优先级,可以抢占其他缓存的空间,直到剩余空间满足要求。
+
+- 为保证其他类型缓存的生存空间,TTL 的抢占有限制,即 TTL 不能超过总 Cache 容量的 90%(可由 `be` 配置 
`max_ttl_cache_ratio` 指定)。如果超过这个限制,将不会淘汰任何其他类型缓存的数据。
+- 如果开启了 TTL 自身支持 LRU 淘汰策略的开关(`be` 配置 `enable_ttl_cache_evict_using_lru = 
true`),则 TTL 可依照 LRU 淘汰自身数据;否则将不会淘汰任何数据,可能导致访问跳过 File Cache 直接访问远端数据,从而影响性能。
+- TTL 类型缓存的后台会有线程异步扫描 TTL 的过期时间。如果过期,则将 TTL 降级为 Normal,并依据上述 Normal 淘汰顺序进行删除。
+
+### 删除淘汰
 
-在存算分离模式下,Doris 
支持多计算集群部署,各计算集群间共享数据但不共享缓存。当新计算集群创建时,其缓存处于空置状态,此时查询性能可能受到影响。为此,Doris 
提供缓存预热功能,允许用户主动从远端存储拉取数据至本地缓存。目前,该功能支持以下三种模式:
+当文件被删除时,其在缓存中的数据也会被淘汰。
 
-- **计算集群间预热**:将计算集群 A 的缓存数据预热至计算集群 B 中。Doris 
会定期收集各计算集群在一段时间内被访问的表/分区的热点信息,并作为内部表存储下来,预热时根据这些信息选择性地预热某些表/分区。
-- **表数据预热**:指定将表 A 的数据预热至新计算集群。
-- **分区数据预热**:指定将表 A 的分区`p1`的数据预热至新集群。
+## 缓存预热
+
+在存算分离模式下,Doris 支持多计算组部署,各��算组间共享数据但不共享缓存。新计算组创建时,其缓存为空,可能影响查询性能。为此,Doris 
提供缓存预热功能,允许用户从远端存储主动拉取数据至本地缓存。该功能支持以下三种模式:
+
+- **计算组间预热**:将计算组 A 的缓存数据预热至计算组 B。Doris 
定期收集各计算组在一段时间内被访问的表/分区的热点信息,并根据这些信息选择性地预热某些表/分区。
+- **表数据预热**:指定将表 A 的数据预热至新计算组。
+- **分区数据预热**:指定将表 A 的分区 `p1` 的数据预热至新计算组。
+
+## 缓存观测
+
+### 热点信息
+
+Doris 每 10 分钟收集各个计算组的缓存热点信息到内部系统表,您可以通过 `SHOW CACHE HOTSPOT '/'` 命令查看热点信息。
+
+### Cache 空间以及命中率
+
+Doris BE 节点通过 `curl {be_ip}:{brpc_port}/vars ( brpc_port 默认为 8060 ) 获取 cache 
统计信息,指标项的名称开始为磁盘路径。
+
+上述例子中指标前缀为 File Cache 的路径, 例如前缀 
"_mnt_disk1_gavinchou_debug_doris_cloud_be0_storage_file_cache_" 表示 
"/mnt/disk1/gavinchou/debug/doris-cloud/be0_storage_file_cache/"
+去掉前缀的部分为统计指标, 比如 "file_cache_cache_size" 表示当前 路径的 File Cache 大小为 26111 字节
+
+下表为全部的指标意义 (一下表示size大小单位均为字节)

Review Comment:
   
   ```suggestion
   下表为全部的指标意义 (以下表示size大小的单位均为字节)
   ```



##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。
 
-数据主要通过以下三种方式进入缓存:
+| 操作          | 未命中 File Cache 数据进入 File Cache 的类型 | 写入数据进入 File Cache 的类型     
   | 读取数据使用 Cache |
+| ------------- | -------------------------------------- | ---------- | 
----------------- |
+| 导入          | TTL / LRU (insert into ... from select) | TTL / LRU     | ALL  
            |
+| 查询          | TTL / LRU                                 | N/A        | ALL   
         |
+| schema change | Disposable                             | TTL / LRU     | ALL 
              |
+| compaction    | Disposable                             | TTL / LRU     | ALL 
              |
+| 预热          | N/A                                    | TTL /L LRU     | ALL  
             |
 
-- **导入**:新导入的数据将异步写入缓存,以加速数据的首次访问。
-- **查询**:如果查询所需数据不在缓存中,系统将从远端存储读取该数据至内存,并同时写入缓存,以便后续查询。
-- 
**主动预热**:尽管远端存储的数据可实现多计算集群共享,但缓存数据并不会共享。当新计算集群创建时,缓存为空,此时可主动预热,使集群迅速从远端存储拉取所需数据至本地缓存。
 
-### 缓存淘汰
+## 缓存策略
 
-Doris 支持 LRU 和 TTL 两种缓存管理策略。
+Doris 提供了两种主要的缓存管理策略:LRU(最近最少使用)和 
TTL(时间到期)。这些策略旨在优化数据访问效率和缓存使用,确保系统在高负载情况下仍能保持良好的性能。
 
-- **LRU 策略**:作为默认策略,LRU 
通过维护一个队列来管理数据。当队列中某块数据被访问时,该数据将被移至队列前端。新写入缓存的数据同样置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
-- **TTL 策略**:旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。TTL 
策略下的数据在缓存中具有最高地位,且 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。同时,所有 
TTL 策略下的数据并不会因过期时间差异而被区别对待。当 TTL 数据占据全部缓存空间时,新导入的数据(无论是否设置 
TTL)或从远端存储拉取的冷数据,均不会被写入缓存。
-  -  TTL 策略可以应用于期望在本地持久化的小规模数据表。对于此类常驻表,可设置一个相对较大的 TTL 
值,以确保其在缓存中的数据不会因其他大型数据表的查询操作而被过早淘汰。
+### LRU 策略
 
-  -  此外,对于采用动态分区策略的数据表,可以根据分区中 Hot Partition 的活跃时间,针对性地设定相应的 TTL 值,从而保障 Hot 
Partition 的数据在缓存中的留存,避免其被 Cold Partition 的查询操作所影响。
+LRU 
策略是默认的缓存管理策略。它通过维护一个队列来管理缓存中的数据。当队列中的某块数据被访问时,该数据将被移至队列的前端。新写入缓存的数据同样会被置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
 
-  -  目前,系统暂不支持直接查看 TTL 数据在缓存中的占比。
+### TTL 策略
 
-### 缓存预热
+TTL 策略旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。在 TTL 
策略下,数据在缓存中具有最高优先级,且所有 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。
+
+*应用场景*
+- TTL 策略适用于期望在本地持久化的小规模数据表。对于常驻表,可以设置较大的 TTL 值,以确保其数据不会因其他大型数据表的查询操作而被过早淘汰。
+- 对于采用动态分区策略的数据表,可以根据 Hot Partition 的活跃时间,设定相应的 TTL 值,以保障 Hot Partition 
数据在缓存中的留存。
+
+*注意事项*
+- 目前,系统不支持直接查看 TTL 数据在缓存中的占比。
+
+
+## 缓存淘汰
+
+### 淘汰步骤
+
+当 Cache 空间不够用时,Doris 采用如下步骤淘汰各类型 Cache 中的数据,直到释放出足够的空间为止。
+
+1. 淘汰 disposable 和 LRU 中的过期数据,过期数据是指自上次访问以来超过指定有效期的缓存。LRU 和 Disposable 
缓存的有效时间分别为:
+   - LRU 索引缓存:7 天
+   - LRU 普通数据:1 天
+   - LRU Disposable(临时数据):1 小时
+
+2. 如果 `file_cache_enable_evict_from_other_queue_by_size` 
开关已打开且当前队列的缓存大小和数量未超限(该限制可通过 `file_cache_path` 进行设置,默认限制为总 File Cache 容量的 
85%),则可以强制从 Disposable 类型中淘汰数据。
+
+3. 根据 LRU 策略释放自身的数据。
+
+*注意*
+
+TTL 中的数据过期之后会移动到 LRU,之后按照 LRU 淘汰。
+
+### TTL 淘汰
+
+TTL 类型缓存在缓存管理中具有最高优先级,可以抢占其他缓存的空间,直到剩余空间满足要求。
+
+- 为保证其他类型缓存的生存空间,TTL 的抢占有限制,即 TTL 不能超过总 Cache 容量的 90%(可由 `be` 配置 
`max_ttl_cache_ratio` 指定)。如果超过这个限制,将不会淘汰任何其他类型缓存的数据。
+- 如果开启了 TTL 自身支持 LRU 淘汰策略的开关(`be` 配置 `enable_ttl_cache_evict_using_lru = 
true`),则 TTL 可依照 LRU 淘汰自身数据;否则将不会淘汰任何数据,可能导致访问跳过 File Cache 直接访问远端数据,从而影响性能。

Review Comment:
   后面对性能的影响倒是“可能”的,因为这个取决于 remote 性能。



##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。
 
-数据主要通过以下三种方式进入缓存:
+| 操作          | 未命中 File Cache 数据进入 File Cache 的类型 | 写入数据进入 File Cache 的类型     
   | 读取数据使用 Cache |
+| ------------- | -------------------------------------- | ---------- | 
----------------- |
+| 导入          | TTL / LRU (insert into ... from select) | TTL / LRU     | ALL  
            |
+| 查询          | TTL / LRU                                 | N/A        | ALL   
         |
+| schema change | Disposable                             | TTL / LRU     | ALL 
              |
+| compaction    | Disposable                             | TTL / LRU     | ALL 
              |
+| 预热          | N/A                                    | TTL /L LRU     | ALL  
             |
 
-- **导入**:新导入的数据将异步写入缓存,以加速数据的首次访问。
-- **查询**:如果查询所需数据不在缓存中,系统将从远端存储读取该数据至内存,并同时写入缓存,以便后续查询。
-- 
**主动预热**:尽管远端存储的数据可实现多计算集群共享,但缓存数据并不会共享。当新计算集群创建时,缓存为空,此时可主动预热,使集群迅速从远端存储拉取所需数据至本地缓存。
 
-### 缓存淘汰
+## 缓存策略
 
-Doris 支持 LRU 和 TTL 两种缓存管理策略。
+Doris 提供了两种主要的缓存管理策略:LRU(最近最少使用)和 
TTL(时间到期)。这些策略旨在优化数据访问效率和缓存使用,确保系统在高负载情况下仍能保持良好的性能。
 
-- **LRU 策略**:作为默认策略,LRU 
通过维护一个队列来管理数据。当队列中某块数据被访问时,该数据将被移至队列前端。新写入缓存的数据同样置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
-- **TTL 策略**:旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。TTL 
策略下的数据在缓存中具有最高地位,且 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。同时,所有 
TTL 策略下的数据并不会因过期时间差异而被区别对待。当 TTL 数据占据全部缓存空间时,新导入的数据(无论是否设置 
TTL)或从远端存储拉取的冷数据,均不会被写入缓存。
-  -  TTL 策略可以应用于期望在本地持久化的小规模数据表。对于此类常驻表,可设置一个相对较大的 TTL 
值,以确保其在缓存中的数据不会因其他大型数据表的查询操作而被过早淘汰。
+### LRU 策略
 
-  -  此外,对于采用动态分区策略的数据表,可以根据分区中 Hot Partition 的活跃时间,针对性地设定相应的 TTL 值,从而保障 Hot 
Partition 的数据在缓存中的留存,避免其被 Cold Partition 的查询操作所影响。
+LRU 
策略是默认的缓存管理策略。它通过维护一个队列来管理缓存中的数据。当队列中的某块数据被访问时,该数据将被移至队列的前端。新写入缓存的数据同样会被置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
 
-  -  目前,系统暂不支持直接查看 TTL 数据在缓存中的占比。
+### TTL 策略
 
-### 缓存预热
+TTL 策略旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。在 TTL 
策略下,数据在缓存中具有最高优先级,且所有 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。
+
+*应用场景*
+- TTL 策略适用于期望在本地持久化的小规模数据表。对于常驻表,可以设置较大的 TTL 值,以确保其数据不会因其他大型数据表的查询操作而被过早淘汰。
+- 对于采用动态分区策略的数据表,可以根据 Hot Partition 的活跃时间,设定相应的 TTL 值,以保障 Hot Partition 
数据在缓存中的留存。
+
+*注意事项*
+- 目前,系统不支持直接查看 TTL 数据在缓存中的占比。
+
+
+## 缓存淘汰
+
+### 淘汰步骤
+
+当 Cache 空间不够用时,Doris 采用如下步骤淘汰各类型 Cache 中的数据,直到释放出足够的空间为止。
+
+1. 淘汰 disposable 和 LRU 中的过期数据,过期数据是指自上次访问以来超过指定有效期的缓存。LRU 和 Disposable 
缓存的有效时间分别为:
+   - LRU 索引缓存:7 天
+   - LRU 普通数据:1 天
+   - LRU Disposable(临时数据):1 小时
+
+2. 如果 `file_cache_enable_evict_from_other_queue_by_size` 
开关已打开且当前队列的缓存大小和数量未超限(该限制可通过 `file_cache_path` 进行设置,默认限制为总 File Cache 容量的 
85%),则可以强制从 Disposable 类型中淘汰数据。
+
+3. 根据 LRU 策略释放自身的数据。
+
+*注意*
+
+TTL 中的数据过期之后会移动到 LRU,之后按照 LRU 淘汰。
+
+### TTL 淘汰
+
+TTL 类型缓存在缓存管理中具有最高优先级,可以抢占其他缓存的空间,直到剩余空间满足要求。
+
+- 为保证其他类型缓存的生存空间,TTL 的抢占有限制,即 TTL 不能超过总 Cache 容量的 90%(可由 `be` 配置 
`max_ttl_cache_ratio` 指定)。如果超过这个限制,将不会淘汰任何其他类型缓存的数据。
+- 如果开启了 TTL 自身支持 LRU 淘汰策略的开关(`be` 配置 `enable_ttl_cache_evict_using_lru = 
true`),则 TTL 可依照 LRU 淘汰自身数据;否则将不会淘汰任何数据,可能导致访问跳过 File Cache 直接访问远端数据,从而影响性能。

Review Comment:
   这里“可能”可以去掉



##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。
 
-数据主要通过以下三种方式进入缓存:
+| 操作          | 未命中 File Cache 数据进入 File Cache 的类型 | 写入数据进入 File Cache 的类型     
   | 读取数据使用 Cache |
+| ------------- | -------------------------------------- | ---------- | 
----------------- |
+| 导入          | TTL / LRU (insert into ... from select) | TTL / LRU     | ALL  
            |
+| 查询          | TTL / LRU                                 | N/A        | ALL   
         |
+| schema change | Disposable                             | TTL / LRU     | ALL 
              |
+| compaction    | Disposable                             | TTL / LRU     | ALL 
              |
+| 预热          | N/A                                    | TTL /L LRU     | ALL  
             |
 
-- **导入**:新导入的数据将异步写入缓存,以加速数据的首次访问。
-- **查询**:如果查询所需数据不在缓存中,系统将从远端存储读取该数据至内存,并同时写入缓存,以便后续查询。
-- 
**主动预热**:尽管远端存储的数据可实现多计算集群共享,但缓存数据并不会共享。当新计算集群创建时,缓存为空,此时可主动预热,使集群迅速从远端存储拉取所需数据至本地缓存。
 
-### 缓存淘汰
+## 缓存策略
 
-Doris 支持 LRU 和 TTL 两种缓存管理策略。
+Doris 提供了两种主要的缓存管理策略:LRU(最近最少使用)和 
TTL(时间到期)。这些策略旨在优化数据访问效率和缓存使用,确保系统在高负载情况下仍能保持良好的性能。

Review Comment:
   这里管理策略使用 LRU 和 TTL 没问题。



##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。

Review Comment:
   因为 TTL 也支持 LRU 淘汰了,所以这样的分类有点混乱,我觉得沿用 TTL Normal Disposable 的方式清晰些



##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/compute-storage-decoupled/file-cache.md:
##########
@@ -26,37 +26,129 @@ under the License.
 
 在存算分离架构下,数据存储在远端存储上。为了加速数据访问,Doris 实现了一个基于本地硬盘的缓存机制,并提供两种高效的缓存管理策略:LRU 策略和 TTL 
策略,对索引相关的数据进行了优化,旨在最大程度上缓存用户常用数据。
 
-在涉及多计算集群(Compute Cluster)的应用场景中,Doris 
提供缓存预热功能。当新计算集群建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
+在涉及多计算组(Compute Group)的应用场景中,Doris 
提供缓存预热功能。当新计算组建立时,用户可以选择对特定的数据(如表或分区)进行预热,以提高查询效率。
 
-## 缓存空间管理
+## 缓存类型
 
-### 缓存数据
+File Cache 分为 TTL、LRU 和 Disposable 三种类型,各种操作读取默认会检查所有类型是否可以命中,但是各种操作写入 File 
Cache 的类型有差异。
 
-数据主要通过以下三种方式进入缓存:
+| 操作          | 未命中 File Cache 数据进入 File Cache 的类型 | 写入数据进入 File Cache 的类型     
   | 读取数据使用 Cache |
+| ------------- | -------------------------------------- | ---------- | 
----------------- |
+| 导入          | TTL / LRU (insert into ... from select) | TTL / LRU     | ALL  
            |
+| 查询          | TTL / LRU                                 | N/A        | ALL   
         |
+| schema change | Disposable                             | TTL / LRU     | ALL 
              |
+| compaction    | Disposable                             | TTL / LRU     | ALL 
              |
+| 预热          | N/A                                    | TTL /L LRU     | ALL  
             |
 
-- **导入**:新导入的数据将异步写入缓存,以加速数据的首次访问。
-- **查询**:如果查询所需数据不在缓存中,系统将从远端存储读取该数据至内存,并同时写入缓存,以便后续查询。
-- 
**主动预热**:尽管远端存储的数据可实现多计算集群共享,但缓存数据并不会共享。当新计算集群创建时,缓存为空,此时可主动预热,使集群迅速从远端存储拉取所需数据至本地缓存。
 
-### 缓存淘汰
+## 缓存策略
 
-Doris 支持 LRU 和 TTL 两种缓存管理策略。
+Doris 提供了两种主要的缓存管理策略:LRU(最近最少使用)和 
TTL(时间到期)。这些策略旨在优化数据访问效率和缓存使用,确保系统在高负载情况下仍能保持良好的性能。
 
-- **LRU 策略**:作为默认策略,LRU 
通过维护一个队列来管理数据。当队列中某块数据被访问时,该数据将被移至队列前端。新写入缓存的数据同样置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
-- **TTL 策略**:旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。TTL 
策略下的数据在缓存中具有最高地位,且 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。同时,所有 
TTL 策略下的数据并不会因过期时间差异而被区别对待。当 TTL 数据占据全部缓存空间时,新导入的数据(无论是否设置 
TTL)或从远端存储拉取的冷数据,均不会被写入缓存。
-  -  TTL 策略可以应用于期望在本地持久化的小规模数据表。对于此类常驻表,可设置一个相对较大的 TTL 
值,以确保其在缓存中的数据不会因其他大型数据表的查询操作而被过早淘汰。
+### LRU 策略
 
-  -  此外,对于采用动态分区策略的数据表,可以根据分区中 Hot Partition 的活跃时间,针对性地设定相应的 TTL 值,从而保障 Hot 
Partition 的数据在缓存中的留存,避免其被 Cold Partition 的查询操作所影响。
+LRU 
策略是默认的缓存管理策略。它通过维护一个队列来管理缓存中的数据。当队列中的某块数据被访问时,该数据将被移至队列的前端。新写入缓存的数据同样会被置于队列前端,以避免过早被淘汰。当缓存空间已满时,队列尾部的数据将被优先淘汰。
 
-  -  目前,系统暂不支持直接查看 TTL 数据在缓存中的占比。
+### TTL 策略
 
-### 缓存预热
+TTL 策略旨在确保新导入的数据在缓存中保留一段时间不被淘汰(过期时间 = 导入时间 + 设定的超时时间)。在 TTL 
策略下,数据在缓存中具有最高优先级,且所有 TTL 数据之间互相平等。当缓存已满时,系统会通过淘汰 LRU 队列中的数据来确保 TTL 数据能够写入缓存。
+
+*应用场景*
+- TTL 策略适用于期望在本地持久化的小规模数据表。对于常驻表,可以设置较大的 TTL 值,以确保其数据不会因其他大型数据表的查询操作而被过早淘汰。
+- 对于采用动态分区策略的数据表,可以根据 Hot Partition 的活跃时间,设定相应的 TTL 值,以保障 Hot Partition 
数据在缓存中的留存。
+
+*注意事项*
+- 目前,系统不支持直接查看 TTL 数据在缓存中的占比。
+
+
+## 缓存淘汰
+
+### 淘汰步骤
+
+当 Cache 空间不够用时,Doris 采用如下步骤淘汰各类型 Cache 中的数据,直到释放出足够的空间为止。
+
+1. 淘汰 disposable 和 LRU 中的过期数据,过期数据是指自上次访问以来超过指定有效期的缓存。LRU 和 Disposable 
缓存的有效时间分别为:
+   - LRU 索引缓存:7 天
+   - LRU 普通数据:1 天
+   - LRU Disposable(临时数据):1 小时
+
+2. 如果 `file_cache_enable_evict_from_other_queue_by_size` 
开关已打开且当前队列的缓存大小和数量未超限(该限制可通过 `file_cache_path` 进行设置,默认限制为总 File Cache 容量的 
85%),则可以强制从 Disposable 类型中淘汰数据。
+
+3. 根据 LRU 策略释放自身的数据。
+
+*注意*
+
+TTL 中的数据过期之后会移动到 LRU,之后按照 LRU 淘汰。
+
+### TTL 淘汰
+
+TTL 类型缓存在缓存管理中具有最高优先级,可以抢占其他缓存的空间,直到剩余空间满足要求。
+
+- 为保证其他类型缓存的生存空间,TTL 的抢占有限制,即 TTL 不能超过总 Cache 容量的 90%(可由 `be` 配置 
`max_ttl_cache_ratio` 指定)。如果超过这个限制,将不会淘汰任何其他类型缓存的数据。
+- 如果开启了 TTL 自身支持 LRU 淘汰策略的开关(`be` 配置 `enable_ttl_cache_evict_using_lru = 
true`),则 TTL 可依照 LRU 淘汰自身数据;否则将不会淘汰任何数据,可能导致访问跳过 File Cache 直接访问远端数据,从而影响性能。
+- TTL 类型缓存的后台会有线程异步扫描 TTL 的过期时间。如果过期,则将 TTL 降级为 Normal,并依据上述 Normal 淘汰顺序进行删除。

Review Comment:
   这里突然出现了 Normal 这个术语,术语使用不一致(上文是 LRU)。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to