Ⅰ 问题提出:
我在写硬盘时通常采用简单的同步IO技术,这可以解决多数工作中的问题,所以并没有注意使用异步模式。后来对一个盘阵进行测速时,发现用我们自研的测速工具的测试结果达不到从高速数据源接收记录数据的要求,而对其用Iometer测出的速度则很理想,可以达到项目要求。据我所知IO完成端口适用于小数据量快速并行处理的场合,比如网络服务器。对于大数据量(大于4G)的应用未知。于是决定用IO完成端口设计一个初步具备可靠性的原理程序,尽量提高数据读、写速度。
设计基本要求:
⑴易测试。设计多线程程序令人头疼的原因之一是线程之间无序切换,故障难复现。
⑵可靠。不成功的IO操作可以重新尝试,允许按照某种原则放弃IO操作。
⑶有效。 我的期望是在多磁盘系统盘阵里采用IO完成端口能充分发挥系统的全部能力,显著提高读写磁盘的性能,在单盘上的速度也不应该小于同步IO的速度。
Ⅱ 如何满足要求: