【问题标题】:NHibernate with Sql Azure and ShardingNHibernate 与 Sql Azure 和分片
【发布时间】:2011-01-22 18:51:47
【问题描述】:

有没有人有任何关于使用 NHibernate 和 Sql Azure 的良好信息来源以及分片的影响(因为 10gb 上限)?我知道互联网上有一些帖子提到了 NH 的分片项目,但它们来自 09 年第 3 季度,我在 google 上找不到更多相关内容。

如果分片项目尚不可行,是否有人知道有关手动实施分片的信息?是否就像为每个分片创建一个会话工厂并保留一系列工厂一样简单?这似乎是通过每个工厂复制 ISession 调用会有问题,但是我认为可以通过将操作作为 Funcs 传递来实现,这些操作从每个工厂在 ISession 上被调用,但似乎更像是错误的路径。

【问题讨论】:

  • 我知道您的分片问题已经得到解答,但是在 2010 年 6 月,SQL Azure 将拥有 50gb 的存储大小。这可能会消除(或至少减少)对分片的需求。见blogs.msdn.com/sqlazure/archive/2010/03/19/9981936.aspx
  • @David 感谢这篇文章,这确实是个好消息,因为如果您归档历史数据,50GB 的数据库相当可观且相对容易使用,但任何企业平台的 10GB 都可以缩短工作时间很快。

标签: nhibernate azure sharding azure-sql-database


【解决方案1】:

大约一个月前,我在 SQLAzure/Sharding 上使用 NHibernate 编写了一个概念证明。正如您所指出的,有些方面对此感觉不正确。在 NH 支持发展之前,您可能需要尝试一些方法来找出最适合您的方法。我可以告诉你它是如何为我们工作的一般流程。

我们实施了一个简单的分片策略工厂,它提供的策略可以根据我们的需要决定将您放置在哪个分片中。您的需求可能在此处有所不同。关键是创建处理、合并和排序查询结果的策略。从那里开始,会话的创建和使用与任何其他会话的使用相同,这是非常可取的。

编辑:我知道this post by Ayende 已经有几个月的历史了,但这正是我们实现它的方式并且它是有效的。有传言说 nHibernate 会提供更好的支持。

【讨论】:

  • 这是我第一次真正看到这个帖子,肯定非常有用。
  • 我真的希望能在这个问题上获得更多信息,这就是为什么我设置了我在这个问题上做过的最大的赏金,但是你的帖子给了我更多的信息,而你是唯一可以提供的人任何帮助,所以我给了你赏金,而不是让 SO 过期并给你一半。
  • 谢谢,克里斯。我也希望有更多的人参与进来,因为我很想知道是否有人有更好的解决方案。 :-)
猜你喜欢
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
相关资源
最近更新 更多