Browse Source

解决调试问题

gitlink
Sydonian 1 year ago
parent
commit
adbda54a18
6 changed files with 22 additions and 16 deletions
  1. +2
    -0
      client/internal/cmdline/scanner.go
  2. +4
    -4
      common/pkgs/db/package_access_stat.go
  3. +3
    -3
      common/pkgs/mq/coordinator/package.go
  4. +6
    -0
      common/pkgs/mq/scanner/event/update_package_access_stat_amount.go
  5. +6
    -8
      scanner/internal/event/check_package_redundancy.go
  6. +1
    -1
      scanner/internal/tickevent/update_all_package_access_stat_amount.go

+ 2
- 0
client/internal/cmdline/scanner.go View File

@@ -41,5 +41,7 @@ func init() {

parseScannerEventCmdTrie.MustAdd(scevt.NewCleanPinned, reflect2.TypeNameOf[scevt.CleanPinned]())

parseScannerEventCmdTrie.MustAdd(scevt.NewUpdatePackageAccessStatAmount, reflect2.TypeNameOf[scevt.UpdatePackageAccessStatAmount]())

commands.MustAdd(ScannerPostEvent, "scanner", "event")
}

+ 4
- 4
common/pkgs/db/package_access_stat.go View File

@@ -29,14 +29,14 @@ func (*PackageAccessStatDB) GetByPackageID(ctx SQLContext, pkgID cdssdk.PackageI

func (*PackageAccessStatDB) BatchAddCounter(ctx SQLContext, entries []coormq.AddPackageAccessStatCounterEntry) error {
sql := "insert into PackageAccessStat(PackageID, NodeID, Counter, Amount) " +
"values(:PackageID, :NodeID, :Counter, 0)" +
"on duplicate key update Counter=Counter+:Counter"
"values(:PackageID, :NodeID, :Value, 0)" +
"on duplicate key update Counter=Counter+:Value"
err := BatchNamedExec(ctx, sql, 4, entries, nil)
return err
}

func (*PackageAccessStatDB) BatchUpdateAmount(ctx SQLContext, pkgIDs []cdssdk.PackageID, historyWeight float64) error {
stmt, args, err := sqlx.In("update PackageAccessStat set Amount=Amount*?+Counter*(1-?) where PackageID in (?)", historyWeight, historyWeight, pkgIDs)
stmt, args, err := sqlx.In("update PackageAccessStat set Amount=Amount*?+Counter*(1-?), Counter = 0 where PackageID in (?)", historyWeight, historyWeight, pkgIDs)
if err != nil {
return err
}
@@ -46,7 +46,7 @@ func (*PackageAccessStatDB) BatchUpdateAmount(ctx SQLContext, pkgIDs []cdssdk.Pa
}

func (*PackageAccessStatDB) UpdateAllAmount(ctx SQLContext, historyWeight float64) error {
stmt, args, err := sqlx.In("update PackageAccessStat set Amount=Amount*?+Counter*(1-?)", historyWeight, historyWeight)
stmt, args, err := sqlx.In("update PackageAccessStat set Amount=Amount*?+Counter*(1-?), Counter = 0", historyWeight, historyWeight)
if err != nil {
return err
}


+ 3
- 3
common/pkgs/mq/coordinator/package.go View File

@@ -265,9 +265,9 @@ type AddPackageAccessStatCounter struct {
Entries []AddPackageAccessStatCounterEntry `json:"entries"`
}
type AddPackageAccessStatCounterEntry struct {
PackageID cdssdk.PackageID `json:"packageID"`
NodeID cdssdk.NodeID `json:"nodeID"`
Value float64 `json:"value"`
PackageID cdssdk.PackageID `json:"packageID" db:"PackageID"`
NodeID cdssdk.NodeID `json:"nodeID" db:"NodeID"`
Value float64 `json:"value" db:"Value"`
}

type AddPackageAccessStatCounterResp struct {


+ 6
- 0
common/pkgs/mq/scanner/event/update_package_access_stat_amount.go View File

@@ -7,6 +7,12 @@ type UpdatePackageAccessStatAmount struct {
PackageIDs []cdssdk.PackageID `json:"packageIDs"`
}

func NewUpdatePackageAccessStatAmount(packageIDs []cdssdk.PackageID) *UpdatePackageAccessStatAmount {
return &UpdatePackageAccessStatAmount{
PackageIDs: packageIDs,
}
}

func init() {
Register[*UpdatePackageAccessStatAmount]()
}

+ 6
- 8
scanner/internal/event/check_package_redundancy.go View File

@@ -210,8 +210,11 @@ func (t *CheckPackageRedundancy) Execute(execCtx ExecuteContext) {
func (t *CheckPackageRedundancy) chooseRedundancy(obj stgmod.ObjectDetail, userAllNodes map[cdssdk.NodeID]*NodeLoadInfo) (cdssdk.Redundancy, []*NodeLoadInfo) {
switch obj.Object.Redundancy.(type) {
case *cdssdk.NoneRedundancy:
newLRCNodes := t.chooseNewNodesForLRC(&cdssdk.DefaultLRCRedundancy, userAllNodes)
return &cdssdk.DefaultLRCRedundancy, newLRCNodes
newNodes := t.chooseNewNodesForEC(&cdssdk.DefaultECRedundancy, userAllNodes)
return &cdssdk.DefaultECRedundancy, newNodes

// newLRCNodes := t.chooseNewNodesForLRC(&cdssdk.DefaultLRCRedundancy, userAllNodes)
// return &cdssdk.DefaultLRCRedundancy, newLRCNodes

case *cdssdk.LRCRedundancy:
newLRCNodes := t.rechooseNodesForLRC(obj, &cdssdk.DefaultLRCRedundancy, userAllNodes)
@@ -274,12 +277,7 @@ func (t *CheckPackageRedundancy) chooseNewNodesForEC(red *cdssdk.ECRedundancy, a

func (t *CheckPackageRedundancy) chooseNewNodesForLRC(red *cdssdk.LRCRedundancy, allNodes map[cdssdk.NodeID]*NodeLoadInfo) []*NodeLoadInfo {
sortedNodes := sort2.Sort(lo.Values(allNodes), func(left *NodeLoadInfo, right *NodeLoadInfo) int {
dm := right.LoadsRecentMonth - left.LoadsRecentMonth
if dm != 0 {
return dm
}

return right.LoadsRecentYear - left.LoadsRecentYear
return sort2.Cmp(right.AccessAmount, left.AccessAmount)
})

return t.chooseSoManyNodes(red.N, sortedNodes)


+ 1
- 1
scanner/internal/tickevent/update_all_package_access_stat_amount.go View File

@@ -28,5 +28,5 @@ func (e *UpdateAllPackageAccessStatAmount) Execute(ctx ExecuteContext) {
}
e.todayUpdated = true

ctx.Args.EventExecutor.Post(evt.NewUpdatePackageAccessStatAmount(&event.UpdatePackageAccessStatAmount{}))
ctx.Args.EventExecutor.Post(evt.NewUpdatePackageAccessStatAmount(event.NewUpdatePackageAccessStatAmount(nil)))
}

Loading…
Cancel
Save