Hello all,
I'm glad to let you know that a new feature is now available in OpenSIPS
2.1 devel : the ability to perform, from script level, various
operations in the *asynchronous* mode.
That's it: bye, bye I/O blocking !! Now you can run DB queries, REST
queries or external scripts without the blocking penalty !
The OpenSIPS config file allows you to use certain functions in async
way (via a dedicated statement). The suspending and resuming is done at
script level. A detailed description of how the async support works in
2.1 is available here:
http://www.opensips.org/Documentation/Script-Async-2-1
The async scripting support is just the tip of the iceberg (when comes
to the work which has been done). To make this possible, radical changes
were implemented in OpenSIPS 2.1 (most of them imported from OpenSIPS
experimental branch):
- per-process I/O reactors
- timer jobs dispatched across all SIP workers (versus dedicated
timer procs)
- updatable transactions in TM (to be able to use the transactions
as contexts for the async jump)
- transaction based async support in TM module
- processing context (to make it easier to suspend and resume the
script execution)
And finally, the first modules providing async functions:
- avpops for DB queries
- exec for script execution
- rest_client for REST queries
Step by step, we will migrate all the functions performing I/O ops to
the async support.
The async support is still in beta, it still needs to be heavily tested,
so any feedback and help from your side will be greatly appreciated.
In the meanwhile, welcome to the OpenSIPS Async World :)
Best regards,
--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
_______________________________________________
Devel mailing list
Devel@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/devel