跳到主要内容
版本:V1.1.0

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)

语义索引修复

  • 修复语义索引创建失败以及超长数据嵌入失败的问题 (c9495bac)
  • 修复混合向量索引调用 LLM 错误 (222f653f)

其他修复

  • 减少 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 进行逻辑迁移。

详细的升级操作,参见:

周边配套

类别组件名称配套版本说明
SDKpyseekdbV1.1.0
SDKseekdb-jsV1.1.0
数据导入导出工具OBDUMPER/OBLOADERV4.3.5暂不支持旁路导入
白屏开发工具ODCV4.4.1 BP1