Re: New Redis DB storage
Alexander Malysh <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, comments inline... Am 10.10.2011 um 10:38 schrieb Toby Phipps: > 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? one patch should be one changeset, means: it should compile and it should be completed feature/bugfix > 2. What's the preferred patch format? SVN diff? Linux diff? unified diff, svn diff is also ok... > 3. I have enabled support for Redis both in Kannel and in sqlbox. Submit them separately or jointly? yes, please split it because sqlbox is extra project > 4. I've enhanced sqlbox to enable passing of priority via the DB. Submit this separately? see (1), yes.. one patch for one changeset > 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. we trying to avoid any dependency but if it's configurable with configure and license is not clash with kannel's one then it should be ok. > > Thanks, > Toby. > > -- > Toby Phipps > nexmedia Pte Ltd > +65-93370027