Skip to content

shm List:memindex 为空时回落到 ART scan (#330) - #35

Merged
miaobyte merged 1 commit into
array2d:mainfrom
carsontung666:feat/issue-330-shm
Sep 22, 2026
Merged

miaobyte merged 1 commit into
array2d:mainfrom
carsontung666:feat/issue-330-shm

Conversation

@carsontung666

@carsontung666 carsontung666 commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

kvspaceShmListread_index_names 成功但 *oc==0 时回落到 ART scan。空 memindex 不是「没有子项」。

不含 xvalue head 改动(#329 仍是 OPEN RFC)。

@carsontung666

Copy link
Copy Markdown
Contributor Author

与 kvlang #352 对齐:已从本 PR 摘掉 #329 的 looks_head64 嗅探(src/xvalue.c)。剩下独立的一行:read_index_names 读到 0 个名字时回落到 ART scan。

@carsontung666 carsontung666 changed the title shm 实现 ByRef 与 wire-len Get (#330) shm List:memindex 空时回落到 ART scan (#330) Sep 21, 2026
read_index_names 成功但 *oc==0 时继续走 ART scan。空 memindex
不是「没有子项」。不含 xvalue head 改动。
@carsontung666 carsontung666 changed the title shm List:memindex 空时回落到 ART scan (#330) shm List:memindex 为空时回落到 ART scan (#330) Sep 21, 2026
@carsontung666

Copy link
Copy Markdown
Contributor Author

提交历史已 rebase 成一条:只留 List 在空 memindex 时回落到 ART scan,不再带 #329 的 xvalue 嗅探。

@miaobyte
miaobyte merged commit 07c4595 into array2d:main Sep 22, 2026
2 checks passed
@miaobyte

Copy link
Copy Markdown
Contributor

合了,谢谢 👍

评价:判据是对的——空 memindex ≠ 没有子项,之前的确会把「索引已建、成员还没写」的目录 list 成空。落点也干净:read_index_namesn <= 0 时返回 NULL 且 *oc = 0,所以 && *oc > 0 之后回落到 ART scan 既不会泄漏 *on,也不会交出半成品名单;把闸门加在调用点而不是去改 read_index_names 的返回值,是改动面最小的一种写法(+2/-2、单文件)。

一个建议:这种「边界回落」最好配一条回归用例进 tests/(空 memindex 的 list 应走 ART scan 拿到真实子项)。现在 CI 只跑 makeKVSPACE_BUILD_TESTS 默认 OFF,ctest 那几个用例(含你之前加的 test_handle_cache)实际上没在 CI 里跑过——行为改动目前没有自动化保护。

鼓励:#268 这条线从头跟到尾——#28 把 ResolveRef/GetByRef 落到 shm、#302 帧级缓存、#345 修 fpar 只写一次导致命中率恒为 0 的问题,还附上从 0% 到 80%+ 的逐 case 命中率表。能看出来是一步步量着做的,「先量再改、把数据贴出来」这个习惯很省大家的时间。继续 :)

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