Skip to content

feat: upgrade cold knowledge storage to TriviumDB 0.8.5 and harden flush lifecycle - #463

Merged
lioensky merged 1 commit into
lioensky:mainfrom
YoKONCy:chore/upgrade-triviumdb-0.8.5
Sep 3, 2026
Merged

lioensky merged 1 commit into
lioensky:mainfrom
YoKONCy:chore/upgrade-triviumdb-0.8.5

Conversation

@YoKONCy

@YoKONCy YoKONCy commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

概述 (Overview)

本 PR 将冷知识库向量存储引擎升级至 TriviumDB 0.8.5,并对存储生命周期与落盘(Flush)机制进行了全面加固。


主要更新与加固点 (Key Changes & Hardening)

  1. 依赖升级

    • 升级 \package.json\ 中的 \ riviumdb\ 依赖至 ^0.8.5\。
    • 同步更新 \docs/CONFIGURATION.md\ 文档版本说明。
  2. 解决文件入库后的落盘延迟(Queue Drain Flush)

    • 原先在 \ lushEveryFiles = 10\ 策略下,队列排空后若积攒文件不足 10 个,缺少收尾 Flush 逻辑,导致 .tdb\ 文件需等待 15 分钟空闲轮询清理或关机退出时才刷新至磁盘。
    • 在 \TDBKnowledge.js\ 的 _runQueueWorker\ 的 \ inally\ 块中加入队列排空即时收尾刷新(_safeBuildTextIndex\ 与 _safeFlush\),文件入库完毕后 .tdb\ 秒级可见。
  3. 生命周期与安全关闭加固

    • 在 _closeLibraryUnlocked\ 中,库在卸载或进程退出前依次执行 _safeBuildTextIndex\ ➔ _safeCompact\ ➔ _safeFlush\ ➔ \close\,杜绝索引丢失或未落盘数据残留。
  4. TriviumDB 0.8.5 旗舰特性集成

    • \compact()\ 碎片整理:引入主动整理 WAL 日志与墓碑内存的机制,并对外暴露 \compactLibrary(library)\。
    • **\searchHybrid\ 原生 \payload_filter**:检索直接对接底层 Rust 预过滤,大幅提升过滤检索效率。
    • AC 自动机精准关键词倒排 (\indexKeyword):为文档主标题建立实体快速倒排索引。
    • 子图提取与 TQL 支持:新增 \subgraph(library, sourceId, options)\ 与 \queryTql(library, query)\ 供高级插件与管理面板调用。
  5. 全量自动化测试套件

    • 新增 \ ests/tdbKnowledge085.test.js\,覆盖上述所有新特性与落盘生命周期校验,12 项测试全部通过。

…ush lifecycle

- Upgrade triviumdb to 0.8.5 in package.json
- Add queue drain flush in _runQueueWorker to ensure .tdb files persist immediately upon ingest
- Harden library lifecycle: trigger buildTextIndex, compact, and flush before library close
- Integrate TriviumDB 0.8.5 compact() for WAL and memory defragmentation
- Pass payload_filter to searchHybrid for native pre-filtering
- Register document and chunk titles via AC automaton indexKeyword
- Expose subgraph, queryTql, and compactLibrary on TDBKnowledgeManager
- Add integration test suite tests/tdbKnowledge085.test.js
@lioensky
lioensky merged commit e3342a5 into lioensky:main Sep 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants