Hi All,

I've completed the implementation a Redis (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.

Thanks,
Toby.

--
Toby Phipps
nexmedia Pte Ltd
+65-93370027

Reply via email to