0

UniData (Rocket U2) 是否只允许每个连接一次运行一个查询或命令?

我知道每个连接都有一个或两个进程(我相信 udapi_server/slave/etc),并且我们通过 UniObjects 连接池来汇集连接。我知道在最近的版本中对 UniRPC 服务进行了优化,允许接受线程连接,但我怀疑即使在每个连接上一次只同步执行一个查询。

即,如果您最多有 10 个池连接和 10 个长时间运行的查询,那么在一个进程完成其查询之前,甚至没有其他任何东西开始 - 即使它们都是 I/O 绑定和 CPU 空闲。

4

1 回答 1

0

在连接池中,使用连接的进程需要在另一个请求被接受并使用相同的 CP 进程之前完成。连接池非常适合小请求。一次返回整个结果集的大型查询将占用 CP 进程,并导致其他连接请求排队。

Ian 提供了一种可能的解决方案,我希望有很多方法可以将请求分解为更小的请求,这些请求不会长时间占用连接池许可证。

于 2020-01-22T19:53:11.647 回答