Akiban Use Cases - User Customization

Drupal, the world’s most populous content management system, is a classic example of this use case. Web property owners want to leverage Drupal’s customization through its Views and CCK modules, but performance quickly drops off as users add fields and then try to select, order and sort on them. What’s going on here? Why is a seemingly straightforward query creating such performance and scalability challenges? Let’s take a closer look at what this query pattern does in MySQL:

SELECT      nde.nid
           ,nde.title
           ,dfd.field_document_data
           ,dfp.field_podcast_data
           ,dfs.field_slideshow_data
           ,dfv.field_video_data
Individual columns define the data elements required by the application
FROM        dru_node                        nde
LEFT JOIN   dru_content_field_document      dfd
       ON   nde.nid = dfd.nid
      AND   nde.vid = dfd.vid
LEFT JOIN   dru_content_type_podcast        dfp
       ON   nde.nid = dfp.nid
      AND   nde.vid = dfp.vid
LEFT JOIN   dru_content_field_slideshare    dfs
       ON   nde.nid = dfs.nid
      AND   nde.vid = dfs.vid
LEFT JOIN   dru_content_field_video         dfv
       ON   nde.nid = dfv.nid
      AND   nde.vid = dfv.vid
Tables are joined to assemble the object
WHERE       nde.status <> 0 Predicate (filter) applied
ORDER BY    node_created
DESC LIMIT  500
Once the entire set is sorted, return 500 records

 

Akiban versus Traditional Relational Systems

Drupal’s CCK/Views modules and the Field API create new tables whenever users add custom fields. Traditional relational systems have to make increasing amounts of inefficient joins to assemble requested information about these new fields: 

Akiban table-grouping interleaves new table data within existing groups, eliminating costly joins as schemas evolve. In this example, four random access IOs and their corresponding sort/join executions are eliminated.

Business Value In Context

Better end-user value and engagement through customization

Competitive differentiation

Higher customer satisfaction

Higher page views, conversions and retention

Lower cost of infrastructure and support

Akiban table grouping means linear scalability of SQL queries. The graph reflects it. With Akiban, users can customize Drupal applications without concern, increasing relevance and value to end users, driving engagement, conversions and retention.