diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-07-01 00:11:08 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-07-01 00:11:08 +0900 |
| commit | a44fd4cf3a0c3d7ae33b7664341a0a9bff07aaaa (patch) | |
| tree | 5c3152e7df8b16b207d6ebd69dfaf205765a8044 /docs/implementation-status.md | |
| parent | e3db01cd487c5b666366885367c8bfff4a6a09da (diff) | |
大規模履歴向けread_messages pagination対応
Diffstat (limited to 'docs/implementation-status.md')
| -rw-r--r-- | docs/implementation-status.md | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/docs/implementation-status.md b/docs/implementation-status.md index 52c037b..d0f6d8f 100644 --- a/docs/implementation-status.md +++ b/docs/implementation-status.md @@ -35,6 +35,11 @@ P1のgram bucket hash table化後、Releaseの32KiB write p50は128.242msから5 1KiB 0.217ms、8KiB 1.299ms、32KiB 3.948ms、1MiB 34.988msで、payload増加に対する 二次的悪化がないことを確認しました。 +P2の大規模履歴試験では、1 session 1万件を10ページ・34.2msで全件取得し、restart +152.0ms、rebuild 109.0ms、peak working set 18.1MiBでした。100 session 5万件では +100ページ・159.0ms、restart 3.22s、rebuild 868.4ms、peak working set 48.9MiBで、 +重複・欠落はなく最大応答も210,173 bytes以下でした。 + 実行コマンド: ```powershell @@ -88,7 +93,7 @@ ctest --preset windows-vs2026-asan | metadata `tool_call_id` | ✅ 実装済 | ⬜ 未作成 | ⬜ 未実施 | round-tripと上限境界が未確認 | | metadata `tags` | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | 日本語tag検索をDomainで確認。32件/128 byte境界は未確認 | | metadata `memory_tier` | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | enumとMCP入力を確認。自動ライフサイクルは対象外 | -| `read_messages` 全履歴取得 | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | 1件/0件を確認 | +| `read_messages` keyset pagination | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | 既定100、最大1000、8MiB応答境界、restart/rebuild cursor継続 | | timestamp、message_id安定順序 | ✅ 実装済 | ⬜ 未作成 | ⬜ 未実施 | 複数件・同一timestampの順序試験が必要 | | `search_messages` content検索 | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | ASCII大小文字とMCP検索を確認 | | 日本語・tag検索 | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | Domainで確認 | @@ -136,7 +141,7 @@ ctest --preset windows-vs2026-asan | write時索引更新 | ✅ 実装済 | ✅ MCP検索で確認 | ✅ Debug/Release | index allocation失敗のfault injectionなし | | compaction後索引再構築 | ✅ 実装済 | 🟡 rebuild後health/readのみ | 🟡 一部実施済 | rebuild直後のsearch専用試験が必要 | | `message_id -> entry` hash map | ⬜ 未実装 | ⬜ 未作成 | ⬜ 未実施 | 現在は配列の線形探索 | -| `session_id -> message list` index | ⬜ 未実装 | ⬜ 未作成 | ⬜ 未実施 | 現在は全entry走査 | +| `session_id -> message list` index | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | open addressing session mapと安定順序vector | | Unicode normalization/full case folding | ➖ v1対象外 | ➖ 該当なし | ➖ 該当なし | NFKC、非ASCII大文字小文字変換は未対応 | ## バイナリログと耐久性 @@ -239,7 +244,7 @@ ctest --preset windows-vs2026-asan | background worker | ➖ 非採用 | 単一stdio・単一スレッドの初期実装に限定 | | 自動要約、tier昇格、discard削除 | ➖ 対象外 | LLMライフサイクルは6 tool完成後の別機能 | | encryption at rest | ➖ 対象外 | 鍵管理を含む別設計が必要 | -| pagination | ➖ 対象外 | `read_messages` は現状フル履歴契約 | +| search pagination | ➖ 対象外 | `read_messages`のみkeyset pagination対応 | | 複数writer/network server | ➖ 対象外 | data directoryを単一プロセスが排他所有 | | SSD/バックアップの安全消去 | ➖ 対象外 | filesystem compactionだけでは保証不能 | | Linux/macOS | 🟡 backend実装・未保証 | POSIX file/lock/clock/random実装あり。CI・実機検証は未実施 | |
