DataManager SetFilterReverseIndexes using cacheID and itemIDPrefix

This commit is contained in:
DanB
2018-03-04 09:40:25 +01:00
parent 456c512440
commit cde86ff059
6 changed files with 25 additions and 16 deletions

View File

@@ -1126,8 +1126,11 @@ func (dm *DataManager) GetFilterReverseIndexes(cacheID, itemIDPrefix string,
return dm.DataDB().GetFilterReverseIndexesDrv(cacheID, itemIDPrefix, fldNameVal)
}
func (dm *DataManager) SetFilterReverseIndexes(dbKey string, indexes map[string]utils.StringMap, commit bool, transactionID string) (err error) {
return dm.DataDB().SetFilterReverseIndexesDrv(dbKey, indexes, commit, transactionID)
func (dm *DataManager) SetFilterReverseIndexes(cacheID, itemIDPrefix string,
indexes map[string]utils.StringMap,
commit bool, transactionID string) (err error) {
return dm.DataDB().SetFilterReverseIndexesDrv(cacheID,
itemIDPrefix, indexes, commit, transactionID)
}
func (dm *DataManager) RemoveFilterReverseIndexes(dbKey string) (err error) {

View File

@@ -127,11 +127,11 @@ func (rfi *FilterIndexer) cacheRemItemType() { // ToDo: tune here by removing pe
func (rfi *FilterIndexer) StoreIndexes(commit bool, transactionID string) (err error) {
if err = rfi.dm.SetFilterIndexes(
utils.PrefixToIndexCache[rfi.itemType], rfi.dbKeySuffix,
rfi.indexes, commit, utils.NonTransactional); err != nil {
rfi.indexes, commit, transactionID); err != nil {
return
}
if err = rfi.dm.SetFilterReverseIndexes(
GetDBIndexKey(rfi.itemType, rfi.dbKeySuffix, true),
utils.PrefixToRevIndexCache[rfi.itemType], rfi.dbKeySuffix,
rfi.reveseIndex, commit, transactionID); err != nil {
return
}
@@ -201,7 +201,7 @@ func (rfi *FilterIndexer) RemoveItemFromIndex(itemID string) (err error) {
return
}
if err = rfi.dm.SetFilterReverseIndexes(
GetDBIndexKey(rfi.itemType, rfi.dbKeySuffix, true),
utils.PrefixToRevIndexCache[rfi.itemType], rfi.dbKeySuffix,
rfi.reveseIndex, false, utils.NonTransactional); err != nil {
return
}

View File

@@ -125,7 +125,7 @@ type DataDB interface {
RemoveFilterIndexesDrv(cacheID, itemIDPrefix string) (err error)
GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
fldNameVal map[string]string) (indexes map[string]utils.StringMap, err error)
SetFilterReverseIndexesDrv(dbKey string, indexes map[string]utils.StringMap,
SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string, indexes map[string]utils.StringMap,
commit bool, transactionID string) (err error)
RemoveFilterReverseIndexesDrv(dbKey string) (err error)
MatchFilterIndexDrv(cacheID, itemIDPrefix,

View File

@@ -1343,12 +1343,13 @@ func (ms *MapStorage) GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
}
//SetFilterReverseIndexesDrv stores ReverseIndexes into DataDB
func (ms *MapStorage) SetFilterReverseIndexesDrv(originKey string, revIdx map[string]utils.StringMap, commit bool, transactionID string) (err error) {
func (ms *MapStorage) SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
revIdx map[string]utils.StringMap, commit bool, transactionID string) (err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
dbKey := originKey
dbKey := utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix
if transactionID != "" {
dbKey = "tmp_" + utils.ConcatenatedKey(originKey, transactionID)
dbKey = "tmp_" + utils.ConcatenatedKey(dbKey, transactionID)
}
if commit && transactionID != "" {
delete(ms.dict, dbKey)
@@ -1356,7 +1357,7 @@ func (ms *MapStorage) SetFilterReverseIndexesDrv(originKey string, revIdx map[st
if err != nil {
return err
}
ms.dict[originKey] = result
ms.dict[dbKey] = result
return nil
} else {
for key, strMp := range revIdx {

View File

@@ -2078,13 +2078,14 @@ func (ms *MongoStorage) GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
}
//SetFilterReverseIndexesDrv stores ReverseIndexes into DataDB
func (ms *MongoStorage) SetFilterReverseIndexesDrv(originKey string,
func (ms *MongoStorage) SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
revIdx map[string]utils.StringMap, commit bool, transactionID string) (err error) {
session, col := ms.conn(colRFI)
defer session.Close()
originKey := utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix
dbKey := originKey
if transactionID != "" {
dbKey = "tmp_" + utils.ConcatenatedKey(originKey, transactionID)
dbKey = "tmp_" + utils.ConcatenatedKey(dbKey, transactionID)
}
if commit && transactionID != "" {
oldKey := "tmp_" + utils.ConcatenatedKey(originKey, transactionID)
@@ -2095,8 +2096,9 @@ func (ms *MongoStorage) SetFilterReverseIndexesDrv(originKey string,
pairs := []interface{}{}
for key, itmMp := range revIdx {
param := fmt.Sprintf("value.%s", key)
pairs = append(pairs, bson.M{"key": originKey})
pairs = append(pairs, bson.M{"$set": bson.M{"key": originKey, param: itmMp.Slice()}})
pairs = append(pairs, bson.M{"key": dbKey})
pairs = append(pairs, bson.M{"$set": bson.M{"key": dbKey,
param: itmMp.Slice()}})
}
if len(pairs) != 0 {
bulk := col.Bulk()
@@ -2113,7 +2115,8 @@ func (ms *MongoStorage) SetFilterReverseIndexesDrv(originKey string,
if len(itmMp) == 0 {
pairs = append(pairs, bson.M{"$unset": bson.M{param: 1}})
} else {
pairs = append(pairs, bson.M{"$set": bson.M{"key": dbKey, param: itmMp.Slice()}})
pairs = append(pairs, bson.M{"$set": bson.M{"key": dbKey,
param: itmMp.Slice()}})
}
}
if len(pairs) != 0 {

View File

@@ -1485,7 +1485,9 @@ func (rs *RedisStorage) GetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
}
//SetFilterReverseIndexesDrv stores ReverseIndexes into DataDB
func (rs *RedisStorage) SetFilterReverseIndexesDrv(originKey string, revIdx map[string]utils.StringMap, commit bool, transactionID string) (err error) {
func (rs *RedisStorage) SetFilterReverseIndexesDrv(cacheID, itemIDPrefix string,
revIdx map[string]utils.StringMap, commit bool, transactionID string) (err error) {
originKey := utils.CacheInstanceToPrefix[cacheID] + itemIDPrefix
dbKey := originKey
if transactionID != "" {
dbKey = "tmp_" + utils.ConcatenatedKey(dbKey, transactionID)