修复多个日志数据库节点写入NS日志时分布不平均的问题

This commit is contained in:
刘祥超
2022-09-09 21:06:43 +08:00
parent 4c7ebce97a
commit 67729abd13

View File

@@ -100,21 +100,33 @@ func randomHTTPAccessLogDAO() (dao *HTTPAccessLogDAOWrapper) {
return daoList[0] return daoList[0]
} }
return daoList[rands.Int(0, len(daoList)-1)] return daoList[rands.Int(0, l-1)]
} }
func randomNSAccessLogDAO() (dao *NSAccessLogDAOWrapper) { func randomNSAccessLogDAO() (dao *NSAccessLogDAOWrapper) {
accessLogLocker.RLock() accessLogLocker.RLock()
defer accessLogLocker.RUnlock()
if len(nsAccessLogDAOMapping) == 0 { if len(nsAccessLogDAOMapping) == 0 {
dao = nil dao = nil
} else { return
for _, d := range nsAccessLogDAOMapping {
dao = d
break
}
} }
accessLogLocker.RUnlock()
return var daoList = []*NSAccessLogDAOWrapper{}
for _, d := range nsAccessLogDAOMapping {
daoList = append(daoList, d)
}
var l = len(daoList)
if l == 0 {
return
}
if l == 1 {
return daoList[0]
}
return daoList[rands.Int(0, l-1)]
} }
func findNSAccessLogTableName(db *dbs.DB, day string) (tableName string, ok bool, err error) { func findNSAccessLogTableName(db *dbs.DB, day string) (tableName string, ok bool, err error) {