使用服务器辅助的客户端重定向实现 DB2 的无限制扩展
2009-11-23 00:00:00 来源:WEB开发网核心提示: 图 1 演示了包含两个查询事务的情形,每个查询访问不同节点上的数据,使用服务器辅助的客户端重定向实现 DB2 的无限制扩展(2),共需要 8 个远程调用来完成这一事务,图 1. 未启用 SACR,当客户端开始它的下一个事务时,它会联系相同的节点,数据随机分布在所有节点上图片看不清楚?请点击这里查
图 1 演示了包含两个查询事务的情形,每个查询访问不同节点上的数据。共需要 8 个远程调用来完成这一事务。
图 1. 未启用 SACR,数据随机分布在所有节点上
图片看不清楚?请点击这里查看原图(大图)。
如 图 2 所示,如果所有数据在同一节点上,则远程调用的数量是相等的。
图 2. 未启用 SACR,所有数据都在一个节点上
图片看不清楚?请点击这里查看原图(大图)。
在所有情况下,第二种场景是最现实的,这意味着请求不是随意分布的,包含某一查询数据的节点更有可能包含用于来自同一客户端的下一个查询的数据。这种类型的事务可以利用服务器辅助的客户端重定向来减少通信花费。
在启用 SACR 时,DB2 基于第一条语句的位置选择了一个事务协调者。如果由客户端联系的第一个节点碰巧包含该事务中第一条语句所需的数据,则该节点将充当其余事务的协调者节点。但是,如果第一个节点不是这样的节点,那么它会将客户端重定向到包含所需数据的节点。然后客户端会将它的请求以及事务中其余所有请求都重新发送给这个新节点。理想情况下,事务中的其余所有查询都包含当前节点上的数据,但是,如果需要其他节点上的数据,则当前节点需要从其他节点检索该数据。当客户端开始它的下一个事务时,它会联系相同的节点,也可能被再次重定向。
更多精彩
赞助商链接