morningman commented on code in PR #3277:
URL: https://github.com/apache/doris-website/pull/3277#discussion_r2732262287
##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/lakehouse/meta-cache.md:
##########
@@ -255,6 +256,121 @@
3.0.7 版本后,配置项名称修改为 `external_cache_refresh_time_minutes`。默认值不变。
+## Iceberg 元数据缓存增强(4.0.3 版本起)
+
+:::tip 版本说明
+以下增强功能从 4.0.3 版本开始提供。对于早期版本,请参考上述基础缓存配置。
+:::
+
+从 4.0.3 版本开始,Doris 对 Iceberg 元数据缓存进行了重大改进,提供了更精细的可配置性、更好的性能和更清晰的语义。
+
+### 增强的 Iceberg 表/视图缓存
+
+4.0.3 版本中增强的表/视图缓存提供了更精细的控制和更好的缓存行为理解。
+
+**架构:**
+
+该缓存由 `IcebergMetadataCache` 维护,每个 Iceberg Catalog 都有自己独立的实例,包含 `tableCache` 和
`viewCache` 两个缓存。
+
+缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于 MTMV 场景)。
Review Comment:
```suggestion
缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于多表物化视图场景)。
```
##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/lakehouse/meta-cache.md:
##########
@@ -255,6 +256,121 @@
3.0.7 版本后,配置项名称修改为 `external_cache_refresh_time_minutes`。默认值不变。
+## Iceberg 元数据缓存增强(4.0.3 版本起)
+
+:::tip 版本说明
+以下增强功能从 4.0.3 版本开始提供。对于早期版本,请参考上述基础缓存配置。
+:::
+
+从 4.0.3 版本开始,Doris 对 Iceberg 元数据缓存进行了重大改进,提供了更精细的可配置性、更好的性能和更清晰的语义。
+
+### 增强的 Iceberg 表/视图缓存
+
+4.0.3 版本中增强的表/视图缓存提供了更精细的控制和更好的缓存行为理解。
+
+**架构:**
+
+该缓存由 `IcebergMetadataCache` 维护,每个 Iceberg Catalog 都有自己独立的实例,包含 `tableCache` 和
`viewCache` 两个缓存。
+
+缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于 MTMV 场景)。
+
+**对数据可见性的影响:**
+
+Table Cache 控制使用哪个版本的 Iceberg 表元数据,这会影响:
+
+- **Schema(结构)**:`schemaId` 从缓存的表对象中获取。如果缓存中是旧的表对象,您将看到旧的 Schema(列定义)。
+- **Snapshot(快照)**:当前快照 ID 从缓存的表对象中获取。如果缓存中是旧的表对象,查询将使用旧快照,可能看不到最新数据。
+- **Partition(分区)**:分区信息使用缓存的表对象的元数据(分区规范、快照)加载。缓存越旧,分区信息越滞后。
+
+:::tip
+要实时看到最新的 Schema、Snapshot 和 Partition 信息,需要禁用表缓存,设置
`iceberg.table.meta.cache.ttl-second=0`。Schema 缓存不影响使用的版本——它只是为了性能缓存已解析的结果。
+:::
+
+**增强配置(4.0.3+):**
+
+- **Catalog 级别的 TTL 控制**
+
+ 从 4.0.3 版本开始,可以通过 `iceberg.table.meta.cache.ttl-second`(单位:秒)在 Catalog
级别配置 TTL。
+
+ ```sql
+ CREATE CATALOG iceberg_catalog PROPERTIES (
+ 'type' = 'iceberg',
+ ...
+ 'iceberg.table.meta.cache.ttl-second' = '7200' -- 2 小时
+ );
+ ```
+
+ 如未指定,则使用 FE 参数 `external_cache_expire_time_seconds_after_access`
的默认值(86400 秒)。
+
+ 设置为 `0` 可以禁用缓存,强制每次访问都重新获取元数据。
+
+- **最大缓存数量**
+
+ 由 FE 配置项 `max_external_table_cache_num` 控制,默认为 1000。
+
+ 可以根据 Iceberg 表的数量,适当调整这个参数。
+
+- **最短刷新时间**
+
+ 由 FE 配置项 `external_cache_refresh_time_minutes` 控制,单位为分钟。默认为 10
分钟。这是异步刷新,不会阻塞当前操作。
+
+### 全新的 Iceberg Manifest 缓存(4.0.3+)
+
+4.0.3 版本引入了全新的 **Manifest 缓存**,显著提升 Iceberg 表的查询性能。
+
+**缓存内容:**
+
+该缓存存储的是**已解析的** Iceberg Manifest 文件内容——具体是从 Manifest 文件中提取的 `DataFile` 和
`DeleteFile` 对象(而不是原始文件字节):
+
+- `DataFile` 对象:文件元数据,包括路径、分区值、统计信息等
+- `DeleteFile` 对象:Equality Delete 的删除元数据
Review Comment:
posistion delete有么?
##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/lakehouse/meta-cache.md:
##########
@@ -255,6 +256,121 @@
3.0.7 版本后,配置项名称修改为 `external_cache_refresh_time_minutes`。默认值不变。
+## Iceberg 元数据缓存增强(4.0.3 版本起)
+
+:::tip 版本说明
+以下增强功能从 4.0.3 版本开始提供。对于早期版本,请参考上述基础缓存配置。
+:::
+
+从 4.0.3 版本开始,Doris 对 Iceberg 元数据缓存进行了重大改进,提供了更精细的可配置性、更好的性能和更清晰的语义。
+
+### 增强的 Iceberg 表/视图缓存
+
+4.0.3 版本中增强的表/视图缓存提供了更精细的控制和更好的缓存行为理解。
+
+**架构:**
+
+该缓存由 `IcebergMetadataCache` 维护,每个 Iceberg Catalog 都有自己独立的实例,包含 `tableCache` 和
`viewCache` 两个缓存。
+
+缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于 MTMV 场景)。
+
+**对数据可见性的影响:**
+
+Table Cache 控制使用哪个版本的 Iceberg 表元数据,这会影响:
+
+- **Schema(结构)**:`schemaId` 从缓存的表对象中获取。如果缓存中是旧的表对象,您将看到旧的 Schema(列定义)。
+- **Snapshot(快照)**:当前快照 ID 从缓存的表对象中获取。如果缓存中是旧的表对象,查询将使用旧快照,可能看不到最新数据。
+- **Partition(分区)**:分区信息使用缓存的表对象的元数据(分区规范、快照)加载。缓存越旧,分区信息越滞后。
+
+:::tip
+要实时看到最新的 Schema、Snapshot 和 Partition 信息,需要禁用表缓存,设置
`iceberg.table.meta.cache.ttl-second=0`。Schema 缓存不影响使用的版本——它只是为了性能缓存已解析的结果。
+:::
+
+**增强配置(4.0.3+):**
+
+- **Catalog 级别的 TTL 控制**
+
+ 从 4.0.3 版本开始,可以通过 `iceberg.table.meta.cache.ttl-second`(单位:秒)在 Catalog
级别配置 TTL。
+
+ ```sql
+ CREATE CATALOG iceberg_catalog PROPERTIES (
+ 'type' = 'iceberg',
+ ...
+ 'iceberg.table.meta.cache.ttl-second' = '7200' -- 2 小时
+ );
+ ```
+
+ 如未指定,则使用 FE 参数 `external_cache_expire_time_seconds_after_access`
的默认值(86400 秒)。
+
+ 设置为 `0` 可以禁用缓存,强制每次访问都重新获取元数据。
+
+- **最大缓存数量**
+
+ 由 FE 配置项 `max_external_table_cache_num` 控制,默认为 1000。
+
+ 可以根据 Iceberg 表的数量,适当调整这个参数。
+
+- **最短刷新时间**
+
+ 由 FE 配置项 `external_cache_refresh_time_minutes` 控制,单位为分钟。默认为 10
分钟。这是异步刷新,不会阻塞当前操作。
+
+### 全新的 Iceberg Manifest 缓存(4.0.3+)
+
+4.0.3 版本引入了全新的 **Manifest 缓存**,显著提升 Iceberg 表的查询性能。
+
+**缓存内容:**
+
+该缓存存储的是**已解析的** Iceberg Manifest 文件内容——具体是从 Manifest 文件中提取的 `DataFile` 和
`DeleteFile` 对象(而不是原始文件字节):
+
+- `DataFile` 对象:文件元数据,包括路径、分区值、统计信息等
+- `DeleteFile` 对象:Equality Delete 的删除元数据
+
+**性能优势:**
+
+:::tip 最佳实践
+为了获得最佳性能,**建议启用并结合 Doris Manifest Cache 与 Iceberg 原生 Manifest Cache**:
+
+```sql
+CREATE CATALOG iceberg_catalog PROPERTIES (
+ 'type' = 'iceberg',
+ ...
+ 'iceberg.manifest.cache.enable' = 'true', -- 启用 Doris Manifest Cache
Review Comment:
这个名字和原生的太像了,最好换一个
##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/lakehouse/meta-cache.md:
##########
@@ -255,6 +256,121 @@
3.0.7 版本后,配置项名称修改为 `external_cache_refresh_time_minutes`。默认值不变。
+## Iceberg 元数据缓存增强(4.0.3 版本起)
+
+:::tip 版本说明
+以下增强功能从 4.0.3 版本开始提供。对于早期版本,请参考上述基础缓存配置。
+:::
+
+从 4.0.3 版本开始,Doris 对 Iceberg 元数据缓存进行了重大改进,提供了更精细的可配置性、更好的性能和更清晰的语义。
+
+### 增强的 Iceberg 表/视图缓存
+
+4.0.3 版本中增强的表/视图缓存提供了更精细的控制和更好的缓存行为理解。
+
+**架构:**
+
+该缓存由 `IcebergMetadataCache` 维护,每个 Iceberg Catalog 都有自己独立的实例,包含 `tableCache` 和
`viewCache` 两个缓存。
+
+缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于 MTMV 场景)。
+
+**对数据可见性的影响:**
+
+Table Cache 控制使用哪个版本的 Iceberg 表元数据,这会影响:
+
+- **Schema(结构)**:`schemaId` 从缓存的表对象中获取。如果缓存中是旧的表对象,您将看到旧的 Schema(列定义)。
+- **Snapshot(快照)**:当前快照 ID 从缓存的表对象中获取。如果缓存中是旧的表对象,查询将使用旧快照,可能看不到最新数据。
+- **Partition(分区)**:分区信息使用缓存的表对象的元数据(分区规范、快照)加载。缓存越旧,分区信息越滞后。
+
+:::tip
+要实时看到最新的 Schema、Snapshot 和 Partition 信息,需要禁用表缓存,设置
`iceberg.table.meta.cache.ttl-second=0`。Schema 缓存不影响使用的版本——它只是为了性能缓存已解析的结果。
+:::
+
+**增强配置(4.0.3+):**
+
+- **Catalog 级别的 TTL 控制**
+
+ 从 4.0.3 版本开始,可以通过 `iceberg.table.meta.cache.ttl-second`(单位:秒)在 Catalog
级别配置 TTL。
+
+ ```sql
+ CREATE CATALOG iceberg_catalog PROPERTIES (
+ 'type' = 'iceberg',
+ ...
+ 'iceberg.table.meta.cache.ttl-second' = '7200' -- 2 小时
+ );
+ ```
+
+ 如未指定,则使用 FE 参数 `external_cache_expire_time_seconds_after_access`
的默认值(86400 秒)。
+
+ 设置为 `0` 可以禁用缓存,强制每次访问都重新获取元数据。
+
+- **最大缓存数量**
+
+ 由 FE 配置项 `max_external_table_cache_num` 控制,默认为 1000。
+
+ 可以根据 Iceberg 表的数量,适当调整这个参数。
+
+- **最短刷新时间**
+
+ 由 FE 配置项 `external_cache_refresh_time_minutes` 控制,单位为分钟。默认为 10
分钟。这是异步刷新,不会阻塞当前操作。
+
+### 全新的 Iceberg Manifest 缓存(4.0.3+)
+
+4.0.3 版本引入了全新的 **Manifest 缓存**,显著提升 Iceberg 表的查询性能。
+
+**缓存内容:**
+
+该缓存存储的是**已解析的** Iceberg Manifest 文件内容——具体是从 Manifest 文件中提取的 `DataFile` 和
`DeleteFile` 对象(而不是原始文件字节):
+
+- `DataFile` 对象:文件元数据,包括路径、分区值、统计信息等
+- `DeleteFile` 对象:Equality Delete 的删除元数据
+
+**性能优势:**
+
+:::tip 最佳实践
+为了获得最佳性能,**建议启用并结合 Doris Manifest Cache 与 Iceberg 原生 Manifest Cache**:
+
+```sql
+CREATE CATALOG iceberg_catalog PROPERTIES (
+ 'type' = 'iceberg',
+ ...
+ 'iceberg.manifest.cache.enable' = 'true', -- 启用 Doris Manifest Cache
Review Comment:
```suggestion
'iceberg.manifest.cache.enable' = 'true', -- 启用 Iceberg Manifest
Cache
```
##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/lakehouse/meta-cache.md:
##########
@@ -255,6 +256,121 @@
3.0.7 版本后,配置项名称修改为 `external_cache_refresh_time_minutes`。默认值不变。
+## Iceberg 元数据缓存增强(4.0.3 版本起)
+
+:::tip 版本说明
+以下增强功能从 4.0.3 版本开始提供。对于早期版本,请参考上述基础缓存配置。
+:::
+
+从 4.0.3 版本开始,Doris 对 Iceberg 元数据缓存进行了重大改进,提供了更精细的可配置性、更好的性能和更清晰的语义。
+
+### 增强的 Iceberg 表/视图缓存
+
+4.0.3 版本中增强的表/视图缓存提供了更精细的控制和更好的缓存行为理解。
+
+**架构:**
+
+该缓存由 `IcebergMetadataCache` 维护,每个 Iceberg Catalog 都有自己独立的实例,包含 `tableCache` 和
`viewCache` 两个缓存。
+
+缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于 MTMV 场景)。
+
+**对数据可见性的影响:**
+
+Table Cache 控制使用哪个版本的 Iceberg 表元数据,这会影响:
+
+- **Schema(结构)**:`schemaId` 从缓存的表对象中获取。如果缓存中是旧的表对象,您将看到旧的 Schema(列定义)。
+- **Snapshot(快照)**:当前快照 ID 从缓存的表对象中获取。如果缓存中是旧的表对象,查询将使用旧快照,可能看不到最新数据。
+- **Partition(分区)**:分区信息使用缓存的表对象的元数据(分区规范、快照)加载。缓存越旧,分区信息越滞后。
+
+:::tip
+要实时看到最新的 Schema、Snapshot 和 Partition 信息,需要禁用表缓存,设置
`iceberg.table.meta.cache.ttl-second=0`。Schema 缓存不影响使用的版本——它只是为了性能缓存已解析的结果。
+:::
+
+**增强配置(4.0.3+):**
+
+- **Catalog 级别的 TTL 控制**
+
+ 从 4.0.3 版本开始,可以通过 `iceberg.table.meta.cache.ttl-second`(单位:秒)在 Catalog
级别配置 TTL。
+
+ ```sql
+ CREATE CATALOG iceberg_catalog PROPERTIES (
+ 'type' = 'iceberg',
+ ...
+ 'iceberg.table.meta.cache.ttl-second' = '7200' -- 2 小时
+ );
+ ```
+
+ 如未指定,则使用 FE 参数 `external_cache_expire_time_seconds_after_access`
的默认值(86400 秒)。
+
+ 设置为 `0` 可以禁用缓存,强制每次访问都重新获取元数据。
+
+- **最大缓存数量**
+
+ 由 FE 配置项 `max_external_table_cache_num` 控制,默认为 1000。
+
+ 可以根据 Iceberg 表的数量,适当调整这个参数。
+
+- **最短刷新时间**
+
+ 由 FE 配置项 `external_cache_refresh_time_minutes` 控制,单位为分钟。默认为 10
分钟。这是异步刷新,不会阻塞当前操作。
Review Comment:
这个参数如果是0,和上面的参数有什么关系?
##########
i18n/zh-CN/docusaurus-plugin-content-docs/current/lakehouse/meta-cache.md:
##########
@@ -255,6 +256,121 @@
3.0.7 版本后,配置项名称修改为 `external_cache_refresh_time_minutes`。默认值不变。
+## Iceberg 元数据缓存增强(4.0.3 版本起)
+
+:::tip 版本说明
+以下增强功能从 4.0.3 版本开始提供。对于早期版本,请参考上述基础缓存配置。
+:::
+
+从 4.0.3 版本开始,Doris 对 Iceberg 元数据缓存进行了重大改进,提供了更精细的可配置性、更好的性能和更清晰的语义。
+
+### 增强的 Iceberg 表/视图缓存
+
+4.0.3 版本中增强的表/视图缓存提供了更精细的控制和更好的缓存行为理解。
+
+**架构:**
+
+该缓存由 `IcebergMetadataCache` 维护,每个 Iceberg Catalog 都有自己独立的实例,包含 `tableCache` 和
`viewCache` 两个缓存。
+
+缓存的表对象(`IcebergTableCacheValue`)中还包含 Snapshot 信息,该信息按需懒加载(主要用于 MTMV 场景)。
+
+**对数据可见性的影响:**
+
+Table Cache 控制使用哪个版本的 Iceberg 表元数据,这会影响:
+
+- **Schema(结构)**:`schemaId` 从缓存的表对象中获取。如果缓存中是旧的表对象,您将看到旧的 Schema(列定义)。
+- **Snapshot(快照)**:当前快照 ID 从缓存的表对象中获取。如果缓存中是旧的表对象,查询将使用旧快照,可能看不到最新数据。
+- **Partition(分区)**:分区信息使用缓存的表对象的元数据(分区规范、快照)加载。缓存越旧,分区信息越滞后。
+
+:::tip
+要实时看到最新的 Schema、Snapshot 和 Partition 信息,需要禁用表缓存,设置
`iceberg.table.meta.cache.ttl-second=0`。Schema 缓存不影响使用的版本——它只是为了性能缓存已解析的结果。
Review Comment:
Schema 缓存不影响使用的版本是啥意思?
--
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]