NHibernate с Sql Azure и Sharding - PullRequest
8 голосов
/ 02 марта 2010

Есть ли у кого-нибудь хорошие источники информации об использовании NHibernate с Sql Azure с последствиями шардинга (из-за ограничения в 10 ГБ)? Я знаю, что в Интернете есть сообщения, которые ссылаются на проект шардинга для NH, но они относятся к 3-му кварталу 09 года, и я не нашел ничего более актуального в Google.

Имеется ли у кого-нибудь информация о реализации шардинга вручную, если проект шардинга еще не подходит для использования? Будет ли это так же просто, как создать фабрику сессий для каждого сегмента и сохранить коллекцию фабрик? Кажется, что было бы проблематично воспроизводить вызовы ISession через каждую фабрику, однако я полагаю, что этого можно было бы достичь, передавая операции в виде функций, которые вызываются на ISession из каждой фабрики, но больше похоже на неверный путь для сбоя.

1 Ответ

4 голосов
/ 10 марта 2010

Я написал подтверждение концепции около месяца назад, используя NHibernate на SQLAzure / Sharding. Как вы указали, есть аспекты, которые просто не подходят по этому поводу. Пока поддержка NH не разовьется, вам, возможно, придется попробовать несколько вещей, чтобы выяснить, что работает лучше для вас. Я могу рассказать вам, как это работает у нас.

Мы внедрили простую фабрику стратегий шардинга, которая предоставляет стратегии, которые решают, в какой шард поместить вас в зависимости от наших потребностей. Ваши потребности могут варьироваться здесь. Ключом является создание стратегий, которые обрабатывают, объединяют и упорядочивают результаты вашего запроса. С этого момента создание и использование сеанса происходит так же, как и любое другое использование сеанса, что крайне желательно.

РЕДАКТИРОВАТЬ: Я знаю это сообщение Ayende несколько месяцев назад, но это именно то, как мы это реализовали, и это работает. Ходят слухи, что поддержка в nHibernate придет.

...