重构:简化 RecordIndex 结构体
删除独立的 IndexHeader 结构体,将 magic 和 version 字段直接放入 RecordIndex,减少不必要的嵌套层级。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
27
index.go
27
index.go
@@ -21,19 +21,14 @@ const (
|
||||
IndexEntrySize = 8 // Offset(8)
|
||||
)
|
||||
|
||||
// IndexHeader 索引文件头部
|
||||
type IndexHeader struct {
|
||||
Magic uint32 // 魔数,用于识别索引文件
|
||||
Version uint32 // 版本号
|
||||
}
|
||||
|
||||
// RecordIndex 记录索引管理器
|
||||
type RecordIndex struct {
|
||||
logPath string // 日志文件路径
|
||||
indexPath string // 索引文件路径
|
||||
offsets []int64 // 内存中的偏移索引
|
||||
header IndexHeader // 索引文件头部
|
||||
indexFile *os.File // 索引文件句柄(用于追加写入)
|
||||
logPath string // 日志文件路径
|
||||
indexPath string // 索引文件路径
|
||||
offsets []int64 // 内存中的偏移索引
|
||||
magic uint32 // 魔数,用于识别索引文件
|
||||
version uint32 // 版本号
|
||||
indexFile *os.File // 索引文件句柄(用于追加写入)
|
||||
}
|
||||
|
||||
// NewRecordIndex 创建或加载记录索引
|
||||
@@ -45,10 +40,8 @@ func NewRecordIndex(logPath string) (*RecordIndex, error) {
|
||||
logPath: logPath,
|
||||
indexPath: indexPath,
|
||||
offsets: make([]int64, 0, 1024),
|
||||
header: IndexHeader{
|
||||
Magic: IndexMagic,
|
||||
Version: IndexVersion,
|
||||
},
|
||||
magic: IndexMagic,
|
||||
version: IndexVersion,
|
||||
}
|
||||
|
||||
// 启动时总是从日志文件重建索引
|
||||
@@ -122,8 +115,8 @@ func (ri *RecordIndex) save() error {
|
||||
|
||||
// 写入头部
|
||||
headerBuf := make([]byte, IndexHeaderSize)
|
||||
binary.LittleEndian.PutUint32(headerBuf[0:4], ri.header.Magic)
|
||||
binary.LittleEndian.PutUint32(headerBuf[4:8], ri.header.Version)
|
||||
binary.LittleEndian.PutUint32(headerBuf[0:4], ri.magic)
|
||||
binary.LittleEndian.PutUint32(headerBuf[4:8], ri.version)
|
||||
|
||||
if _, err := f.Write(headerBuf); err != nil {
|
||||
return fmt.Errorf("write header: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user