Item Buckets by Tim Ward

October 24, 2012

tim wardAfter the last mind blowing talk by Tim Ward I decided it would be prudent to catch this talk about breaking the million item mark with content buckets. As if simply storing this much information wasn't enough of a challenge, he was also trying to solve the problem of quickly querying this data set based on a bit of meta information.   

Ultimately there are a lot of ways you can approach this kind of problem with varying degrees of success, but like the precocious individual he is, he decided on a custom solution called "Item Buckets".     

The item buckets are parent nodes that work in concert with child items whose templates have been enabled to support buckets. The visual feedback you get is that these newly "bucketized" items are now replaced by a transparent icon that indicates the children are now managed by the bucket system. Non-bucketized items (I realize that I'm completely butchering the english language here) will still display as normal. This indicates that their location in the tree is no longer important because accessing/editing these items is now handled through a custom editing tab with a search box on the parent bucket item. Simply describing it as a search form falls far short of the sheer power contained in this neatly displayed form. The form itself has a host of power search commands whose state is indicated by a simplified and manageable icon within the text field once its been selected. The snappy response from a system that's querying over nine million items is really impressive. Clearly, lucene search indexes are the workhorses driving this beast. Removing this large data set from the typical editing field access means you'll be unable to edit these items in the way you're used to but this has also been nicely handled by allowing you to not only edit the items in the search results but also allows you to edit multiple items at one time. Another issue he brought up was how to handle the urls for these items that are being stored in an arbitrary folder structure. The way to handle this will depend on what the end user is comfortable with, but the examples he gave was to folder by date down to the second or even using an item's short ID and process the link with a custom Link Manager entry.   

There's really a whole lot more features that I'm unable to document while I'm furiously trying to process everything I'm seeing but the solution is really slick and very thorough. As you'd expect everything is componetized and is customizable. As a project it's been released on the Sitecore Marketplace so get it while its hot.