Przeglądaj źródła

refactor: 优化常量组织和注释说明

改进内容:
1. 常量重组:
   - DefaultDirtyThreshold 移到 WAL const 块 (逻辑更清晰)
   - BufferPool 和 WAL/自动提交配置分离

2. 注释完善:
   - DefaultDirtyThreshold: 明确说明是 BufferPool 级别计数
   - DefaultAutoCommitDelay: 添加适用场景和禁用方法说明
   - 统一使用中文标点符号

3. 代码组织:
   - 相关常量放在一起,便于维护
   - 注释更详细,减少误解

未实施的复杂改动:
- ❌ 引入 Tx 事务对象 (架构改造太大)
- ❌ 后台 goroutine 轮询 (增加复杂度)
- ❌ 事务级脏页去重计数 (收益不明显)

保持当前基于 BufferPool 的简单机制,已验证可靠。
yl32940 1 miesiąc temu
rodzic
commit
853104ae94
1 zmienionych plików z 11 dodań i 8 usunięć
  1. 11 8
      DB/core/const.go

+ 11 - 8
DB/core/const.go

@@ -39,21 +39,24 @@ const (
 	// - 推荐配置: 1000-5000页 (16-78MB)
 	// - 高性能场景: 10000+页 (156MB+)
 	DefaultBufferPoolCapacity = 1000
+)
 
+// =============================================================================
+// WAL 与自动提交配置
+// =============================================================================
+const (
 	// DefaultDirtyThreshold 脏页阈值 (页数)
-	// 脏页超过此数量时自动触发 Commit 刷盘, 防止内存暴涨和数据丢失
-	// 500 页 × 16KB = ~8MB (平衡安全性、性能和内存)
+	// BufferPool 中脏页数量超过此值时,自动触发 Commit 刷盘
+	// 注意: 这是 BufferPool 级别的计数,不是事务级别
+	// - 500 页 × 16KB = ~8MB (平衡安全性、性能和内存)
 	// - 断电/崩溃时最多丢失 8MB 数据 (约 10,000 行)
 	// - 性能接近最优 (比 2000 页仅慢 1.5%)
 	// - 内存占用合理 (比 2000 页减少 75%)
 	DefaultDirtyThreshold = 500
-)
 
-// =============================================================================
-// WAL 与自动提交配置
-// =============================================================================
-const (
 	// DefaultAutoCommitDelay 默认防抖自动提交延迟
-	// 每次写操作重置计时器, 停止操作后该时间内无新操作则自动 Commit
+	// 每次写操作重置计时器,停止操作后该时间内无新操作则自动 Commit
+	// - 适用场景: 低频写入、交互式应用
+	// - 禁用方法: 设置为 0 可完全禁用防抖,仅靠脏页阈值触发
 	DefaultAutoCommitDelay = time.Second
 )