| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package core
- import (
- "time"
- )
- var Magic = [4]byte{'T', 'S', 'D', 'B'}
- // =============================================================================
- // 页面与存储常量
- // =============================================================================
- const (
- // Version 数据库文件格式版本
- Version = 1
- // PageSize 数据页大小 (16KB) — 索引页、数据页、WAL 页统一使用
- PageSize uint32 = 4096 * 4
- // PageSize4K 头页大小 (4KB) — HeaderPage、TablePage 元数据等固定页
- PageSize4K = 4096
- // TableNameSize 表名最大字节数
- TableNameSize = 24
- // MinFieldAllocateSize 字段定义最小预分配空间 (字节)
- MinFieldAllocateSize = 256
- // MaxFieldSize 单次创建字段最大数量
- MaxFieldSize = 256
- )
- // =============================================================================
- // BufferPool 配置
- // =============================================================================
- const (
- // DefaultBufferPoolCapacity 默认缓冲池容量 (页数)
- // 50000 页 × 16KB = ~800MB
- DefaultBufferPoolCapacity = 50000
- // DefaultDirtyThreshold 脏页阈值 (页数)
- // 脏页超过此数量时自动触发 Commit 刷盘, 防止内存暴涨
- // 2000 页 × 16KB = ~32MB
- DefaultDirtyThreshold = 2000
- )
- // =============================================================================
- // WAL 与自动提交配置
- // =============================================================================
- const (
- // DefaultAutoCommitDelay 默认防抖自动提交延迟
- // 每次写操作重置计时器, 停止操作后该时间内无新操作则自动 Commit
- DefaultAutoCommitDelay = time.Second
- )
|