Deployment structure of pivots module recommendation block for Drupal.org
We hope to deploy the pivots block to Drupal.org recently. The block displays on a module page its related discussions and related modules. This article explains how the pivots block will be deployed on Druapl.org.
The pivots recommendation system consists of two components. The first one is the Indexer (written in Java). It's running as a cron job on scratch.drupal.org, and generates related conversations and related modules as recommendations. It has read-only permission to access 8 D.O database tables directly in order to compute the recommendations. The computed results are then saved to a separate pivots database on masterdb-other.d.o.
The second component is a patch to "drupal_org" module. It reads the pivots database, and displays the recommendations on a module page block. In order to access the pivots database, the "settings.php" file on D.O. has to have a line looks like $db_url['pivots']="...". We use db_set_active('pivots') to direct DB queries to the pivots database.
The two-components structure gives us as developers the flexibility to tweak the algorithm. We can easily update the recommendation algorithm on scratch.d.o without harming the production d.o. server. After we receive enough feedback from the community and stabilize the algorithm, we can then merge the two components and make it running only on d.o.
In the next blog, I will explain how the recommendation algorithm works.
Thanks for reading :)