DataManager RemoveReverseIndexes using cacheID and itemIDPrefix

This commit is contained in:
DanB
2018-03-04 11:46:01 +01:00
parent cde86ff059
commit e77d24f356
7 changed files with 55 additions and 35 deletions

View File

@@ -439,9 +439,20 @@ func (self *ApierV1) computeThresholdIndexes(tenant string, thIDs *[]string, tra
}
}
}
<<<<<<< HEAD
if transactionID == utils.NonTransactional {
if err := thdsIndexers.StoreIndexes(true, transactionID); err != nil {
return nil, err
=======
if thIDs == nil {
if err := self.DataManager.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
tenant); err != nil {
return err
}
if err := self.DataManager.RemoveFilterReverseIndexes(utils.PrefixToIndexCache[utils.ThresholdProfilePrefix],
tenant); err != nil {
return err
>>>>>>> DataManager RemoveReverseIndexes using cacheID and itemIDPrefix
}
return nil, nil
} else {
@@ -514,9 +525,20 @@ func (self *ApierV1) computeAttributeIndexes(tenant string, attrIDs *[]string, t
}
}
}
<<<<<<< HEAD
if transactionID == utils.NonTransactional {
if err := attrIndexers.StoreIndexes(true, transactionID); err != nil {
return nil, err
=======
if attrIDs == nil {
if err := self.DataManager.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.AttributeProfilePrefix],
tenant); err != nil {
return err
}
if err := self.DataManager.RemoveFilterReverseIndexes(utils.PrefixToIndexCache[utils.AttributeProfilePrefix],
tenant); err != nil {
return err
>>>>>>> DataManager RemoveReverseIndexes using cacheID and itemIDPrefix
}
return nil, nil
} else {
@@ -589,9 +611,20 @@ func (self *ApierV1) computeResourceIndexes(tenant string, rsIDs *[]string, tran
}
}
}
<<<<<<< HEAD
if transactionID == utils.NonTransactional {
if err := rpIndexers.StoreIndexes(true, transactionID); err != nil {
return nil, err
=======
if rsIDs == nil {
if err := self.DataManager.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
tenant); err != nil {
return err
}
if err := self.DataManager.RemoveFilterReverseIndexes(utils.PrefixToIndexCache[utils.ResourceProfilesPrefix],
tenant); err != nil {
return err
>>>>>>> DataManager RemoveReverseIndexes using cacheID and itemIDPrefix
}
return nil, nil
} else {
@@ -664,9 +697,20 @@ func (self *ApierV1) computeStatIndexes(tenant string, stIDs *[]string, transact
}
}
}
<<<<<<< HEAD
if transactionID == utils.NonTransactional {
if err := sqpIndexers.StoreIndexes(true, transactionID); err != nil {
return nil, err
=======
if stIDs == nil {
if err := self.DataManager.RemoveFilterIndexes(utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
tenant); err != nil {
return err
}
if err := self.DataManager.RemoveFilterReverseIndexes(utils.PrefixToIndexCache[utils.StatQueueProfilePrefix],
tenant); err != nil {
return err
>>>>>>> DataManager RemoveReverseIndexes using cacheID and itemIDPrefix
}
return nil, nil
} else {
@@ -739,6 +783,7 @@ func (self *ApierV1) computeSupplierIndexes(tenant string, sppIDs *[]string, tra
}
}
}
<<<<<<< HEAD
if transactionID == utils.NonTransactional {
if err := sppIndexers.StoreIndexes(true, transactionID); err != nil {
return nil, err

View File

@@ -1133,8 +1133,8 @@ func (dm *DataManager) SetFilterReverseIndexes(cacheID, itemIDPrefix string,
itemIDPrefix, indexes, commit, transactionID)
}
func (dm *DataManager) RemoveFilterReverseIndexes(dbKey string) (err error) {
return dm.DataDB().RemoveFilterReverseIndexesDrv(dbKey)
func (dm *DataManager) RemoveFilterReverseIndexes(cacheID, itemIDPrefix string) (err error) {
return dm.DataDB().RemoveFilterReverseIndexesDrv(cacheID, itemIDPrefix)
}
func (dm *DataManager) MatchFilterIndex(cacheID, itemIDPrefix,

View File

@@ -207,29 +207,3 @@ func (rfi *FilterIndexer) RemoveItemFromIndex(itemID string) (err error) {
}
return
}
//GetDBIndexKey return the dbKey for an specific item
func GetDBIndexKey(itemType, dbKeySuffix string, reverse bool) (dbKey string) {
var idxPrefix, rIdxPrefix string
switch itemType {
case utils.ThresholdProfilePrefix:
idxPrefix = utils.ThresholdFilterIndexes
rIdxPrefix = utils.ThresholdFilterRevIndexes
case utils.ResourceProfilesPrefix:
idxPrefix = utils.ResourceFilterIndexes
rIdxPrefix = utils.ResourceFilterRevIndexes
case utils.StatQueueProfilePrefix:
idxPrefix = utils.StatFilterIndexes
rIdxPrefix = utils.StatFilterRevIndexes
case utils.SupplierProfilePrefix:
idxPrefix = utils.SupplierFilterIndexes
rIdxPrefix = utils.SupplierFilterRevIndexes
case utils.AttributeProfilePrefix:
idxPrefix = utils.AttributeFilterIndexes
rIdxPrefix = utils.AttributeFilterRevIndexes
}
if reverse {
return rIdxPrefix + dbKeySuffix
}
return idxPrefix + dbKeySuffix
}

View File

@@ -127,7 +127,7 @@ type DataDB interface {
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error)
SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string, indexes map[string]utils.StringMap,
commit bool, transactionID string) (err error)
RemoveFilterReverseIndexesDrv(dbKey string) (err error)
RemoveFilterReverseIndexesDrv(cacheID, itemIDPrefix string) (err error)
MatchFilterIndexDrv(cacheID, itemIDPrefix,
filterType, fieldName, fieldVal string) (itemIDs utils.StringMap, err error)
GetStatQueueProfileDrv(tenant string, ID string) (sq *StatQueueProfile, err error)

View File

@@ -1376,10 +1376,10 @@ func (ms *MapStorage) SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
}
//RemoveFilterReverseIndexesDrv removes ReverseIndexes for a specific itemID
func (ms *MapStorage) RemoveFilterReverseIndexesDrv(dbKey string) (err error) {
func (ms *MapStorage) RemoveFilterReverseIndexesDrv(cacheID, itemIDPrefix string) (err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
delete(ms.dict, dbKey)
delete(ms.dict, utils.CacheInstanceToPrefix[cacheID]+itemIDPrefix)
return
}

View File

@@ -2130,10 +2130,10 @@ func (ms *MongoStorage) SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
}
//RemoveFilterReverseIndexesDrv removes ReverseIndexes for a specific itemID
func (ms *MongoStorage) RemoveFilterReverseIndexesDrv(dbKey string) (err error) {
func (ms *MongoStorage) RemoveFilterReverseIndexesDrv(cacheID, itemIDPrefix string) (err error) {
session, col := ms.conn(colRFI)
defer session.Close()
err = col.Remove(bson.M{"key": dbKey})
err = col.Remove(bson.M{"key": utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix})
//redis compatibility
if err == mgo.ErrNotFound {
err = nil

View File

@@ -1521,8 +1521,9 @@ func (rs *RedisStorage) SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
}
//RemoveFilterReverseIndexesDrv removes ReverseIndexes for a specific itemID
func (rs *RedisStorage) RemoveFilterReverseIndexesDrv(dbKey string) (err error) {
return rs.Cmd("DEL", dbKey).Err
func (rs *RedisStorage) RemoveFilterReverseIndexesDrv(cacheID,
itemIDPrefix string) (err error) {
return rs.Cmd("DEL", utils.CacheInstanceToPrefix[cacheID]+itemIDPrefix).Err
}
func (rs *RedisStorage) MatchFilterIndexDrv(cacheID, itemIDPrefix,