Re: New Redis DB storage

Stipe Tolj <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization Kannel Software Foundation (KSF)
Message-ID <[email protected]>
Am 10.10.2011 10:38, schrieb Toby Phipps:
> Hi All,
>
> I've completed the implementation a Redis (www.redis.io
> <http://www.redis.io>) database driver for DLR storage and for sqlbox
> submission/result queueing. It's running through a multi-million message
> test batch now and looks good both performance-wise and leak-wise. I'll
> be moving it to a production environment in the next few days, but
> wanted to start the process to submit the code for merge.
>
> It's showing considerable performance advantages over
> MySQL/InnoDB/Percona/XtraDB, especially with the database and kannel
> running on the same box. I'll submit some actual throughput comparisons
> once I've finished all the benchmarking, but at the moment I'm seeing
> just under 900 SMS/sec concurrently with 1000 DLR/sec on a Core i7 CPU
> with full DLR storage/tracking. One of the key benefits is that Redis
> supports a blocking queue PUSH/POP mechanism that completely removes the
> need for high-frequency polling for SMS and DLRs.
>
> The code is up-to-date with the latest svn revision, and other than a
> minor change to the core (passing down use_dst during DLR creation) it's
> impact free. I've updated the kannel users guide with the appropriate
> new section, and am working on getting the toolchain installed to do the
> same for sqlbox's users guide.
>
> Some questions:
>
> 1. What's the preferred way to submit multiple-file patches? In this
> case I've changed 10+ files. Attach patches for all to a single email?
> Tar them up and attach? Provide a URL where they can be downloaded from?
> 2. What's the preferred patch format? SVN diff? Linux diff?
> 3. I have enabled support for Redis both in Kannel and in sqlbox. Submit
> them separately or jointly?
> 4. I've enhanced sqlbox to enable passing of priority via the DB. Submit
> this separately?
> 5. The sqlbox implementation depends on a JSON encoding/decoding engine
> since Redis requires some form of serialization for its queue
> management. I've chosen the MIT licensed Jansson library
> (http://www.digip.org/jansson/) due to its performance, simplicity and
> open license. Any issues making this a dependency for Redis-enabled
> sqlbox? I've updated the configure.in appropriately with a
> --with-jansson-dir argument.

Hi Toby,

thanks a lot for your work on the Kannel Redis support. We appreciate 
your contribution. I have just committed to svn:

2014-01-06  Stipe Tolj  <stolj at kannel.org>
     * configure[.in]: implement --with-redis option to support Redis.
     * gw-config.h.in: add HAVE_REDIS macro definition.
     * doc/examples/dlr-redis.conf: Redis config example.
     * doc/userguide/userguide.xml: adding Redis support documentation.
     * gw/dlr_p.h: extending the dlr_entry struct to hold information if
       we used the destination address in the lookup process, also adds
       the TTL variable to dlr_db_fields struct.
     * gw/dlr_redis.c: implements Redis support as DLR storage backend.
     * gw/dlr.[ch]: add 'ttl' config handling and extend dlr_add() prototype
       to allow passing the optional argument for indicating the usage of
       the destination address.
     * gw/smsc/smsc_[cimd2|emi].c: add use destination address flag in
       dlr_add() call. This is required since these two SMSC types don't
       have a message ID returned by the SMSC.
     * gwlib/cfg.def: adding config 'group = redis-connection' context, and
       adding the 'ttl' directive for 'group = dlr-db' context.
     * gwlib/dbpool_redis.c: implements Redis support for the database pool
       abstraction layer.
     * gwlib/dbpool.[ch]: adding Redis support to internal structures.
     * gwlib/octstr.[ch]: adding function octstr_replace_first().
     * gwlib/utils.c: add Redis version output in version_report_string().
     This patchset was originally developed by Toby Phipps.
     [Msg-Id: <[email protected]>]
     [URL: https://github.com/tphipps/kannel-redis]
     Thanks to Toby Phipps for the patchset, and Alejandro and Juan Nin
     for raising the topic again.

Kind Regards,
Stipe

-- 
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.