mercoledì 21 marzo 2007

Hibernate incontra Shard e va orizzontale

Il framework di Hibernate si arricchisce ancora con una nuova utilissima estensione: Hibernate Shard

Detta in breve, Hibernate Shard consente di estendere in modo completamente trasparente il layer di Hibernate ad un contesto con più database.
Diciamolo ancora più terra terra. Supponete di avere i dati sparsi in più database (per motivi legali, di prestazioni, o per riesumazioni di applicazioni datate) e di voler persistere i vostri oggetti per alcuni campi su un database e per altri su un'altro database. Bene, Hibernate Shard fa esattamente questo: senza modificare il vostro modello ad oggetti vi basterà ridefinire in quali database persistere i singoli campi e Shard organizzerà per voi transazioni distribuite nella solita chiara e trasparente veste di Hibernate.

Ovviamente il tutto funziona anche a rovescio, qualora decideste di eseguire delle select distribuite.

E, un po' meno ovviamente, anzi quasi miracolosamente, il tutto funziona anche qualora voleste avere più repliche dello stesso db, e per ragioni di performance voleste lanciare select computazionalmente pesanti, ad esempio con politica round robin sulle singole repliche.

L'estensione è stata realizzata dai soliti buontemponi di Google nel loro arcinoto 20% di tempo libero.

Nessun commento: