本周初,来自微软的 Cihan Biyikoglu 向开发者介绍了如何将其代码适配成即将到来的SQL Azure Federations 以支持其连接模型。SQL Azure Federations 将支持一种新的名为FILTERING 的连接,用于处理federated data 并提供了重新分区的组件,该组件将支持完整的可用性。其意图在于为开发者提供一种安全模型以处理federated data 和多租应用。
SQL Azure Federations 之前的分片
在 SQL Azure Federations 发布前,Azure 开发者与架构师在处理 federated data 时必须得克服两个主要的问题:连接池管理与缓存一致性。对于连接池管理来说,随着时间的推移,连接开始变得陈旧,这时的碎片将成为开发者最大的忧虑。当数据在多个分片之间移动时将很难维护好缓存一致性,在有数据移动时,开发者需要同步更新分片映射才行。
即将到来的 Federations
有了 Federations,开发者就不需要管理到每个分片上的连接了,只需要提供一条 USE FEDERATION 语句即可,如下所示(来自 Cihan):
<a href="http://search.microsoft.com/default.asp?so=RECCNT&siteid=us%2Fdev&p=1&nq=NEW&qu=USE&IntlSearch=&boolean=PHRASE&ig=01&i=09&i=99">USE</a> FEDERATION orders_federation(customer_id=55) <a href="http://search.microsoft.com/default.asp?so=RECCNT&siteid=us%2Fdev&p=1&nq=NEW&qu=WITH&IntlSearch=&boolean=PHRASE&ig=01&i=09&i=99">WITH</a> RESET, FILTERING=<a href="http://search.microsoft.com/default.asp?so=RECCNT&siteid=us%2Fdev&p=1&nq=NEW&qu=ON&IntlSearch=&boolean=PHRASE&ig=01&i=09&i=99">ON</a>
打开的过滤会自动使用期望的谓词,而这一切都是由开发者决定的,在上面的示例中就是 customer_id=55。只有在执行大块操作或是在多个原子单元间进行数据查询时才建议关闭过滤。
Federations 还通过内置的分片功能对应用中的多租提供了极佳的支持,随着时间的推移,它会减少对每个数据库所进行的管理操作。SQL Azure 团队尚未宣布 SQL Azure Federations 发布的具体日期。
评论