Browse Source

wal: Flush -> Sync

Yicheng Qin 11 years ago
parent
commit
28634fce47
3 changed files with 9 additions and 6 deletions
  1. 1 1
      etcd/participant.go
  2. 6 3
      wal/wal.go
  3. 2 2
      wal/wal_test.go

+ 1 - 1
etcd/participant.go

@@ -369,7 +369,7 @@ func (p *participant) save(ents []raft.Entry, state raft.State) {
 	if state != raft.EmptyState {
 		p.w.SaveState(&state)
 	}
-	p.w.Flush()
+	p.w.Sync()
 
 }
 

+ 6 - 3
wal/wal.go

@@ -65,13 +65,16 @@ func Open(path string) (*WAL, error) {
 	return newWAL(f), nil
 }
 
-func (w *WAL) Flush() error {
-	return w.bw.Flush()
+func (w *WAL) Sync() error {
+	if err := w.bw.Flush(); err != nil {
+		return err
+	}
+	return w.f.Sync()
 }
 
 func (w *WAL) Close() {
 	if w.f != nil {
-		w.Flush()
+		w.Sync()
 		w.f.Close()
 	}
 }

+ 2 - 2
wal/wal_test.go

@@ -108,8 +108,8 @@ func TestSaveInfo(t *testing.T) {
 		t.Errorf("err = %v, want cannot write info at 8, expect 0", err)
 	}
 
-	// flush to disk
-	w.Flush()
+	// sync to disk
+	w.Sync()
 	err = w.SaveInfo(id)
 	if err == nil || err.Error() != "cannot write info at 24, expect 0" {
 		t.Errorf("err = %v, want cannot write info at 8, expect 0", err)