The document discusses the Drupal 7 Entity Cache module. It summarizes that the module caches entity data, including fields, after the first load to improve performance. It caches the full entity to serve from cache until expiration rather than reloading the entity and fields on each request. The module already supports core Drupal entities and makes it easy to cache other entity types as well. Installing and enabling the module provides these caching benefits without additional configuration.
2. 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).
3. 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.
4. 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.
5. 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).
6. How do I install it?
Download the module.
Enable it and forget it!
Caching is pluggable.
Willwork 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).
7. 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?
Talkingand presenting on performance (frontend and
backend)
See you there!