V1.1.0
版本信息
-
发布时间:2026 年 1 月 30 日
-
版本号:V1.1.0
-
RPM 版本号:seekdb-1.1.0.0-100000142026013001
新特性
MAC 编译支持
自 V1.1.0 版本起,seekdb 支持在 MacOS 15 及以上系统版本进行原生编译与本地开发调试。
关于 Mac 下安装 seekdb 的详细介绍,参见 通过包管理工具部署 seekdb。
Fork Table(实验特性)
seekdb V1.1.0 版本新增 Fork Table 功能。不同于传统 CTAS 的全量数据拷贝,Fork Table 提供一种与数据量无关的快速复制方式。基于表级别存储复用和写时复制的技术,在满足一致性语义的前提下,尽可能复用既有的数据组织与存储结构,避免全量拷贝,从而显著降低创建耗时与资源消耗。
关于 Fork Table 的详细介绍,参见 Fork Table。
在 V1.1.0 版本中,Fork Table 为实验特性,请谨慎用于生产环境。将在后续版本继续完善为正式生产特性。
典型使用场景:
-
AI Coding 安全测试:AI 代码助手会根据表结构和样本数据生成 SQL、ORM 代码、数据接口,也有可能需要对数据表结构和数据进行修改。通过 Fork Table 为 AI Coding 提供“安全的测试数据环境”,AI 可以在接近真实的数据结构与数据分布上学习和试验,确认无问题后,再将变更应用于生产。
-
AI 知识库多版本管理:线上知识库在服务用户,后台需要更新大量 FAQ/文档条目的场景,因新知识质量未完全验证,不敢直接应用于线上,此时需要保留多版本知识。通过 Fork Table 可快速复制线上知识库,后台基于新表修改不影响在线服务,新知识验证通过后再通过 rename table 推进新版本作为线上版本。
-
知识共享与私有化管理:当需要给多个客户/业务线提供 AI 知识库时,可能存在共享的基础知识,不同客户/业务还可能存在部分差异化的内容。该场景可以通过 Fork Table 从“公共知识主表”fork 出多个新表,然后对每个 fork 表单独加私有文档和个性化修改,单独控制权限和发布节奏。
-
A/B TEST:为同一份生产数据快速创建多个实验版本,用于不同索引/参数/SQL 写法的效果对比,避免全量拷贝带来的时间与成本开销。
-
数据表变更预验证(Offline DDL):涉及字段类型变更、表结构调整等高风险操作时,可先 Fork 出副本进行预演与校验,避免直接操作原表引入不可预期的业务影响。
-
CI/CD 验证:**将 Fork Table 步骤添加到 CI/CD 流程中,代码变更发布到生产环境前,可基于生产数据快照进行更贴近真实场景的验证,同时不影响生产数据与业务。
语法:FORK TABLE source_table TO destination_table;
效果:基于 source_table 的数据快照,创建 destination_table 新表;两张表均可作为独立的表对象进行读写,互不干扰。也可以通过 drop/rename table 实现数据版本回滚或版本推进。
性能:Fork 耗时低至百毫秒级。
存储空间优化
seekdb V1.1.0 版本针对数据存储、Clog 存储、系统日志存储,全面优化了最低资源规格,进一步降低开发者使用门槛。具体包括:
-
数据盘分配策略优化:seekdb 启动时会预分配数据盘空间,在轻负载场景下实际仅占用几十 MB,配置过高容易造成磁盘浪费,因此 seekdb V1.1.0 版本将数据盘默认大小由 2GB 调整为 32MB。同时自动扩容默认步长由为 2GB 调整为默认使用系统自适应扩容步长,即当 datafile < 1GB 时,使用当前的 datafile 作为扩容步长进行倍增,当数据盘大小增长至 1GB 后,以 1GB 为步长进行扩容。有需要的情况下,也可通过
datafile_size/datafile_next配置项进行策略调整。 -
CLOG 磁盘占用优化:此前 seekdb 的 CLOG 磁盘默认配置为 10GB(部分部署工具/容器镜像会默认调整为 2GB),实例启动时预分配对应的日志空间,对小规格环境不够友好。新版本优化了日志空间的分配与回收策略,默认 CLOG 磁盘大小调整为 memory_limit 的 1/2 且下限为 2GB;同时定时推进 checkpoint SCN,尽可能回收旧日志,使 CLOG 磁盘水位保持在较低水平。对于大规格环境,如需保留更多 CLOG 日志,可通过调整
log_disk_size/log_disk_utilization_threshold配置项实现。 -
系统日志默认磁盘占用优化:seekdb V1.1.0 版本将默认的系统日志级别从 WDIAG 调整为 WARN,并将默认保留的日志个数由 4 个变更为 2个,以减少日志输出量,降低存储开销,提升系统性能。seekdb 支持七种日志级别,按打印频率由高到低依次为:
DEBUG → TRACE → WDIAG → EDIAG → INFO → WARN → ERROR。DEBUG、TRACE、WDIAG、EDIAG 为诊断类日志,粒度较细,主要用于开发和调试场景,适合测试与问题排查;INFO、WARN、ERROR 面向 DBA 及运维人员,用于监控系统状态、提示异常及记录关键错误,具备更高的实用性和可读性。为避免非必要日志输出影响性能与存储,本次发布将默认日志级别调整为 WARN。用户可根据实际需求,通过syslog_level配置项变更系统日志级别,也可通过max_syslog_file_count配置项调整最多保留的日志个数。
内存管理优化
seekdb V1.1.0 版本优化了内存管理策略,以适应不同部署环境(如大/小内 存规格、独立/非独立部署)的需求。具体优化为:
-
动态内存使用策略:通过
memory_limit参数控制 seekdb 的内存使用上限,默认值调整为 2GB。在正常运行时,进程将尽量不超出该限制;但在转储合并、数据导入、排序等临时高内存消耗场景中,若系统仍有可用内存,允许短暂超限,以提升小规格环境下的系统稳定性与处理能力。对于大数据量或高性能要求的场景,建议根据实际需求调高该值。 -
新增可配置的内存硬限制机制:引入
memory_hard_limit配置项,用于设定 seekdb 可使用的最大内存总量。默认值为 0,表示以系统总内存的 90% 作为硬性上限,并支持按需调整。此机制可防止因动态内存申请导致资源过度占用,特别适用于非独立部署环境,有效避免对共存组件造成影响。
配置项变更
| 配置项名称 | 变更类型 | 变更描述 |
|---|---|---|
| _advance_checkpoint_interval | 新增 | 用于控制 CLOG 定时推进 checkpoint 的频率,默认为 10m,表示十分钟推进一次。设置为 0 时表示关闭该功能。 |
| memory_hard_limit | 新增 | 用于控制 seekdb 的最大可用内存,默认值为 0,表示使用系统内存的 90% 作为内存硬限制。 |
| memory_limit | 变更默认值 | 表示 seekdb 内存软限制,默认值从 0M 变更为 2G。 |
| syslog_level | 变更默认值 | 表示日志打印级别,默认值由 WDIAG 变更为 WARN。 |
| log_disk_size | 变更默认值 | 表示 CLOG 文件可使用的磁盘空间上限,默认值由 10G 调整为 0。0 代表使用 memory_limit 的 1/2,下限为 2G。 |
| log_disk_utilization_threshold | 变更默认值 | 表示 CLOG 日志盘利用率(相对 log_disk_size)的阈值,当达到该阈值时开始触发回收日志文件。默认值由 80 调整为 0,0 代表采用立即回收旧日志的策略。 |
| datafile_size | 变更默认值 | 表示数据盘的初始空间,默认值由 2G 变更为 32M。 |
| datafile_next | 变更默认值 | 表示数据盘自动扩容的步长,默认值由 2G 变更为 0,0 代表当 datafile < 1GB 时,使用当前的 datafile 作为扩容步长进行倍增,当数据盘大小增长至 1GB 后,以 1GB 为步长进行扩容。 |
| max_syslog_file_count | 变更默认值 | 表示默认保留的系统日志文件数量,默认值由 4 变更为 2。 |
缺陷修复
向量索引修复
- 修复向量索引中定时器扫描可能导致 CPU 飙升的问题 (176a6e13)
- 修复 IVF 相似度数据丢失问题 (f443e5ac)
- ObPluginVectorIndexHelper 模块使用内存硬限制 (e9dd7c54)
- 支持在
DBMS_HYBRID_SEARCH.GET_SQL中使用表达式 (ae256978)
语义索引修复
其他修复
- 减少 IK 解析器加载时间 (87ab54c3)
- 修复旁路导入事务状态不匹配的问题 (a0511d92)
- 修复 st_intersects/st_covers 性能问题 (fc805e45)
- 修复存储优化相关的问题 (019838e0)
- 修复自增序列生命周期不合理的问题 (94228ef3)
- 修复合并状态异常的问题 (27736694)
- 修复 DAG 任务错误码被 ob cancel 覆盖的问题 (8252547f)
- 在 SSTable 构建期间读取宏块之前添加 fsync (7f8bddf3)
- SQL 内存跟踪器使用硬内存限制 (a27dea95)
- 使用 ObLinkQueueThreadPool 重构 IO 回调线程 (c42e5f71)
升级说明
不支持从 1.0.x 版本原地升级到 1.1.0 版本。如有升级需求,需要通过 OBDUMPER/OBLOADER 或 mysqldump 进行逻辑迁移。
详细的升级操作,参见:
周边配套
| 类别 | 组件名称 | 配套版本 | 说明 |
|---|---|---|---|
| SDK | pyseekdb | V1.1.0 | |
| SDK | seekdb-js | V1.1.0 | |
| 数据导入导出工具 | OBDUMPER/OBLOADER | V4.3.5 | 暂不支持旁路导入 |
| 白屏开发工具 | ODC | V4.4.1 BP1 |