WEB开发网
开发学院数据库DB2 在 WebSphere Federation Server V9.1 中异步执行... 阅读

在 WebSphere Federation Server V9.1 中异步执行联邦查询

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: ATQ 的存在导致两个单独的子代理被创建,以便处理 UNION 的第二个分支和第三个分支,在 WebSphere Federation Server V9.1 中异步执行联邦查询(7),第一个分支(最左边)和实际的 UNION 操作符是由 coordinator 代理来处理的,当查询开始时,这两

ATQ 的存在导致两个单独的子代理被创建,以便处理 UNION 的第二个分支和第三个分支。第一个分支(最左边)和实际的 UNION 操作符是由 coordinator 代理来处理的。

当查询开始时,每个代理(在这个例子中,有两个子代理和一个协调代理程序)与它所对应的 SHIP 操作符封装的远程查询相关联,并将查询发送到一个远程数据源,查询将在该数据源上编译和执行。

然后,所有分支上的代理发送一个 'Fetch' 请求到相应的远程数据源,以便从那个分支上的查询得到的结果中获得一块数据。

SHIP 返回的数据被放在每个分支对应的 SHIP 缓冲区中。ATQ 操作符(如果在 SHIP 操作符之上)读取来自 SHIP 操作符的数据,并将该数据转移到它自己的 ATQ 缓冲区中(只要缓冲区中有空间)。代理可继续发送 'Fetch' 请求,直到它们的 SHIP 缓冲区已满,并且 ATQ 缓冲区也随之变满。一旦 SHIP 缓冲区和 ATQ 缓冲区已满,那么代理就需要等待 UNION 操作符消耗 SHIP 操作符(前面的 UNION 访问计划的第一个分支)或 ATQ 缓冲区(用于 UNION 的第 2 个分支到最后一个分支),并腾出空间用于存储更多的数据。

当代理正在执行上述步骤 3 和步骤 4 时,UNION 操作符(由协调代理程序运行)开始从 UNION 的第一个分支上的 SHIP 缓冲区中读取数据。一旦 SHIP 缓冲区为空,协调代理程序将开始从远程服务器取更多的数据。该过程一直重复下去,直到最左边的 SHIP 不再返回数据行。

然后,UNION 操作符转移到下一个分支,开始使用那个分支上的 ATQ 缓冲区中的数据。这个过程一直重复,直到 UNION 的所有分支执行完。

因此,当启用异步时,对于 UNION 的所有分支,前面的步骤 2、3、4 是并发执行的。查询在远程服务器上的编译,以及取足够的数据来填充 UNION 所有分支上的 ATQ 缓冲区,这两个过程是并行进行的。下面的图中阐释了当启用异步时,查询的处理过程。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:WebSphere Federation Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接