Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Shellac: a distributed web accelerator
Search
Kalan MacRow
December 10, 2013
Research
0
83
Shellac: a distributed web accelerator
Shellac is an HTTP/1.1 distributed caching proxy for Linux.
Kalan MacRow
December 10, 2013
Tweet
Share
More Decks by Kalan MacRow
See All by Kalan MacRow
Vaportrail
kmacrow
0
54
Recognizing Contextual Polarity (Wilson et. al., 2009)
kmacrow
0
54
C Programming on Linux
kmacrow
3
140
Literati Proposal: Literature Recommendation and Difficulty Analysis
kmacrow
0
40
CSCW: Colocated Asynchronous Applications
kmacrow
1
290
Streaming Video
kmacrow
1
160
Data Interchange Formats
kmacrow
0
3.6k
Automatically Generating User Interfaces
kmacrow
1
66
Other Decks in Research
See All in Research
「並列化時代の乱数生成」
abap34
3
910
言語と数理の交差点:テキストの埋め込みと構造のモデル化 (IBIS 2024 チュートリアル)
yukiar
4
920
Global Evidence Summit (GES) 参加報告
daimoriwaki
0
190
クロスセクター効果研究会 熊本都市交通リノベーション~「車1割削減、渋滞半減、公共交通2倍」の実現へ~
trafficbrain
0
290
渋谷Well-beingアンケート調査結果
shibuyasmartcityassociation
0
300
文書画像のデータ化における VLM活用 / Use of VLM in document image data conversion
sansan_randd
2
320
LiDARとカメラのセンサーフュージョンによる点群からのノイズ除去
kentaitakura
0
180
移動ビッグデータに基づく地理情報の埋め込みベクトル化
tam1110
0
160
最近のVisual Odometryと Depth Estimation
sgk
1
310
[依頼講演] 適応的実験計画法に基づく効率的無線システム設計
k_sato
0
170
TransformerによるBEV Perception
hf149
1
580
研究の進め方 ランダムネスとの付き合い方について
joisino
PRO
56
20k
Featured
See All Featured
Speed Design
sergeychernyshev
25
670
Building Applications with DynamoDB
mza
91
6.1k
For a Future-Friendly Web
brad_frost
175
9.4k
Adopting Sorbet at Scale
ufuk
73
9.1k
GitHub's CSS Performance
jonrohan
1030
460k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Designing for humans not robots
tammielis
250
25k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Optimizing for Happiness
mojombo
376
70k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Transcript
Shellac A distributed web accelerator. Kalan MacRow Data at Scale
‘13
Shellac. (noun) Lac bug resin melted into thin flakes, used
for making varnish Kalan MacRow Data at Scale ‘13
Shellac. (verb) To defeat or beat (someone) decisively Kalan MacRow
Data at Scale ‘13
5.2% of the top 10,000 sites. Kalan MacRow Data at
Scale ‘13
Kalan MacRow Data at Scale ‘13 ! Script interpreters 50+
SQL queries Localization Personalization Template rendering …. ! 3 sec.
• HTTP/1.1 proxy server for Linux 2.5+ • Distributed RAM
cache built on Memcached • Level-triggered edge-polling architecture • 1K lines of Python Kalan MacRow Data at Scale ‘13 Design
Kalan MacRow Data at Scale ‘13 “The key to making
programs fast is to make them do practically nothing” — Mike Haertel, original author of GNU grep Design
Kalan MacRow Data at Scale ‘13 • I/O bound and
largely avoids the GIL • Substantial function/method/syscall call overhead • Iteration with while, for expensive • Event dispatch really suffers, but… Design
Load Balancer Web Server Accelerator Cache Web Server Accelerator Cache
Web Server Accelerator Cache Typical HA Kalan MacRow Data at Scale ‘13
Shellac HA Kalan MacRow Data at Scale ‘13 Load Balancer
Web Server Shellac Web Server Shellac Web Server Shellac Cache Dedicated Cache
Kalan MacRow Data at Scale ‘13 • Interested in performance
both • as a proxy / load balancer • as a caching proxy / accelerator • Graphs: best of Apache, Varnish and worst for Shellac over 3 runs Evaluation
Kalan MacRow Data at Scale ‘13 • 4 x m1.large
instances (4 core Xeon, 8GB) • Elastic Load Balancer • Master for running benchmarks • One availability zone, one region
Kalan MacRow Data at Scale ‘13 Evaluation Apache Benchmark (-n
10k -c 1000)
Evaluation Kalan MacRow Data at Scale ‘13 Apache Benchmark (-n
10k -c 1000)
Evaluation Kalan MacRow Data at Scale ‘13 Apache Benchmark (-n
10k -c 1000)
Kalan MacRow Data at Scale ‘13 Static Dynamic 1 Dynamic
2 Requests / sec. (mean) Evaluation 10K requests, 1K clients
Static Dynamic 1 Dynamic 2 Transfer Rate (KB/s) Kalan MacRow
Data at Scale ‘13 Evaluation 10K requests, 1K clients
Static Dynamic 1 Dynamic 2 Peak Memory Usage (MB) Kalan
MacRow Data at Scale ‘13 Evaluation
Kalan MacRow Data at Scale ‘13 Conclusions • Shellac 0.1.0a
is competitive • as a proxy / load balancer • as a caching proxy / accelerator • A C port might shellac Varnish!
Future • HTTP/1.1 compliance • Try with PyPy JIT’ing, eventually
port to C • Binary format for cache entries • Tighter integration of cache node with proxy Kalan MacRow Data at Scale ‘13
https://github.com/kmacrow/Shellac Kalan MacRow Data at Scale ‘13