Topic Keywords: Support Blog
Over the past several months, we have been working on some optimisations and performance enhancements to the core SMS message routing logic of the NowSMS product.
These enhancements have been geared primarily toward supporting higher volume messaging environments with speed requirements of 400 messages per second and higher.
These core performance enhancements are also of interest to other high speed, but not-quite-as-high-speed environments for a variety of reasons.
1.) Requesting delivery receipts for all (or most) messages can put an increased strain on the system, with previous versions of NowSMS peaking at speeds of 150 to 200 messages per second when delivery receipts are requested, and sometimes with a queued backlog of receipt processing. Performance is easily doubled in this update, and the queue backlog has been eliminated.
2.) 2-way SMS command performance has been optimised, particularly for HTTP based commands, allowing an HTTP based command to easily keep up with burst rates of hundreds of messages per second. (For more preliminary information, see http://www.nowsms.com/discus/messages/1/24486.html.)
3.) CPU load with large numbers of outbound messaging routes. Historically, the more outbound routes defined to NowSMS, the higher the CPU load, especially if there is a large volume of queued messages waiting for a small number of routes. The routing logic has been dramatically improved to reduce CPU load.
4.) If you use HTTP-based accounting callbacks for billing or accounting, they may be significantly limiting your overall message throughput. The new release uses HTTP keep-alive sockets and optimised logic to improve throughput when accounting callbacks are enabled.
There are also a number of new features in this release. A list of features and enhancements from the readme file can be found at the end of this message. However, the primary focus of this NowSMS update is performance.
We’ve completed our internal testing of this update. However, because there were a large number of internal changes, optimisations and fixes, we are going to make this version available as a test release before general release.
We’re quite confident that this release is actually more stable and robust than previous versions. We know the performance and CPU overhead is much improved. We know that overall disk I/O has been reduced. And we know several rather significant bugs that have been fixed in this release. But, the problem with bugs is they are very much configuration dependent, and with such a large number of configuration options, we may have missed something that affects articular configurations, so we want to get some more feedback.
For this reason, we’re going to go ahead and make this update available in a testing release prior to a more general release.
This update can be downloaded at http://www.nowsms.com/download/nowsms200811.zip.
A full list of changes can be found in the readme file included with this release, or is also avaialble at the following link: http://www.nowsms.com/discus/messages/53/24488.html
We will be detailing some of the other enhancements in future postings here, but here is a brief overview of some of the more significant features:
1.) Enhanced SMS Message Routing Logic – Recipient address masks can now specify addresses to exclude from the selected route, in addition to the existing inclusive logic. Additionally, the SMPP service_type value can be used as a basis for SMS message routing. Some additional preliminary information can be found in the following message thread: http://www.nowsms.com/discus/messages/1/24460.html
2.) Dynamic SMS Message Routing Callbacks – This capability is long overdue! It has been availalble for MMS message routing for some time. Essentially, the existing HTTP accounting callbacks have been extended to allow the callbacks to dynamically specify which outbound route should be used for SMS message routing. Some additional preliminary information can be found in the following mesasge thread: http://www.nowsms.com/discus/messages/1/23919.html
3.) Explicit SMSC Routing available to SMPP Clients – Perhaps not as signicant as the other enhancements, but it is now possible to give SMPP clients connecting to NowSMS as their SMPP server more control over outbound SMSC routing if desired. Some additional preliminary information can be found in the following message thread: http://www.nowsms.com/discus/messages/1/24485.html
4.) Bug fix that could cause an SMPP client connection to “hang” – See http://www.nowsms.com/discus/messages/1/24483.html
5.) Throttling support for outbound MMS routing speed for external MM7, MM4 or EAIF connections.
6.) Enhanced support for the “mailto:” command as used in 2-way commands for routing received SMS messages to e-mail. Additional preliminary information can be found in the following message thread: http://www.nowsms.com/discus/messages/1/24428.html.
7.) More flexibility in controlling message retry behaviour in UCP/EMI and CIMD environments, as described in the following post: http://www.nowsms.com/sms-retry-error-handling-with-ucpemi-and-cimd
8.) Delivery receipts are now supported for UCP/EMI and CIMD environments, with NowSMS automatically translating message receipts for those environments into SMPP format to simplify processing.
9.) MMSC/MM4 Enhancements for improved real-world compatibility with more MMS interconnect services.
For comments and further discussion, please click here to visit the NowSMS Technical Forums (Discussion Board)...