130 likes | 205 Views
Paradigms & Benchmarks. Ryan McCune CSE 60641 Final Presentation. Current Environment. Performance + Scalability. Threading vs. Events. Thread / Message-Passing Duality Threads Good Intuitive Abstraction Fundamental concurrency Bad Threading hard Always complex SEDA Events Good
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