swarm/shed: unexport Meter, remove Mutex for quit channel

This commit is contained in:
Anton Evangelatov 2018-12-03 14:24:20 +01:00
parent 8ba97a02b2
commit 3934490e12

View file

@ -27,7 +27,6 @@ import (
"fmt" "fmt"
"strconv" "strconv"
"strings" "strings"
"sync"
"time" "time"
"github.com/ethereum/go-ethereum/metrics" "github.com/ethereum/go-ethereum/metrics"
@ -57,7 +56,6 @@ type DB struct {
diskReadMeter metrics.Meter // Meter for measuring the effective amount of data read diskReadMeter metrics.Meter // Meter for measuring the effective amount of data read
diskWriteMeter metrics.Meter // Meter for measuring the effective amount of data written diskWriteMeter metrics.Meter // Meter for measuring the effective amount of data written
quitLock sync.Mutex // Mutex protecting the quit channel access
quitChan chan chan error // Quit channel to stop the metrics collection before closing the database quitChan chan chan error // Quit channel to stop the metrics collection before closing the database
} }
@ -89,7 +87,13 @@ func NewDB(path string, metricsPrefix string) (db *DB, err error) {
} }
} }
db.Meter(metricsPrefix) // Configure meters for DB
db.configure(metricsPrefix)
// Create a quit channel for the periodic metrics collector and run it
db.quitChan = make(chan chan error)
go db.meter(10 * time.Second)
return db, nil return db, nil
} }
@ -155,8 +159,8 @@ func (db *DB) Close() (err error) {
return db.ldb.Close() return db.ldb.Close()
} }
// Meter configures the database metrics collectors // Configure configures the database metrics collectors
func (db *DB) Meter(prefix string) { func (db *DB) configure(prefix string) {
// Initialize all the metrics collector at the requested prefix // Initialize all the metrics collector at the requested prefix
db.compTimeMeter = metrics.NewRegisteredMeter(prefix+"compact/time", nil) db.compTimeMeter = metrics.NewRegisteredMeter(prefix+"compact/time", nil)
db.compReadMeter = metrics.NewRegisteredMeter(prefix+"compact/input", nil) db.compReadMeter = metrics.NewRegisteredMeter(prefix+"compact/input", nil)
@ -165,13 +169,6 @@ func (db *DB) Meter(prefix string) {
db.diskWriteMeter = metrics.NewRegisteredMeter(prefix+"disk/write", nil) db.diskWriteMeter = metrics.NewRegisteredMeter(prefix+"disk/write", nil)
db.writeDelayMeter = metrics.NewRegisteredMeter(prefix+"compact/writedelay/duration", nil) db.writeDelayMeter = metrics.NewRegisteredMeter(prefix+"compact/writedelay/duration", nil)
db.writeDelayNMeter = metrics.NewRegisteredMeter(prefix+"compact/writedelay/counter", nil) db.writeDelayNMeter = metrics.NewRegisteredMeter(prefix+"compact/writedelay/counter", nil)
// Create a quit channel for the periodic collector and run it
db.quitLock.Lock()
db.quitChan = make(chan chan error)
db.quitLock.Unlock()
go db.meter(10 * time.Second)
} }
func (db *DB) meter(refresh time.Duration) { func (db *DB) meter(refresh time.Duration) {