aboutsummaryrefslogtreecommitdiffstats
path: root/lualib/lua_bayes_redis.lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2024-01-17 14:48:24 +0000
committerVsevolod Stakhov <vsevolod@rspamd.com>2024-01-17 14:48:24 +0000
commitc2fd943dc8454742cd8be85c05e20adaf4719a2d (patch)
treefb16d097374ac9e748b8f64049946cd798074d88 /lualib/lua_bayes_redis.lua
parent903b60db99a502377bcb4e7f035efcdb801f8941 (diff)
downloadrspamd-c2fd943dc8454742cd8be85c05e20adaf4719a2d.tar.gz
rspamd-c2fd943dc8454742cd8be85c05e20adaf4719a2d.zip
[Project] Final things on redis cache rework
Diffstat (limited to 'lualib/lua_bayes_redis.lua')
-rw-r--r--lualib/lua_bayes_redis.lua21
1 files changed, 16 insertions, 5 deletions
diff --git a/lualib/lua_bayes_redis.lua b/lualib/lua_bayes_redis.lua
index 3988b937a..576f88b8a 100644
--- a/lualib/lua_bayes_redis.lua
+++ b/lualib/lua_bayes_redis.lua
@@ -177,11 +177,15 @@ local function gen_cache_check_functor(redis_params, check_script_id, conf)
return function(task, cache_id, callback)
local function classify_redis_cb(err, data)
- lua_util.debugm(N, task, 'check cache redis cb: %s, %s', err, data)
+ lua_util.debugm(N, task, 'check cache redis cb: %s, %s (%s)', err, data, type(data))
if err then
callback(task, false, err)
else
- callback(task, true, tonumber(data))
+ if type(data) == 'number' then
+ callback(task, true, data)
+ else
+ callback(task, false, 'not found')
+ end
end
end
@@ -217,12 +221,19 @@ exports.lua_bayes_init_cache = function(classifier_ucl, statfile_ucl)
local default_conf = {
cache_prefix = "learned_ids",
- max_elt = 10000, -- Maximum number of elements in the cache key
- max_keys = 10, -- Maximum number of keys in the cache
- per_user_mult = 0.1, -- Multiplier for per user cache size
+ cache_max_elt = 10000, -- Maximum number of elements in the cache key
+ cache_max_keys = 5, -- Maximum number of keys in the cache
+ cache_per_user_mult = 0.1, -- Multiplier for per user cache size
+ cache_elt_len = 32, -- Length of the element in the cache (will trim id to that value)
}
local conf = lua_util.override_defaults(default_conf, classifier_ucl)
+ -- Clean all not known configurations
+ for k, _ in pairs(conf) do
+ if default_conf[k] == nil then
+ conf[k] = nil
+ end
+ end
local check_script_id = lua_redis.load_redis_script_from_file("bayes_cache_check.lua", redis_params)
local learn_script_id = lua_redis.load_redis_script_from_file("bayes_cache_learn.lua", redis_params)