Pipelined Messaging Gateway

The SMS gateway EMG uses separate threads for each connection. This requires a large number of locks to avoid data corruption, and causes problems when scaling to thousands of connections. The CPU load goes very high, and the amount of addressable memory per thread becomes low. This report examines...

Full description

Bibliographic Details
Main Author: Brahneborg, Daniel
Format: Others
Language:English
Published: Umeå universitet, Institutionen för datavetenskap 2015
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:umu:diva-102004
Description
Summary:The SMS gateway EMG uses separate threads for each connection. This requires a large number of locks to avoid data corruption, and causes problems when scaling to thousands of connections. The CPU load goes very high, and the amount of addressable memory per thread becomes low. This report examines an alternative implementation, where each thread instead handles a separate part of the processing. The two architectures are compared based on throughput, resource utilisation, code complexity and more. The results show what while throughput is about the same, the alternative implementation is better at keeping the CPU load within reasonable limits. However, it also requires more advanced data structure and algorithms to be efficient.