Shards
September 6, 2007 · by Scott Fradkin
I was checking out the Hibernate website (http://www.hibernate.org) and saw something called Hibernate Shards. I thought it sounded interesting so I investigated further.
It seems that some engineers at Google started a project in their 20% time to add functionality to Hibernate to deal with sharding.
It’s an interesting idea. Shards is just Google-speak for horizontal data partitioning. Typical vertical data partitioning will group data rows together in the same table based on some kind of criteria. The theory being that by grouping the data together based upon what you’re searching for, the database will be more efficient when performing the search and returning the data.
Horizontal partitioning is similar except that the data is spread across multiple tables with the same layout.
Hibernate Shards is great in that it abstracts out behind the scenes the strategies for which tables to search when performing a query and which table to insert new data into based upon the strategy you’ve chosen. It will automatically union all the returned rows together if it needs to retrieve data from multiple shards (tables).
It’s an interesting concept. I wonder if we’ll see it in use more and more as a data partitioning scheme.
Filed in: Team Member Blog Comments (0)

Comments
There are no comments for this entry.
Commenting is not available in this section entry.