8
DRUPAL 7 PERFORMANCE: ENTITY CACHE Ashok Modi – July 25, 2011

Entity cache

Embed Size (px)

DESCRIPTION

The why and how of installing the entity cache module.

Citation preview

Page 1: Entity cache

DRUPAL 7 PERFORMANCE: ENTITY CACHE Ashok Modi – July 25, 2011

Page 2: Entity cache

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).

Page 3: Entity cache

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.

Page 4: Entity cache

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.

Page 5: Entity cache

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).

Page 6: Entity cache

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).

Page 7: Entity cache

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!

Page 8: Entity cache

Questions? Gripes?

  Thank you!