From fa128e5859d8ce250d17d8eeed906e03c4a94779 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Mon, 7 Jun 2021 13:32:30 +0300 Subject: [PATCH] Updated RemoveKeysForPrefix on internal DB --- engine/storage_internal_datadb.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/engine/storage_internal_datadb.go b/engine/storage_internal_datadb.go index b82404257..ec44619c2 100644 --- a/engine/storage_internal_datadb.go +++ b/engine/storage_internal_datadb.go @@ -98,13 +98,14 @@ func (iDB *InternalDB) GetKeysForPrefix(prefix string) (ids []string, err error) } func (iDB *InternalDB) RemoveKeysForPrefix(prefix string) (err error) { - var keys []string - if keys, err = iDB.GetKeysForPrefix(prefix); err != nil { - return + keyLen := len(utils.DestinationPrefix) + if len(prefix) < keyLen { + return fmt.Errorf("unsupported prefix in RemoveKeysForPrefix: %s", prefix) } - for _, key := range keys { - Cache.RemoveWithoutReplicate(utils.CacheReverseDestinations, key, - true, utils.NonTransactional) + cacheID := utils.CachePrefixToInstance[prefix[:keyLen]] + for _, key := range Cache.GetItemIDs(cacheID, prefix[keyLen:]) { + Cache.RemoveWithoutReplicate(cacheID, key, + cacheCommit(utils.NonTransactional), utils.NonTransactional) } return }