Browse Source

backend: do not commit unless there is a pending change

Reduce the nubmer of fsync etcd issues when the cluster is
idle.
Xiang Li 10 years ago
parent
commit
8bc59b66d1
1 changed files with 4 additions and 0 deletions
  1. 4 0
      storage/backend/batch_tx.go

+ 4 - 0
storage/backend/batch_tx.go

@@ -132,7 +132,11 @@ func (t *batchTx) commit(stop bool) {
 	var err error
 	// commit the last tx
 	if t.tx != nil {
+		if t.pending == 0 && !stop {
+			return
+		}
 		err = t.tx.Commit()
+		t.pending = 0
 		if err != nil {
 			log.Fatalf("storage: cannot commit tx (%s)", err)
 		}