Est-ce que quelqu'un a de bonnes sources d'information sur l'utilisation de NHibernate avec Sql Azure avec les implications de sharding (à cause du plafond de 10gb)? Je sais qu'il y a des articles sur internet qui font référence à un projet de sharding pour NH mais ils sont du 3ème trimestre 09 et je n'en ai pas trouvé de plus pertinent sur google. Est-ce que quelqu'un a des informations sur la mise en œuvre manuelle d'un sharding si le projet sharding n'est pas encore utilisable? Serait-ce simplement aussi simple que de créer une usine de session pour chaque fragment et de conserver une collection d'usines? Il semble qu'il serait problématique de reproduire les appels ISession à travers chaque usine mais je suppose qu'il pourrait être réalisé en passant des opérations comme Funcs qui sont invoqués sur l'ISession de chaque usine, mais semble plus être le mauvais chemin à descendre.NHibernate avec Sql Azure et Sharding
Répondre
J'ai écrit une preuve de concept il y a environ un mois en utilisant NHibernate sur SQLAzure/Sharding. Comme vous l'avez souligné, il y a des aspects qui ne sont tout simplement pas corrects. Jusqu'à ce que le soutien du NH ait évolué, vous devrez peut-être essayer quelques petites choses pour découvrir ce qui vous convient le mieux. Je peux vous dire un flot général de la façon dont cela a fonctionné pour nous.
Nous avons mis en place une usine de stratégie de sharding simple qui fournit des stratégies qui décident de la partition pour vous placer en fonction de nos besoins. Vos besoins peuvent varier ici. La clé consiste à créer des stratégies qui traitent, fusionnent et ordonnent les résultats de vos requêtes. À partir de là, la création et l'utilisation de la session sont les mêmes que pour n'importe quelle autre utilisation de la session, ce qui est hautement souhaitable.
EDIT: Je sais que this post by Ayende a quelques mois, mais c'est exactement comme cela que nous l'avons implémenté et cela fonctionne. La rumeur est un meilleur soutien dans nHibernate viendra.
C'est la première fois que j'ai vu ce post vraiment très utile à voir. –
J'espérais vraiment obtenir plus d'informations sur cette question, c'est pourquoi j'ai mis la plus grande prime que j'ai jamais faite sur cette question mais votre message m'a donné plus d'informations que moi et vous étiez la seule personne à vous aider. bounty au lieu de laisser SO expirer et vous donner la moitié. –
Merci, Chris. J'espérais aussi que plus de gens interviendraient parce que j'étais curieux de voir si quelqu'un avait une meilleure solution. :-) – Kilhoffer
Je réalise que votre question de sharding a été répondue, mais en juin 2010, SQL Azure aura une taille de stockage de 50 Go. Cela pourrait potentiellement éliminer (ou au moins réduire) le besoin de sharding. Voir http://blogs.msdn.com/sqlazure/archive/2010/03/19/9981936.aspx –
@David merci pour ce post, c'est en effet une bonne nouvelle car une db de 50Go est assez substantielle et relativement facile à utiliser au sein de Si vous archivez des données d'histoire mais 10GB pour n'importe quelle plate-forme d'entreprise peut être faite rapidement. –