paradigms & benchmarks
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Not
re D
ame
Com
pute
r Sci
enceParadigms &
BenchmarksRyan McCuneCSE 60641 Final Presentation
11/3
/11
1
Not
re D
ame
Com
pute
r Sci
ence
11/3
/11
3
• 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
Threading vs. Events
Not
re D
ame
Com
pute
r Sci
ence
11/3
/11
4
• 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
Not
re D
ame
Com
pute
r Sci
ence
Test Bed
• Hardware• 3.06 GHz Intel Core 2 Duo• 2 of 4 GB 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]
11/3
/11
5
Not
re D
ame
Com
pute
r Sci
ence
11/3
/11
6
• 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
Experiments
Not
re D
ame
Com
pute
r Sci
ence
Results
11/3
/11
10
• 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
Not
re D
ame
Com
pute
r Sci
ence
Discussion
11/3
/11
11
• 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
Not
re D
ame
Com
pute
r Sci
ence
Further Work
11/3
/11
12
• Vary & Elaborate Experiments• Benchmark complex application• Database backend
• SEDA Considerations• Simplicity vs. Complexity