Вопрос

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top