Parcourir la source

scalable changes

Abhishek Kondur il y a 2 ans
Parent
commit
b6d3cecd16
3 fichiers modifiés avec 31 ajouts et 2 suppressions
  1. 22 0
      database/sqlite.go
  2. 3 0
      logic/peers.go
  3. 6 2
      mq/mq.go

+ 22 - 0
database/sqlite.go

@@ -43,6 +43,28 @@ func initSqliteDB() error {
 	if dbOpenErr != nil {
 		return dbOpenErr
 	}
+	const q = `
+	PRAGMA foreign_keys = OFF;
+	PRAGMA synchronous = NORMAL;
+	PRAGMA journal_mode = 'WAL';
+	PRAGMA busy_timeout = 10000;
+	`
+	_, dbOpenErr = SqliteDB.Exec(q)
+	if dbOpenErr != nil {
+		return dbOpenErr
+	}
+	// if _, dbOpenErr = SqliteDB.Exec("PRAGMA synchronous = NORMAL"); dbOpenErr != nil {
+	// 	return dbOpenErr
+	// }
+	// if _, dbOpenErr = SqliteDB.Exec("PRAGMA busy_timeout = 10000"); dbOpenErr != nil {
+	// 	return dbOpenErr
+	// }
+	// if _, dbOpenErr = SqliteDB.Exec("PRAGMA foreign_keys = false"); dbOpenErr != nil {
+	// 	return dbOpenErr
+	// }
+	// if _, dbOpenErr = SqliteDB.Exec("PRAGMA journal_mode = WAL"); dbOpenErr != nil {
+	// 	return dbOpenErr
+	// }
 	SqliteDB.SetMaxOpenConns(1)
 	return nil
 }

+ 3 - 0
logic/peers.go

@@ -226,6 +226,9 @@ func GetFwUpdate(host *models.Host) (models.FwUpdate, error) {
 		if err != nil {
 			continue
 		}
+		if !(node.IsEgressGateway || node.IsIngressGateway) {
+			continue
+		}
 		if !node.Connected || node.PendingDelete || node.Action == models.NODE_DELETE {
 			continue
 		}

+ 6 - 2
mq/mq.go

@@ -36,6 +36,7 @@ func setMqOptions(user, password string, opts *mqtt.ClientOptions) {
 	opts.SetConnectRetryInterval(time.Second * 5)
 	opts.SetKeepAlive(time.Minute)
 	opts.SetWriteTimeout(time.Minute)
+	opts.SetCleanSession(true)
 }
 
 // SetupMQTT creates a connection to broker and return client
@@ -77,8 +78,11 @@ func SetupMQTT() {
 			logger.Log(0, "node metrics subscription failed")
 		}
 
-		opts.SetOrderMatters(true)
-		opts.SetResumeSubs(true)
+		opts.SetOrderMatters(false)
+		opts.SetResumeSubs(false)
+	})
+	opts.SetConnectionLostHandler(func(c mqtt.Client, e error) {
+		setMqOptions(servercfg.GetMqUserName(), servercfg.GetMqPassword(), opts)
 	})
 	mqclient = mqtt.NewClient(opts)
 	tperiod := time.Now().Add(10 * time.Second)