Blog
Google Developer Podcast Episode Six: The Hibernate Shards Open Source Project
Thursday, August 2, 2007
By Dion Almaer, Google Developer Programs
Using iTunes?
Max Ross and Maulik Shah were part of a core group that worked on the recently open sourced
Hibernate Shards
project.
In the podcast you will learn:
What sharding is and what it means in the world of Hibernate
How the word "shards" is common at Google (the equivalent of "smurf" in The Smurfs)
Why you would want to shard your data to give you increased scalable performance
How the Hibernate Shards project doesn't mess with the core APIs, allowing you to add sharding unobtrusively
What you need to think about if you want to shard your data, and how you can design a schema that has a dimension that is easily sharded. This includes designing without complex relationships.
How you
could
create a crazy project that shards data across multiple databases (as in, one mysql, one Oracle), but that would be crazy
The various strategies to define how you retrieve your objects across the distributed data store
How this compares with horizontal partitioning at the database level itself (e.g. new features in MySQL, PostgreSQL, and others)
And much, much more.
For more information check out the
Hibernate Shards homepage
and the
Google Group
for discussion.
The new release that was mentioned in the podcast just went live. Congratulations to the team.
Start listening now
You can
download the episode directly
, or
subscribe to the show
(
click here for iTunes one-click subscribe
).
Ode to Hibernate
Tuesday, March 20, 2007
Posted by Max Ross, Software Engineer
At each of my first two jobs I wrote an object-relational mapping framework in Java. The first was an abomination, the second merely rotten. I'm not the only engineer to have traveled this road. You write some code to generate SQL for your simple CRUD operations, you get one-to-many relationships working, and then you (and probably the rest of your team) spend a couple of months piling on hacks to support outer joins, many-to-many relationships, and all the other "extras" that are of course not "extras" at all. So imagine my mood the day a coworker introduced me to Hibernate (thanks Toby!). Just a few days of prototyping made it clear that Hibernate was an elegant solution to a hard problem, and that I would never again feel compelled to build an OR Mapping framework in Java. Joy.
As a fan of Hibernate it gives me great pleasure to announce the open-source availability of
Hibernate Shards
, a framework that adds support for
horizontal partitioning
(or in Google parlance, "sharding") to Hibernate Core. There are a number of reasons you might not keep all your data in a single relational database. Maybe you have too much data. Maybe a potential customer won't sign up for your service unless her company's data lives in its own database. Whatever your reasons, dealing with a sharded dataset adds complexity to the development and management of your application. Hibernate Shards is designed to encapsulate and reduce the complexity of building applications that work with sharded datasets.
I worked with Tomislav Nad and Maulik Shah (fellow Googlers who share my enthusiasm for Hibernate and Java infrastructure) to build Hibernate Shards as a 20 percent project. We think what we have now will be useful to the Java community, but this is most certainly not a polished release. There are functionality gaps to be filled, design warts to be smoothed, and bugs to be shaken out. We look forward to working with you as we address these issues and make Hibernate Shards even more powerful in the months to come. If you'd like to read more please visit the
official Hibernate Shards website
.
Happy Sharding!
Labels
#freeandopen
#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments
#io12
#io13
#io14
#io15
#io16
#io17
#io2012
#io2013
#io2014
+1
20% project
3d
about.com
accelerator
accessibility
actions
actions on google
Administrative APIs
AdMob
adobe
Ads
adsense
advogato
AdWords
africa
agpl
AI
AIY
AIY Projects
AIYProjects
ajax
ajax apis
ajax search
ajax search books news apis
all for good
amarok
AMP
AMP Cache
analytics
android
Android Studio
Android Things
android wear
Announcement
apache
api
apis
apis console
apis explorer
apis. charts
app engine
app indexing
app indexing api
App Invites
apple
apps
apps script
area 120
Artificial Intelligence
asia
assistant
atom publishing protocol
Auth
authentication
authsub
awards
axsjax
barcodes
beacon
beacons
bespin
best practices
bigquery
Blockly
blogger
book search
books API
bootcamp
Brotli
browser
building ajax apps
business
buzz
c++
Cache
caja
caldav
calendar
camino
campfire one
caption
cardboard
CardDAV
cast
Certification
channel
chinese
chrome
chrome apps
chrome dev summit
chrome devtools
chrome experiment
chrome extensions
chrome os
chrome web store
chromecast
chromium
chronoscope
cifs
classes
classroom api
client libraries
closure tools
cloud
cloud datastore
cloud functions for firebase
cloud platform
cloud portability
cloud services
cloud sql
cloud storage
cms
CocoaPods
code for educators
code jam
code review
code-in
codeedu
codelabs
coffee with a googler
collada
color
commerce
community
competition
compression
compressorhead
computing heritage
conferences
contacts api
contest
contextual gadgets
conversations
couchdb
countdown to I/O 2012
courses
Crash Reporting
creative commons
cricket
crisis response
cryptography
css
css3
custom search
custom search api
danish linux forum
dart
Data Compression
datastore
design
devart
develop
developer
developer expert
Developer Keynote
developers
developers. meetup
devfest
devfest developer chrome maps social wave apps
DFP
discovery service
diversity
django
dns
docs
documentation
documents list api
dojo
doodles
dot net
doubleclick
dreamweaver
Drive
drupal
earn
earth
eclipse
eclipsecon
eddystone
education
email
EMEA
enterprise
Europe
event
events
evolution
execution api
extensions
Fabric
faster web
featured
feeds
finance
Firebase
Firebase Analytics
Firebase Cloud Messaging
Firebase Dynamic Links
firebug
firefox
firevox
fitness
font api
fosdem
freebsd
freenet
Fridaygram
fusion tables
G Suite
gadgets
Game Developers Conference
games
gcc
gci
GCP
GDA
gdata
GDC17
gdd07
gdd08
gdd09
GDD11
GDE
gdg
gdl
gdl weekly
gears
geo
geolocation
geoserver
getpaid
ghop
git
github
gmail
Gmail APIs
gnome
gnome women's summer outreach program
Go
goo.gl
Google
Google APIs
google apps
google apps api
google apps for your domain
google apps marketplace
google assistant
google assistant sdk
google buzz
google cast
google chart api
google checkout
google chrome
Google Cloud Messaging
Google Cloud Platform
google cloud storage
google code
google code project hosting
google code search
google code university
google compute engine
google data apis
google data protocol
google developer day
google developer days
google developers
Google Developers Academy
Google Developers Live
Google Developers site
Google Developers University Consortium
google docs
Google Docs API
google doctype
Google Drive
Google Drive SDK
google earth
google fit
Google Fonts
google friend connect
google gadgets
google gears
google grants
google health
Google I/O
Google Identity Platform
google io
google mashup editor
Google Noto fonts
Google Play
google play services
Google Science Fair
Google sheets
Google Sheets API
Google Slides
Google Slides API
Google Spreadsheets API
google storage
google summer of code
Google tech talk
google technoloy user groups
google tv
google visualization api
google wallet
Google Wave
google web elements
google web toolkit
google.org
google+
googlecast
googleio
googlenew
GooglePlay
googlewebelements googleio
GPE
GPT
green linux
grow
gsoc
GSuite
gtags
gtug
guest post
guice
gulp
GWSOP
gwt
gzip
hackathon
hacking
hackthon
hangouts
haproxy
hg
hibernate
howto
hpux
html
html5
I/O
I/O 17
I/O 2017
I/O Extended
I/O Live
ical
identity
ietf
ignite
igoogle
iguanas
iiw
Image Compression
image search
Imara
in-app payments
incubator
India
indie
internationalization
internet explorer
internet of things
interviews
IO17
IO2017
ios
iOS SDK
IoT
ipad
iphone
israel
Issue Tracker
jaiku
japanese
java
javascript
jetpack
joomla
joomladayus2007
joomladayusa
karaoke
KDE
KDE 4.0
kernel
kernel summit
keynote
khronos
kids
kids coding team
kml
korean
labs
lanchpad
languages
latitude
launch
launchpad
lca
Leadership
lessons
licenses
linux
linux foundation
linux summit
linux virtual server
linuxconf eu
localization
LoCo
london
mac
MacFuse
machine learning
Makers
malware
maps
maps apis
Marketplace
material
material components
material design
MDL
meetup
mercurial
MIT CSAIL
mobile
mobile sites
mobile speed
mobile UX
mod_pagespeed
Moderator
monetize
MOOC
mozilla
mylar
myspace
MySQL
mythtv
named
narratives
native ads
native client
nearby
netbsd
non-profit
nonsense
nosql
notifications
Noto Serif CJK
nss
O3D
oauth
OAuth playground
OAuth2
objective-c
OCaml
ocr
ODF
office hours
oha
OOXML
open data
open source
open source blog
open web
openajax alliance
opengl
openid
opensocial
openssh
openssl
oreilly
orkut
oscon
oscon2007
osi
oss devs
ossjam
osx
pactester
page speed
PageSpeed
palette
payments
performance
phone
photos
picasa
picasa web
places API
play services
playground
plone
plone sprint
podcast
polymer
Polymer Summit
portugal
posix
PowerMeter API
prediction api
preview
prizes
programming
Progressive Web App
project hosting
Project Loon
Project Tango
proximity
pubsubhubbub
PWA
py3k
python
python sprint
rails
random hacks of kindness
Rasberry Pi
reader
Remote Config
research
result snippets
Rewarded Ads
Rewarded Video Ads
rhino
Saatchi
salesforce
samba
sandbox
Santa Tracker
scalability
scholarship
Scratch
screencast
sdk
sdks
search
security
serif
service worker
sessions
Sheets API
shindig
shopping
Shoreline Amphitheatre
showcase
sidewiki
sign-in
silverstripe
sitemaps
sites api
sixapart
sketchup
Slides API
Smart Lock for Passwords
soap search api
soc
social
social graph
solaris
souders
spa2007
spdy
speakers
speed
speed tracer
standards
startup
startups
storage
Street View
student programs
students
stuff
subscribed links
subversion
summer of code
Sundar Pichai
SVG
sxsw
syndication
tasks API
Team Drives (new)
techmakers
templates
TensorFlow
TensorFlow Research Cloud
Test Lab
testing
themes
tool
tools
topp
training
tranparency
transit
translate
translation
tutorials
tv
ubiquitous computing
ubiquity
ubucon
ubuntu
Udacity
UI
unicode
unit test
Unity
Universal App Campaigns
unix
URLs
video
videos
Vim
virtual keyboard
virtual reality
visualization
VR
wattpad
Wearables
Weave
web animations api
web apps
web components
web designer
web exponents
web fonts
web performance
web platform docs
webfonts
webgl
webmaster
WebP
website optimizer
weekly roundup
WhiteHouse.gov
Who's at Google I/O
win
windows
windows programming
Winter of Code
Women Tech Makers
women techmakers
wtm
xauth
yahoo
youtube
zlib
zurich
ZXing
Archive
2017
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2007
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2006
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2005
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Subscribe
Google
on
Follow @googledevs
Visit
Google Developers
for docs, event info, and more.