Browse Source

Merge pull request #6453 from vimalk78/wal-optimize-marshal-outside-lock

wal/wal.go: optimized WAL.SaveSnapshot to do Marshal outside the mutex lock
Anthony Romano 9 years ago
parent
commit
c26ebe3262
1 changed files with 2 additions and 1 deletions
  1. 2 1
      wal/wal.go

+ 2 - 1
wal/wal.go

@@ -579,10 +579,11 @@ func (w *WAL) Save(st raftpb.HardState, ents []raftpb.Entry) error {
 }
 
 func (w *WAL) SaveSnapshot(e walpb.Snapshot) error {
+	b := pbutil.MustMarshal(&e)
+
 	w.mu.Lock()
 	defer w.mu.Unlock()
 
-	b := pbutil.MustMarshal(&e)
 	rec := &walpb.Record{Type: snapshotType, Data: b}
 	if err := w.encoder.encode(rec); err != nil {
 		return err