mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Clarify cacheRead/cacheWrite for stats
This commit is contained in:
committed by
Dan Christian Bogos
parent
2425734dcd
commit
ed2b45d8b0
@@ -224,7 +224,7 @@ func (dm *DataManager) CacheDataFromDB(prfx string, ids []string, mustBeCached b
|
||||
_, err = dm.GetStatQueueProfile(tntID.Tenant, tntID.ID, false, true, utils.NonTransactional)
|
||||
case utils.StatQueuePrefix:
|
||||
tntID := utils.NewTenantID(dataID)
|
||||
_, err = dm.GetStatQueue(tntID.Tenant, tntID.ID, true, utils.NonTransactional)
|
||||
_, err = dm.GetStatQueue(tntID.Tenant, tntID.ID, false, true, utils.NonTransactional)
|
||||
case utils.TimingsPrefix:
|
||||
_, err = dm.GetTiming(dataID, true, utils.NonTransactional)
|
||||
case utils.ThresholdProfilePrefix:
|
||||
@@ -259,9 +259,9 @@ func (dm *DataManager) CacheDataFromDB(prfx string, ids []string, mustBeCached b
|
||||
// GetStatQueue retrieves a StatQueue from dataDB
|
||||
// handles caching and deserialization of metrics
|
||||
func (dm *DataManager) GetStatQueue(tenant, id string,
|
||||
skipCache bool, transactionID string) (sq *StatQueue, err error) {
|
||||
cacheRead, cacheWrite bool, transactionID string) (sq *StatQueue, err error) {
|
||||
tntID := utils.ConcatenatedKey(tenant, id)
|
||||
if !skipCache {
|
||||
if cacheRead {
|
||||
if x, ok := Cache.Get(utils.CacheStatQueues, tntID); ok {
|
||||
if x == nil {
|
||||
return nil, utils.ErrNotFound
|
||||
@@ -271,7 +271,7 @@ func (dm *DataManager) GetStatQueue(tenant, id string,
|
||||
}
|
||||
ssq, err := dm.dataDB.GetStoredStatQueueDrv(tenant, id)
|
||||
if err != nil {
|
||||
if err == utils.ErrNotFound {
|
||||
if err == utils.ErrNotFound && cacheWrite {
|
||||
Cache.Set(utils.CacheStatQueues, tntID, nil, nil,
|
||||
cacheCommit(transactionID), transactionID)
|
||||
}
|
||||
@@ -280,8 +280,10 @@ func (dm *DataManager) GetStatQueue(tenant, id string,
|
||||
if sq, err = ssq.AsStatQueue(dm.dataDB.Marshaler()); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
Cache.Set(utils.CacheStatQueues, tntID, sq, nil,
|
||||
cacheCommit(transactionID), transactionID)
|
||||
if cacheWrite {
|
||||
Cache.Set(utils.CacheStatQueues, tntID, sq, nil,
|
||||
cacheCommit(transactionID), transactionID)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ func testDMitCRUDStatQueue(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
if _, rcvErr := dm2.GetStatQueue(sq.Tenant, sq.ID, false, ""); rcvErr != utils.ErrNotFound {
|
||||
if _, rcvErr := dm2.GetStatQueue(sq.Tenant, sq.ID, true, false, ""); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
if _, ok := Cache.Get(utils.CacheStatQueues, sq.TenantID()); ok != false {
|
||||
@@ -111,7 +111,7 @@ func testDMitCRUDStatQueue(t *testing.T) {
|
||||
if _, ok := Cache.Get(utils.CacheStatQueues, sq.TenantID()); ok != false {
|
||||
t.Error("should not be in cache")
|
||||
}
|
||||
if rcv, err := dm2.GetStatQueue(sq.Tenant, sq.ID, false, ""); err != nil {
|
||||
if rcv, err := dm2.GetStatQueue(sq.Tenant, sq.ID, true, false, ""); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(sq, rcv) {
|
||||
t.Errorf("expecting: %v, received: %v", sq, rcv)
|
||||
@@ -125,7 +125,7 @@ func testDMitCRUDStatQueue(t *testing.T) {
|
||||
if _, ok := Cache.Get(utils.CacheStatQueues, sq.TenantID()); ok != false {
|
||||
t.Error("should not be in cache")
|
||||
}
|
||||
if _, rcvErr := dm2.GetStatQueue(sq.Tenant, sq.ID, false, ""); rcvErr != utils.ErrNotFound {
|
||||
if _, rcvErr := dm2.GetStatQueue(sq.Tenant, sq.ID, true, false, ""); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2029,7 +2029,7 @@ func testOnStorITStatQueue(t *testing.T) {
|
||||
},
|
||||
}
|
||||
if _, rcvErr := onStor.GetStatQueue(sq.Tenant, sq.ID,
|
||||
false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
true, false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
if err := onStor.SetStatQueue(sq); err != nil {
|
||||
@@ -2037,14 +2037,14 @@ func testOnStorITStatQueue(t *testing.T) {
|
||||
}
|
||||
//get from cache
|
||||
if rcv, err := onStor.GetStatQueue(sq.Tenant,
|
||||
sq.ID, false, utils.NonTransactional); err != nil {
|
||||
sq.ID, true, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(sq, rcv) {
|
||||
t.Errorf("Expecting: %v, received: %v", sq, rcv)
|
||||
}
|
||||
//get from database
|
||||
if rcv, err := onStor.GetStatQueue(sq.Tenant,
|
||||
sq.ID, true, utils.NonTransactional); err != nil {
|
||||
sq.ID, false, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(sq, rcv) {
|
||||
t.Errorf("Expecting: %v, received: %v", sq, rcv)
|
||||
@@ -2073,14 +2073,14 @@ func testOnStorITStatQueue(t *testing.T) {
|
||||
time.Sleep(sleepDelay)
|
||||
//get from cache
|
||||
if rcv, err := onStor.GetStatQueue(sq.Tenant,
|
||||
sq.ID, false, utils.NonTransactional); err != nil {
|
||||
sq.ID, true, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(sq, rcv) {
|
||||
t.Errorf("Expecting: %v, received: %v", sq, rcv)
|
||||
}
|
||||
//get from database
|
||||
if rcv, err := onStor.GetStatQueue(sq.Tenant,
|
||||
sq.ID, true, utils.NonTransactional); err != nil {
|
||||
sq.ID, false, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(sq, rcv) {
|
||||
t.Errorf("Expecting: %v, received: %v", sq, rcv)
|
||||
@@ -2091,12 +2091,12 @@ func testOnStorITStatQueue(t *testing.T) {
|
||||
}
|
||||
//check cache if removed
|
||||
if _, rcvErr := onStor.GetStatQueue(sq.Tenant,
|
||||
sq.ID, false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
sq.ID, true, false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
//check database if removed
|
||||
if _, rcvErr := onStor.GetStatQueue(sq.Tenant,
|
||||
sq.ID, true, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
sq.ID, false, false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ func (sS *StatService) matchingStatQueuesForEvent(args *StatsArgsProcessEvent) (
|
||||
}
|
||||
lkID := utils.StatQueuePrefix + utils.ConcatenatedKey(sqPrfl.Tenant, sqPrfl.ID)
|
||||
guardian.Guardian.GuardIDs(config.CgrConfig().LockingTimeout, lkID)
|
||||
s, err := sS.dm.GetStatQueue(sqPrfl.Tenant, sqPrfl.ID, false, "")
|
||||
s, err := sS.dm.GetStatQueue(sqPrfl.Tenant, sqPrfl.ID, true, true, "")
|
||||
guardian.Guardian.UnguardIDs(lkID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -336,7 +336,7 @@ func (sS *StatService) V1GetQueueStringMetrics(args *utils.TenantID, reply *map[
|
||||
lkID := utils.StatQueuePrefix + args.TenantID()
|
||||
guardian.Guardian.GuardIDs(config.CgrConfig().LockingTimeout, lkID)
|
||||
defer guardian.Guardian.UnguardIDs(lkID)
|
||||
sq, err := sS.dm.GetStatQueue(args.Tenant, args.ID, false, "")
|
||||
sq, err := sS.dm.GetStatQueue(args.Tenant, args.ID, true, true, "")
|
||||
if err != nil {
|
||||
if err != utils.ErrNotFound {
|
||||
err = utils.NewErrServerError(err)
|
||||
@@ -359,7 +359,7 @@ func (sS *StatService) V1GetQueueFloatMetrics(args *utils.TenantID, reply *map[s
|
||||
lkID := utils.StatQueuePrefix + args.TenantID()
|
||||
guardian.Guardian.GuardIDs(config.CgrConfig().LockingTimeout, lkID)
|
||||
defer guardian.Guardian.UnguardIDs(lkID)
|
||||
sq, err := sS.dm.GetStatQueue(args.Tenant, args.ID, false, "")
|
||||
sq, err := sS.dm.GetStatQueue(args.Tenant, args.ID, true, true, "")
|
||||
if err != nil {
|
||||
if err != utils.ErrNotFound {
|
||||
err = utils.NewErrServerError(err)
|
||||
|
||||
@@ -69,7 +69,7 @@ func (m *Migrator) migrateCurrentStats() (err error) {
|
||||
}
|
||||
for _, id := range ids {
|
||||
idg := strings.TrimPrefix(id, utils.StatQueuePrefix+tenant+":")
|
||||
sgs, err := m.dmIN.DataManager().GetStatQueue(tenant, idg, true, utils.NonTransactional)
|
||||
sgs, err := m.dmIN.DataManager().GetStatQueue(tenant, idg, false, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ func testStsITMigrateAndMove(t *testing.T) {
|
||||
t.Errorf("Expecting: %+v, received: %+v", len(filter.Rules), len(result1.Rules))
|
||||
}
|
||||
|
||||
result2, err := stsMigrator.dmOut.DataManager().GetStatQueue("cgrates.org", sq.ID, true, utils.NonTransactional)
|
||||
result2, err := stsMigrator.dmOut.DataManager().GetStatQueue("cgrates.org", sq.ID, false, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
t.Error("Error when getting Stats ", err.Error())
|
||||
}
|
||||
@@ -296,7 +296,7 @@ func testStsITMigrateAndMove(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error("Error when getting Stats ", err.Error())
|
||||
}
|
||||
result1, err := stsMigrator.dmOut.DataManager().GetStatQueue(sq.Tenant, sq.ID, true, utils.NonTransactional)
|
||||
result1, err := stsMigrator.dmOut.DataManager().GetStatQueue(sq.Tenant, sq.ID, false, false, utils.NonTransactional)
|
||||
if err != nil {
|
||||
t.Error("Error when getting Stats ", err.Error())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user