The Origin Story
Magento is slow. Very slow.
Mangento is the most popular e-commerce platform on the Internet. But its modularized architecture and flexible configurations come with a cost: more than 4 million lines of PHP code and 2 million lines XML configurations. This overhead makes Magento resource hungry and leads to performance issues — even a medium-sized store can require a very powerful server or cluster of servers.
Magento is not page cache friendly.
Page caching is the most powerful way to bypass Magento's heavy architecture and speed up slow pages, but even though 95% of the content on a Magento page may be the same for all visitors (and is thus safe to cache), items in a shopping cart or the list of last viewed items, for example, cannot be cached and shown to all visitors. Because of these small blocks that change per-user, traditional page caches cannot cache most Magento pages and are not able to speed Magento up significantly.
Hole punching to the rescue.
LiteMage Cache uses Edge Side Includes (ESI) to punch holes in pages where information changes from visitor to visitor. The remaining content is saved to cache. When the next person visits the same page, the cached content is served quickly, with only the holes needing to be filled in with data for that visitor. LiteMage Cache also caches per-user data in private caches, so entire pages, even those with multiple holes, can be assembled completely from cache.
What Is LiteMage Cache?
LiteMage Cache features:
- Edge Side Include (ESI) engine for hole punching.
- Punched holes are configurable and mapped to blocks defined in Magento page layout.
- Main page and public blocks are cached once and served to all users. Private blocks are cached per-user and served only to that user.
- Retrieve multiple blocks in one request, minimizing the overhead of building pages with multiple blocks.
- Supports Last Viewed Product, Product Comparison, Product Toolbar Options, Stock Tracking and other features requiring communication with the Magento backend. (This support can also be turned off for even faster speeds.)
- Supports layered navigation, category filtering, view as, sort by and show per page functionality.
- Supports multi-store, multi-currency, and multi-user groups.
- Built-in crawler to warm up cache.
LiteMage Cache Benchmarks
How Does LiteMage Cache Compare to Other Page Caching Solutions?
Varnish-based solutions (Turpentine, etc.)
- Complicated to set up.
- Requests dynamic blocks individually, multiplying the high cost of Magento framework initialization. Can make a cached page even slower than an uncached page.
- No SSL support. Frontend proxy server required to support HTTPS, adding even more layers.
- Uses AJAX, which lowers overall server performance.
PHP-based solutions (Full Page Cache)
- Content is cached by PHP, so all pages are still generated dynamically by PHP. PHP is a heavy language and overall scalability is thus limited by PHP scalability.
- Reliance on PHP causes generally slower page load times.
- Limits in PHP scalability make PHP solutions vulnerable to DDoS attacks.
- All content can be assembled from cache, even per-user, private blocks, for best performance.
- Multiple blocks are called for in a single request, lowering overhead.
- Native SSL support.
- Supremely scalable — handles 10,000's of connections without missing a beat.
- Built-in extra anti-DDoS features protect you from attacks.