130 likes | 205 Views
Explore the performance and scalability of event-driven architectures versus threading in the current computing environment. The presentation delves into the duality of threads and events, showcasing the benefits and challenges of each paradigm. The study includes experiments conducted on a test bed setup and discusses the results, highlighting the superiority of event handling for concurrent requests. The presentation concludes with a discussion on the future potential of evented architecture in software engineering. Further work involves expanding experiments and considering database backends and SEDA complexities.
E N D
Paradigms & Benchmarks Notre Dame Computer Science Ryan McCune CSE 60641 Final Presentation
Current Environment Notre Dame Computer Science Performance + Scalability
Threading vs. Events • Thread / Message-Passing Duality • Threads • Good • Intuitive Abstraction • Fundamental concurrency • Bad • Threading hard • Always complex • SEDA • Events • Good • Non-blocking • Minimal overhead • Bad • Functional Programming less intutive • Scheduling Notre Dame Computer Science
Created by Ryan Dahl of Joynet in 2009 • Event-driven server-side Javascript • Asynchronous, non-blocking • V8 JS Engine • Model well-suited for current challenges • Reactor Design Pattern • Service-oriented architecture Notre Dame Computer Science
Test Bed • Hardware • 3.06 GHz Intel Core 2 Duo • 2 of 4GB RAM • Software • VMWare Fusion 4.1.1 • Ubuntu Linux 11.10 • Node 0.4.12 • EventMachine 0.12.10 • Apache 2.2.20 [No PHP] Notre Dame Computer Science
Experiments • Apache Benchmark utility • Variable Total and Concurrent Requests • Total [10^3, 10^4, 10^5, 10^6] • Concurrent [10^2, 500, 10^3, 5000, 10^4] • More interested in concurrency • Range determined experimentally • VM Okay • Run for 1 and 2 cores Notre Dame Computer Science
Results • Events Win? • Like Duality + Events/Threads research, must consider system needs • What system was modeled? • Events handled far more concurrent requests • Node >> EventMachine • Blocking libraries in Ruby • Inconsistent • More cores did not help Apache serve more requests Notre Dame Computer Science
Discussion • Evented Architecture may be model of the future • Cloud • Realtime apps • Fewer resources • Increasing connectivity • Web app paradigms • Node is exceptional • Fully evented bottom-up • JavaScript V8 • Software Engineering • Community • Coffeetalk • Client v Browser Notre Dame Computer Science
Further Work • Vary & Elaborate Experiments • Benchmark complex application • Database backend • SEDA Considerations • Simplicity vs. Complexity Notre Dame Computer Science
Thank You! Notre Dame Computer Science