Options
2012
Conference Paper
Titel
Analysis of event processing design patterns and their performance dependency on I/O notification mechanisms
Abstract
Software design patterns reflect software engineering practices and experience by documenting proven design solutions. We consider here two widely used patterns, the Half-Sync/Half-Async and the Leader/Followers pattern, which aim for efficient processing of messages in multi-core environments. We will analyze the performance differences not only between both design patterns but also between different implementation variants. These variants use different event notification mechanisms which are used to sense message arrivals on a set of connections. We will show that performance depends not simply on data sharing or lock contention but on the selected event notification primitives and their specific characteristics. In more detail, we evaluated both patterns in terms of three different event notification mechanisms: select, level-triggered and edge-triggered epoll. The latter two are the operation modes of the epoll API. In particular, the right choice of the API can inf luence the performance by a factor of two. Secondly, the more recent epoll is overall faster, but in some aspects slower which strongly degrades the Half-Sync/Half-Async performance. Existing performance evaluations for these patterns do not analyze their multi-core performance. Furthermore, they do not include analysis of bottlenecks, data sharing, or operating system primitives.
Author(s)