Live from the Minnesota Search Sprint, Day One
Day One of the Minnesota Search Sprint has already received detailed reportage by Doug Green and the fresh local perspective of our gracious local organizer Chad Fennell. The object of our collection attention today was Drupal's core search module, pictured above (and linking to a PDF) in a visualization of its function call graph. The image is generated by some of the code analysis software I have been playing with over the past few months, and shows some of the complexity and architectural ingenuity involved in this module, largely the brainchild of Steven Wittens.
This has been a great opportunity to learn from and spend good social time with some really generous, smart, and interesting people. People talk about Drupal Rockstars, but today I discovered that both Ernest Berry and Robert Douglass were top-ranked graduates in classical performance (in percussion and French horn, respectively) from the same school. Whatever they're doing there, it sure seems to produce exceptional Drupal developers.
Fuzzy search module author Blake Lucchesi spent a bunch of today working with Chad to provide improved test coverage - something I will also have to bite the bullet on over the next two days. I'm also hoping to pick his brain tomorrow about setting up Komodo with Xdebug, now that he has worked through the difficult details with the assistance of Robert.
I spent the morning helping out with various key issues in the search issue queue, including the search node ranking refactoring patch introduced by Doug. This promises many exciting possibilities, including, for example, the ability to increase a node's search ranking based on the number of times it is clicked through in search results, and implementing multi-factor ranking schemes similar to Flickr's 'interestingness'. I will be posting examples of this at Drupal.org in the next few days.
The afternoon was spent wrestling with some of the very difficult issues involved in distributed search, including how to deal with the asynchronous return of search results. Trying to find appropriate abstractions for the faceted search project by fellow Canadian search sprinter David Lesieur was also fun. I also committed a few bug fixes to Raincity's nascent OAuth module, which provides an implementation of the OAuth distributed authentication protocol. It's still in a rather rough form, but I'm hoping to put it together with search / distributed search to provided authenticated, distributed search across a cloud of federated Drupal sites.
Finally, in a fit of overindulgent enthusiasm, I started a few experiments with caching of Drupal search results. I'm hoping to refine this code, benchmark it, and analyze potential performance improvements under various conditions.
| Attachment | Size |
|---|---|
| search_callgraph.pdf | 28.21 KB |
| search_callgraph.png | 103.17 KB |









