Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
89
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
59
Recognizing Contextual Polarity (Wilson et. al., 2009)
kmacrow
0
57
C Programming on Linux
kmacrow
3
150
Literati Proposal: Literature Recommendation and Difficulty Analysis
kmacrow
0
46
CSCW: Colocated Asynchronous Applications
kmacrow
1
340
Streaming Video
kmacrow
1
160
Data Interchange Formats
kmacrow
0
3.6k
Automatically Generating User Interfaces
kmacrow
1
74
Other Decks in Research
See All in Research
その推薦システムの評価指標、ユーザーの感覚とズレてるかも
kuri8ive
1
270
高畑鬼界ヶ島と重文・称名寺本薬師如来像の来歴を追って/kikaigashima
kochizufan
0
100
AIグラフィックデザインの進化:断片から統合(One Piece)へ / From Fragment to One Piece: A Survey on AI-Driven Graphic Design
shunk031
0
570
AIスパコン「さくらONE」の オブザーバビリティ / Observability for AI Supercomputer SAKURAONE
yuukit
2
990
ドメイン知識がない領域での自然言語処理の始め方
hargon24
1
210
製造業主導型経済からサービス経済化における中間層形成メカニズムのパラダイムシフト
yamotty
0
250
[Devfest Incheon 2025] 모두를 위한 친절한 언어모델(LLM) 학습 가이드
beomi
2
970
Nullspace MPC
mizuhoaoki
1
480
cvpaper.challenge 10年の軌跡 / cvpaper.challenge a decade-long journey
gatheluck
3
990
MIRU2025 チュートリアル講演「ロボット基盤モデルの最前線」
haraduka
15
11k
MetaEarth: A Generative Foundation Model for Global-Scale Remote Sensing Image Generation
satai
4
490
第二言語習得研究における 明示的・暗示的知識の再検討:この分類は何に役に立つか,何に役に立たないか
tam07pb915
0
400
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Code Reviewing Like a Champion
maltzj
527
40k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Building Flexible Design Systems
yeseniaperezcruz
330
39k
It's Worth the Effort
3n
187
29k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
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