Command line arg for changing the number of background updaters

Default number of background updaters raised to 4
This commit is contained in:
Alvaro Saurin committed 2015-05-26 10:53:12 +02:00
1 parent 72b55c82ec
commit 6fa2f2142f
2 files changed
+13 -3

No files matched your search

+10 -3
View File
@@ -19,8 +19,8 @@ const (
DefaultLocalDomain = "weave.local." // The default name used for the local domain
DefaultRefreshInterval = int(localTTL) // Period for background updates with mDNS
DefaultRelevantTime = 60 // When to forget info about remote info if nobody asks...
DefaultNumUpdaters = 4 // Default number of background updaters
defaultNumUpdaters = 1 // Number of background updaters
defaultRefreshMailbox = 1000 // Number of on-the-fly background queries
defaultRemoteIdent = "weave:remote" // Ident used for info obtained from mDNS
)
@@ -423,6 +423,8 @@ type ZoneConfig struct {
Iface *net.Interface
// Refresh interval for local names in the zone database (disabled by default) (in seconds)
RefreshInterval int
// Number of background updaters for names
RefreshWorkers int
// Forget about remote info if nobody asks for it in this time (in seconds)
RelevantTime int
// Max pending refresh requests
@@ -455,6 +457,7 @@ type zoneDb struct {
refreshCloseChan chan bool
refreshWg sync.WaitGroup
refreshInterval time.Duration
refreshWorkers int
}
// Create a new zone database
@@ -475,6 +478,7 @@ func NewZoneDb(config ZoneConfig) (zone *zoneDb, err error) {
refreshChan: make(chan refreshRequest, maxRefreshRequests),
refreshSchedChan: make(chan refreshRequest, maxRefreshRequests),
refreshCloseChan: make(chan bool),
refreshWorkers: DefaultNumUpdaters,
}
// fix the default configuration parameters
@@ -490,6 +494,9 @@ func NewZoneDb(config ZoneConfig) (zone *zoneDb, err error) {
if config.RelevantTime > 0 {
zone.relevantLimit = time.Duration(config.RelevantTime) * time.Second
}
if config.RefreshWorkers > 0 {
zone.refreshWorkers = config.RefreshWorkers
}
// Create the mDNS client and server
if zone.mdnsCli == nil {
@@ -523,8 +530,8 @@ func (zone *zoneDb) Start() (err error) {
// Start some name refreshers...
if zone.refreshInterval > 0 {
Info.Printf("[zonedb] Starting %d background name updaters", defaultNumUpdaters)
for i := 0; i < defaultNumUpdaters; i++ {
Info.Printf("[zonedb] Starting %d background name updaters", zone.refreshWorkers)
for i := 0; i < zone.refreshWorkers; i++ {
zone.refreshWg.Add(1)
go zone.updater(i)
}
+3
View File
@@ -25,6 +25,7 @@ func main() {
timeout int
udpbuf int
refreshInterval int
refreshWorkers int
relevantTime int
cacheLen int
cacheDisabled bool
@@ -45,6 +46,7 @@ func main() {
flag.BoolVar(&debug, "debug", false, "output debugging info to stderr")
// advanced options
flag.IntVar(&refreshInterval, "refresh", weavedns.DefaultRefreshInterval, "refresh interval (in secs) for local names (0=disable)")
flag.IntVar(&refreshWorkers, "refresh-workers", weavedns.DefaultNumUpdaters, "default number of background updaters")
flag.IntVar(&relevantTime, "relevant", weavedns.DefaultRelevantTime, "life time for info in the absence of queries (in secs)")
flag.IntVar(&udpbuf, "udpbuf", weavedns.DefaultUDPBuflen, "UDP buffer length")
flag.IntVar(&timeout, "timeout", weavedns.DefaultTimeout, "timeout for resolutions (in millisecs)")
@@ -76,6 +78,7 @@ func main() {
Domain: domain,
Iface: iface,
RefreshInterval: refreshInterval,
RefreshWorkers: refreshWorkers,
RelevantTime: relevantTime,
}
zone, err := weavedns.NewZoneDb(zoneConfig)