UniData(Rocket U2)是否仅允许在每次连接时一次运行一个查询或命令?
我知道每个连接都有一个或两个进程(我相信udapi_server / slave / etc。),我们通过UniObjects连接池来池化连接。我知道最近的发行版中对UniRPC服务进行了优化,允许接受线程连接,但是我怀疑即使在每个连接上一次仅一次执行一个查询,也是可以的。
即如果您最多有10个池连接和10个长时间运行的查询,那么直到一个进程完成了它的查询,其他任何东西都无法启动-即使它们都受I / O绑定并且CPU空闲。
答案 0 :(得分:0)
在连接池中,使用连接的过程需要先完成,然后才能接受另一个请求并使用相同的CP过程。连接池是小型请求的理想选择。大型查询会立即返回整个结果集,这将占用CP流程,并使其他连接请求排队。
Ian提供了一种可能的解决方案,我希望有很多方法可以将请求分解为较小的请求,这些较小的请求不会长时间束缚连接池许可证。