Files
srdb/manifest/manifest_writer.go
bourdon ae87c38776 Initial commit: SRDB - High-performance LSM-Tree database
- Core engine with MemTable, SST, WAL
- B+Tree indexing for SST files  
- Leveled compaction strategy
- Multi-table database management
- Schema validation and secondary indexes
- Query builder with complex conditions
- Web UI with HTMX for data visualization
- Command-line tools for diagnostics
2025-10-08 06:38:28 +08:00

36 lines
495 B
Go

package manifest
import (
"io"
"sync"
)
// Writer MANIFEST 写入器
type Writer struct {
file io.Writer
mu sync.Mutex
}
// NewWriter 创建 MANIFEST 写入器
func NewWriter(file io.Writer) *Writer {
return &Writer{
file: file,
}
}
// WriteEdit 写入版本变更
func (w *Writer) WriteEdit(edit *VersionEdit) error {
w.mu.Lock()
defer w.mu.Unlock()
// 编码
data, err := edit.Encode()
if err != nil {
return err
}
// 写入
_, err = w.file.Write(data)
return err
}