[SR-Users] Avoid full table scan for dispatcher table on db_redis using ds_reload() from config script
Henning Westerholt
hw at skalatan.de
Sat Nov 23 09:34:57 CET 2019
Hello Joel,
you already quoted the keys modparam docs. π You need to add an entry for the dispatcher table to keys as well.
How many records do you actually have in the dispatcher table? If it is a low number (like < 100) or so, it should work also fine without it. IMHO the warning is there in case people forget to add it on huge tables. And of course, it is βthe right thing to doβ from an implementation point of view.
Cheers,
Henning
--
Henning Westerholt β https://skalatan.de/blog/
Kamailio services β https://gilawa.com<https://gilawa.com/>
Kamailio Merchandising β https://skalatan.de/merchandising
From: sr-users <sr-users-bounces at lists.kamailio.org> On Behalf Of Joel Serrano
Sent: Saturday, November 23, 2019 1:18 AM
To: Kamailio (SER) - Users Mailing List <sr-users at lists.kamailio.org>
Subject: Re: [SR-Users] Avoid full table scan for dispatcher table on db_redis using ds_reload() from config script
Just in case:
Kam version - latest nightly deb (5.4.0~dev1+0~20191122005600.1540+buster)
Redis config:
loadmodule "db_redis.so"
modparam("db_redis", "keys", "version=entry:table_name")
...
modparam("dispatcher", "db_url", "redis://X.X.X.X:6379/2")
Thanks!
Joel.
On Fri, Nov 22, 2019 at 1:48 PM Joel Serrano <joel at textplus.com<mailto:joel at textplus.com>> wrote:
Hello,
I'm trying out redis as db backend, and right now I only have dispatcher records there... Every so often, I do a ds_reload() from within Kam config script, and I see in logs:
Nov 22 20:36:35 test COPS[25531]: WARNING: db_redis [redis_dbase.c:1098]: db_redis_perform_query(): performing full table scan on table 'dispatcher' while performing query
After enabling debug logs:
Nov 22 21:15:35 test COPS[26661]: DEBUG: db_redis [redis_dbase.c:1761]: db_redis_query(): querying prefix (table) 'dispatcher'
Nov 22 21:15:35 test COPS[26661]: DEBUG: db_redis [redis_dbase.c:1811]: db_redis_query(): no columns given to build query keys, falling back to full table scan
Nov 22 21:15:35 test COPS[26661]: DEBUG: <core> [db_res.c:119]: db_new_result(): allocate 56 bytes for result set at 0x7f0be4273898
Nov 22 21:15:35 test COPS[26661]: DEBUG: <core> [db_res.c:156]: db_allocate_columns(): allocate 40 bytes for result names at 0x7f0be4273938
Nov 22 21:15:35 test COPS[26661]: DEBUG: <core> [db_res.c:167]: db_allocate_columns(): allocate 20 bytes for result types at 0x7f0be42739c8
Nov 22 21:15:35 test COPS[26661]: WARNING: db_redis [redis_dbase.c:1098]: db_redis_perform_query(): performing full table scan on table 'dispatcher' while performing query
Given the msg... "no columns given to build query keys, falling back to full table scan", I assume I'm missing a keys modparam.. but I don't know how to build it, and the docs (to me) seem confusing?
https://kamailio.org/docs/modules/devel/modules/db_redis.html#db_redis.p.keys
Can anyone help me understand how to build the keys modparam for dispatcher table? Or if the reason for this is different, what do I need to do to avoid the full table scan and the warning in the log?
Thanks,
Joel.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20191123/d079da80/attachment.html>
More information about the sr-users
mailing list