Flash
E N D
Presentation Transcript
Flash An efficient and portable Web server Vivek S. Pai Peter Druschel Willy Zwaenepoel Rice University presented by Andreas Anagnostatos CSE 291 Feb. 2, 2000
Overview • Key features • Request processing steps • Server architectures • Flash implementation • Performance • Simulations/Comparisons • Conclusions • Discussion
Key features • A new Web server architecture • Aggressive optimizations • Portable • High performance across a wide range of workloads
Blocking steps of a request • Disk blocking • Find File • Read File • Network blocking • Accept Connection • Read Request • Send Header • Send Data
Multi-process architecture • Pros: • no synchronization necessary • Cons: • difficult to perform optimizations
Multi-threaded architecture • Pros: • share global variables • lower overhead for switching than MP • Cons: • OS must provide support • synchronization
SPED architecture • Pros: • No synchronization • No context switching • Cons: • Disk reads block
AMPED architecture • Pros: • Single process • No context switching • Helpers can be processes or threads • No synchronization • Non blocking • Cons: • NONE?
Flash Cons: • Extra cost wrt SPED for IPC between the main process and the helpers • More memory requirements than SPED • OTHERS?
Flash optimizations and caches • Memory-mapped files • Byte alignment (writev)
Performance • Apache (MP) • Zeus (SPED) • Flash (AMPED) • Flash-MT • Flash-MP • Flash-SPED
WAN emulation • Initial rise due to aggregation effects • MT declines due to per-thread switching and memory overhead • MP per-request overhead
Summary • AMPED combines cache behavior of SPED and disk behavior of MT and PS • Shared address space • No synchronization • Low overhead for helpers • High performance in real workloads • Portable (?) • Discussion... • Would you prefer Flash over a commercial server? • Other features missing?