Abstract:
Internet applications require high-performance network server architecture. The authors propose a software architecture for network servers, MEANS (micro-thread architecture for network server), which aims at supporting Internet applications. By introducing a new thread abstract, micro-thread, MEANS upwardly provides a multi-micro-thread environment to programmers, and downwardly accesses the OS services concurrently with traditional threads. MEANS adopts the event-driven mechanism to manage and schedule the micro-threads, which takes advantages of both multi-threaded and event-driven architecture. Moreover, MEANS is general purpose, scalable, robust and adaptable. By preliminary evaluation, in the terms of the concurrence policy, MEANS is similar to the event-driven architecture and outperforms the multi-threaded architecture in I/O accessing. In particular, when the accessed file set is stored in the memory, the throughput of Hammer(2) server based on MEANS is 37.22% more than Apache based on multi-thread architecture, and 34.88% more than LightTPD based on single thread event-driven architecture, and 35.56% more than flash based on AMPED architecture, and is equal with Haboob based on SEDA architecture. While the accessed file set is stored on the hard disk, Hammer(2) increases the throughput by 191.35% compared with Apache, and 131.3% compared with LightTPD, and 904.16% compared with flash, and 45.6% compared with Haboob.