Skip to content

🐯 BanGD [schema] storage/istorage/IWal.go #115

@github-actions

Description

@github-actions

来自 #112 的架构级评审建议。不阻塞合入,仅供参考是否有更好的架构解法。

💡 [建议 · schema] storage/istorage/IWal.go:1

问题根因:接口 IWal 被删除,但 istorage.LogEntry 结构体保留(因 SSTable 共用)。如果将来引入新的 WAL 实现(例如基于 Raft 日志的本地缓存 WAL),需要重新定义接口。当前清理后,istorage 包中无任何 WAL 相关契约,属于合理清理,但建议确认 LogEntry 的归属包是否合适——它同时服务于 WAL(已删除)和 SSTable,也许应移入更中立的包。

为什么低级解法不够:不做改动目前也没问题,LogEntry 的当前位置对现有代码无害。

架构级方案:评估是否将 istorage.LogEntry 重命名为 SSTableEntry 或移入 zstorage 包(仅被 SSTable 和 MemTable 的 collectAllEntry 使用)。这不是当前阻塞问题,而是长期代码组织建议。

代价/收益:重构代价低,收益是语义更精确;但可能影响其他正在引用 istorage.LogEntry 的模块(如有),需确认调用方。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions