Browse Source

修复调试问题

gitlink
Sydonian 1 year ago
parent
commit
29cf25d142
6 changed files with 65 additions and 3 deletions
  1. +4
    -0
      common/pkgs/accessstat/access_stat.go
  2. +4
    -0
      common/pkgs/db/object.go
  3. +29
    -2
      common/pkgs/db/object_access_stat.go
  4. +4
    -0
      common/pkgs/db/package.go
  5. +23
    -0
      common/pkgs/db/package_access_stat.go
  6. +1
    -1
      scanner/internal/event/update_package_access_stat_amount.go

+ 4
- 0
common/pkgs/accessstat/access_stat.go View File

@@ -57,6 +57,10 @@ func (p *AccessStat) Start() *sync2.UnboundChannel[AccessStatEvent] {
p.stats = nil
p.lock.Unlock()

if len(st) == 0 {
continue
}

err := coorCli.AddAccessStat(coormq.ReqAddAccessStat(st))
if err != nil {
logger.Errorf("add all package access stat counter: %v", err)


+ 4
- 0
common/pkgs/db/object.go View File

@@ -29,6 +29,10 @@ func (db *ObjectDB) GetByID(ctx SQLContext, objectID cdssdk.ObjectID) (model.Obj
}

func (db *ObjectDB) BatchTestObjectID(ctx SQLContext, objectIDs []cdssdk.ObjectID) (map[cdssdk.ObjectID]bool, error) {
if len(objectIDs) == 0 {
return make(map[cdssdk.ObjectID]bool), nil
}

stmt, args, err := sqlx.In("select ObjectID from Object where ObjectID in (?)", lo.Uniq(objectIDs))
if err != nil {
return nil, err


+ 29
- 2
common/pkgs/db/object_access_stat.go View File

@@ -27,15 +27,38 @@ func (*ObjectAccessStatDB) GetByObjectID(ctx SQLContext, objID cdssdk.ObjectID)
return ret, err
}

func (*ObjectAccessStatDB) BatchGetByObjectID(ctx SQLContext, objIDs []cdssdk.ObjectID) ([]model.ObjectAccessStat, error) {
if len(objIDs) == 0 {
return nil, nil
}

var ret []model.ObjectAccessStat
stmt, args, err := sqlx.In("select * from ObjectAccessStat where ObjectID in (?)", objIDs)
if err != nil {
return ret, err
}

err = sqlx.Select(ctx, &ret, stmt, args...)
return ret, err
}

func (*ObjectAccessStatDB) BatchAddCounter(ctx SQLContext, entries []coormq.AddAccessStatEntry) error {
if len(entries) == 0 {
return nil
}

sql := "insert into ObjectAccessStat(ObjectID, NodeID, Counter, Amount) " +
"values(:ObjectID, :NodeID, :Counter, 0) as new" +
"on duplicate key update Counter=Counter+new.Counter"
" values(:ObjectID, :NodeID, :Counter, 0) as new" +
" on duplicate key update ObjectAccessStat.Counter=ObjectAccessStat.Counter+new.Counter"
err := BatchNamedExec(ctx, sql, 4, entries, nil)
return err
}

func (*ObjectAccessStatDB) BatchUpdateAmountInPackage(ctx SQLContext, pkgIDs []cdssdk.PackageID, historyWeight float64) error {
if len(pkgIDs) == 0 {
return nil
}

stmt, args, err := sqlx.In("update ObjectAccessStat inner join Object"+
" on ObjectAccessStat.ObjectID = Object.ObjectID"+
" set Amount=Amount*?+Counter*(1-?), Counter = 0"+
@@ -64,6 +87,10 @@ func (*ObjectAccessStatDB) DeleteByObjectID(ctx SQLContext, objID cdssdk.ObjectI
}

func (*ObjectAccessStatDB) BatchDeleteByObjectID(ctx SQLContext, objIDs []cdssdk.ObjectID) error {
if len(objIDs) == 0 {
return nil
}

stmt, args, err := sqlx.In("delete from ObjectAccessStat where ObjectID in (?)", objIDs)
if err != nil {
return err


+ 4
- 0
common/pkgs/db/package.go View File

@@ -33,6 +33,10 @@ func (db *PackageDB) GetByName(ctx SQLContext, bucketID cdssdk.BucketID, name st
}

func (db *PackageDB) BatchTestPackageID(ctx SQLContext, pkgIDs []cdssdk.PackageID) (map[cdssdk.PackageID]bool, error) {
if len(pkgIDs) == 0 {
return make(map[cdssdk.PackageID]bool), nil
}

stmt, args, err := sqlx.In("select PackageID from Package where PackageID in (?)", lo.Uniq(pkgIDs))
if err != nil {
return nil, err


+ 23
- 0
common/pkgs/db/package_access_stat.go View File

@@ -27,7 +27,26 @@ func (*PackageAccessStatDB) GetByPackageID(ctx SQLContext, pkgID cdssdk.PackageI
return ret, err
}

func (*PackageAccessStatDB) BatchGetByPackageID(ctx SQLContext, pkgIDs []cdssdk.PackageID) ([]model.PackageAccessStat, error) {
if len(pkgIDs) == 0 {
return nil, nil
}

var ret []model.PackageAccessStat
stmt, args, err := sqlx.In("select * from PackageAccessStat where PackageID in (?)", pkgIDs)
if err != nil {
return nil, err
}

err = sqlx.Select(ctx, &ret, stmt, args...)
return ret, err
}

func (*PackageAccessStatDB) BatchAddCounter(ctx SQLContext, entries []coormq.AddAccessStatEntry) error {
if len(entries) == 0 {
return nil
}

sql := "insert into PackageAccessStat(PackageID, NodeID, Counter, Amount)" +
" values(:PackageID, :NodeID, :Counter, 0) as new" +
" on duplicate key update Counter=Counter+new.Counter"
@@ -36,6 +55,10 @@ func (*PackageAccessStatDB) BatchAddCounter(ctx SQLContext, entries []coormq.Add
}

func (*PackageAccessStatDB) BatchUpdateAmount(ctx SQLContext, pkgIDs []cdssdk.PackageID, historyWeight float64) error {
if len(pkgIDs) == 0 {
return nil
}

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


+ 1
- 1
scanner/internal/event/update_package_access_stat_amount.go View File

@@ -40,7 +40,7 @@ func (t *UpdatePackageAccessStatAmount) TryMerge(other Event) bool {
}

func (t *UpdatePackageAccessStatAmount) Execute(execCtx ExecuteContext) {
log := logger.WithType[AgentCacheGC]("Event")
log := logger.WithType[UpdatePackageAccessStatAmount]("Event")
startTime := time.Now()
log.Debugf("begin with %v", logger.FormatStruct(t.UpdatePackageAccessStatAmount))
defer func() {


Loading…
Cancel
Save