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
