core/rawdb: fsync the data file in freezer after write

This commit is contained in:
Gary Rong 2023-11-09 17:52:32 +08:00
parent 7072af726b
commit 95ffac5d82

View file

@ -182,12 +182,15 @@ func (batch *freezerTableBatch) maybeCommit() error {
// commit writes the batched items to the backing freezerTable.
func (batch *freezerTableBatch) commit() error {
// Write data. The head file is not fsync'd after write to avoid
// expensive overhead.
// Write data. The head file is fsync'd after write to ensure the
// data is truly transferred to disk.
_, err := batch.t.head.Write(batch.dataBuffer)
if err != nil {
return err
}
if err := batch.t.head.Sync(); err != nil {
return err
}
dataSize := int64(len(batch.dataBuffer))
batch.dataBuffer = batch.dataBuffer[:0]