Hibernate Shards
The Hibernate projects has just made a big release, and it include a completely new project call Hibernate Shards. This project aims to provide a good abstraction on horizontally partitioned data sets.
A nice example would be Blogger.com, which has some milliions of users. At this level of traffic and data set size, normal data bases breaks. You really want to do horizontal partioning of the data, so all the data for users whose name starts with A-G are on Db1 and all the rest are on F-Z Db2. There was an article from O'Rielly in this subject about 6 months ago, talking with the big players in this market, they all ended up going with this approach.
Hibernate Shards is still in early stages, but the idea is sound, and it looks like it can be an easy way to scale up with Hibernate, without a lot of application modifications.
Comments
Another possible approach is to use the RaidB (http://c-jdbc.objectweb.org/ or http://sequoia.continuent.org). I never heard of anything as such developed on .Net platforms ..
This reminds me of how content based load balancing is done in space based technologies such as GigaSpaces. A common pattern is to have a cloud of spaces to process the data and the data is routed to its designated space based on some criteria. For instance if you process stock quotes all quotes starting with A-G go to space 1 and H-> to space 2. This design has proven to be rather effective.
Is this like the table partitioning (in relational world)?. i think that a posible use would be with data that change over time.
You partition the data into several file groups or tables to keep search efficient.
This is the next thing after that, partitioning into several separate databases.
Nice! A hibernate project contributed by Google.
Any idea where and if Google is actually using
Hibernate ? GData ? Internal ?
No idea, actually.
Probably for internal stuff
Comment preview