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
Magento 2 Caching Strategies
Search
Marko Martinović
November 24, 2014
Programming
0
910
Magento 2 Caching Strategies
Meet Magento Poland, Warsaw, November 24th to November 25th 2014.
Marko Martinović
November 24, 2014
Tweet
Share
More Decks by Marko Martinović
See All by Marko Martinović
Magento 2 performance test toolkit
markomartinovic
1
440
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
4
1.3k
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
1.8k
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
570
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
120
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
850
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.1k
Ethereum_.pdf
nekomatu
0
460
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
C++でシェーダを書く
fadis
6
4.1k
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
The Cult of Friendly URLs
andyhume
78
6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Why Our Code Smells
bkeepers
PRO
334
57k
Fireside Chat
paigeccino
34
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Documentation Writing (for coders)
carmenintech
65
4.4k
Transcript
Meet Magento Poland 2014 Meet Magento Poland 2014 Marko Martinović
Magento 2 Caching Strategies
Meet Magento Poland 2014 2.0 Platform Goals “Improved performance and
scalability”
Meet Magento Poland 2014 Architecture Built on top of Zend_Cache
Meet Magento Poland 2014 Architecture Multiple frontend pools, each associated
to one or two level backend adapter
Meet Magento Poland 2014 Architecture Each cache type with its
own class enforcing specific cache tag
Meet Magento Poland 2014 Frontend Pools Out the box: •
default - General type instances • page_cache - PageCache type instance
Meet Magento Poland 2014 Backend Adapters Cm_Cache_Backend_File as the default
cache backend
Meet Magento Poland 2014 Backend Adapters All the usual suspects,
with MongoDB adapter introduced
Meet Magento Poland 2014 Cache Types Good old • Configuration
• Layouts • Blocks HTML output • Collections data • EAV types and attributes • Translations Brand New • View files fallback • View files pre- processing • Integrations Configuration • Integrations API Configuration • Web Services Configuration • PageCache
Meet Magento Poland 2014 Collections Data Fetch strategy interface with
Query and Cache implementations
Meet Magento Poland 2014 Collections Data Store, Store Group, Website
and Catalog Category collection cached
Meet Magento Poland 2014 EAV Types and Attributes Implemented to
cache eav_entity_type table collection. Still here, still unused, still no one knows why.
Meet Magento Poland 2014 EAV Types and Attributes "One developer
is working on it for a month, other comments it out for testing, third one is then afraid to enable it back" -Ivan Weiler @Inchoo
Meet Magento Poland 2014 View Files Fallback Requested asset is
being searched for using fallback rules applied to fallback context
Meet Magento Poland 2014 View Files Fallback Path to requested
asset resolved and cached
Meet Magento Poland 2014 View Files Pre-processing Pre-processing of Magento-flavoured
CSS tricks like @magento_import, @import, scope notation file references and Less
Meet Magento Poland 2014 View Files Pre-processing Path to pre-processed
asset cached
Meet Magento Poland 2014 PageCache Out the box: • PHP/AJAX
based (Built-in) • Reverse proxy/ESI/AJAX based (Varnish)
Meet Magento Poland 2014 PageCache Caching controlled by ‘Cache-Control’: public,
max-age=XY, s-maxage=XY vs. private, max-age=YZ vs. no-store, no-cache, must-revalidate, max- age=0
Meet Magento Poland 2014 PageCache Setting cacheable=false to some block
results with whole page not being cached
Meet Magento Poland 2014 Hole Punching Setting _isScopePrivate to some
block results with its content not being cached
Meet Magento Poland 2014 Hole Punching Setting ttl to some
block results with its content being served through ESI and cached by Varnish
Meet Magento Poland 2014 Built-in Page cache saved through dedicated
frontend instance by PHP code
Meet Magento Poland 2014 Built-in Dynamic blocks not cached and
served exclusively through AJAX: <!-- BLOCK header --><li class="greet welcome">Default welcome msg!</li><!-- /BLOCK header -->
Meet Magento Poland 2014 Built-in Pros • Works out the
box with no special setup Cons • Leaves a lot to be desired performance- wise
Meet Magento Poland 2014 Varnish
Meet Magento Poland 2014 Varnish Page cache maintained and served
by reverse proxy
Meet Magento Poland 2014 Varnish Without ttl set, dynamic blocks
not cached and served through AJAX
Meet Magento Poland 2014 Varnish With ttl set, dynamic blocks
cached and served through ESI: <esi:include src="..." />
Meet Magento Poland 2014 Varnish Pros • The best performing
caching solution, if properly configured Cons • The worst performing caching solution, if configured improperly • Considerable setup and maintenance overhead • Requires SSL termination proxy to support HTTPS
Meet Magento Poland 2014 Benchmarks Magento 2 (Alpha 102) Magento
EE (1.14.0.1)
Meet Magento Poland 2014 Any questions?
Meet Magento Poland 2014 @MarkoTechyTalk Team Lead/MCD+ at Inchoo Thank
you!