Upload
ashok-modi
View
1.382
Download
1
Embed Size (px)
DESCRIPTION
The why and how of installing the entity cache module.
Citation preview
DRUPAL 7 PERFORMANCE: ENTITY CACHE Ashok Modi – July 25, 2011
Drupal 7 sure does some cool stuff.
Fields in core! Everything is trying to be an entity. Everything has the ability to get displayed using
various build modes (full, teaser, search index, search result come out of the box).
Was using Display Suite with views (and taking advantage of the build modes).
HOWEVER
Field API currently creates a table for each field. Imagine 50 fields on one type of content…50 tables
(plus 50 revision tables!) Running a entity_load each time really blows when you
only need a few fields to show up for a display mode. Views also does a full entity_load
Due to the design of the Field API, entity_load is done unless you are only retrieving the title of the entity.
Drupal caches the results of the fields but only on a one-by-one basis.
Tough choices…
Write your own module to store multiple ‘fields’ in one row http://drupal.org/project/pbs aims to tackle that but its not
ready. Switch over to using MongoDB (http://drupal.org/
project/mongodb) Really fast. Really cool. Different way of thinking and not enough support on D.O
yet. Definitely look at http://drupal.org/project/efq_views
though.
Entity Cache to the rescue.
Caches the entity after it is loaded the first time (including fields).
Call on the cache and serve that to the user. Served until cache expires or until entity is updated /
deleted. Already supports all core entities (nodes, users,
taxonomy, comments, files, vocabulary). Easy to add support into other types of entities (rules?
Media? Commerce? They can all be entitycache friendly).
How do I install it?
Download the module. Enable it and forget it! Caching is pluggable.
Will work just fine with other backends like memcache, APC etc.
Help your server behave in a sane way. Some sites will see great gains Some maybe not as good (you can try another caching backend
if you have a lot of data).
Interested?
How can I help? Test out some of the issues! Try to get this into core –
http://drupal.org/node/597236 Check out the drush integration in the issues queue.
Cache all your entities with a single command (made by yours truly ).
Coming to DrupalCampLA? Talking and presenting on performance (frontend and
backend) See you there!
Questions? Gripes?
Thank you!