Gears4Net An Asynchronous Programming Model

Martin Saternus, Torben Weis, Sebastian Holzapfel, Arno Wacker · 2009

We propose a programming model for scalable distributed applications. Our programming model aims at applications which have to handle a high number of concurrent network connections in parallel. Such load characteristics appear in Web 2.0 applications and in scientific network simulators. The problem originates at the I/O API provided by the operating system. Blocking I/O is easy to use, but in large scale scenarios the usage of threads and memory is excessive. Non-blocking I/O can theoretically reduce the resource consumption, but it is awkward to program. Our approach utilizes a special language feature found in Microsoft's C# and Python and combines the best of both worlds. Programming is almost as easy as with blocking I/O and the resource usage is nearly optimal. Our solution is implemented on top of Microsoft .NET or Mono/Linux respectively and does not require any changes to the operating system, which is very valuable for its practical application.

Read the paper · More papers on PaperTik