数据库io是在服务器上,不是在交易管理器上。
它很难异步化,一般就不管了,当然谁有好办法还是可以说说。所以不是无脑协程,这个部分基本用不到协程。
交易管理器,几乎是纯io。在我的系统里,转发一个完整的交易需要4次加密解密,压缩解压缩。就是这点事导致的延时。
它关心的就是资源周转,尤其是服务器,服务完一个交易,立即进行下一个,就像银行窗口。所以排队叫号机一定要响应及时。把服务器的交易吞吐量调度满。
服务器不需要C10K,它只需要发挥最高的处理能力,一般线程数保持核数,或多一点点。如果吞吐量不够,可以增加服务器的数量。
C10K只出现在交易管理器。10000个用户在这里排队等候使用服务器资源。哪一个协程需要等待IO了,就立即yield,把线程让出来,让它赶紧处理其他任务。
【 在 ziqin 的大作中提到: 】
: 所以你的意思是,因为懒得管理资源生命周期,所以一股脑干脆直接用协程
: 这不是滥用又是什么
: 协程这种模式,不是为了给你简化资源的管理的,而是为了在某些真的需要很高性能但又不得不异步的情况下采用的,省的就是user层面的资源存取和context资源存取的速度。
: ...................
--
修改:ylh0315 FROM 221.218.61.*
FROM 221.218.61.*