文件名称:IO线程-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2024-06-29 04:38:42
达梦,DM7
4.1 监听线程 监听线程主要的任务是在服务器端口上进行循环监听,一旦有来自客户的连接请求,监 听线程被唤醒并生成一个会话申请任务,加入工作线程的任务队列,等待工作线程进行处理。 它在系统启动完成后才启动,并且在系统关闭时首先被关闭。为了保证在处理大量客户连接 时系统具有较短的响应时间,监听线程比普通线程优先级更高。 4.2 工作线程 工作线程是 DM 服务器的核心线程,它从任务队列中取出任务,并根据任务的类型进行 相应的处理,负责所有实际的数据相关操作。 DM7的初始工作线程个数由配置文件指定,随着会话连接的增加,工作线程也会同步增 加,以保持每个会话都有专门的工作线程处理请求。为了保证用户所有请求及时响应,一个 会话上的任务全部由同一个工作线程完成,这样减少了线程切换的代价,提高了系统效率。 当会话连接超过预设的阀值时,工作线程数目不再增加,转而由会话轮询线程接收所有用户 请求,加入任务队列,等待工作线程一旦空闲,从任务队列依次摘取请求任务处理。 4.3 IO线程 在数据库活动中,IO操作历来都是最为耗时的操作之一。当事务需要的数据页不在缓冲 区中时,如果在工作线程中直接对那些数据页进行读写,将会使系统性能变得非常糟糕,而 把 IO操作从工作线程中分离出来则是明智的做法。IO线程的职责就是处理这些 IO操作。 通常情况下,DM Server需要进行 IO操作的时机主要有以下三种: 1. 需要处理的数据页不在缓冲区中,此时需要将相关数据页读入缓冲区; 2. 缓冲区满或系统关闭时,此时需要将部分脏数据页写入磁盘; 3. 检查点到来时,需要将所有脏数据页写入磁盘。 IO 线程在启动后,通常都处于睡眠状态,当系统需要进行 IO 时,只需要发出一个 IO 请求,此时 IO线程被唤醒以处理该请求,在完成该 IO操作后继续进入睡眠状态。 IO线程的个数是可配置的,可以通过设置 dm.ini文件中的 IO_THR_GROUPS参数来 设置,默认情况下,IO线程的个数是 2个。同时,IO 线程处理 IO的策略根据操作系统平 台的不同会有很大差别,一般情况下,IO线程使用异步的 IO将数据页写入磁盘,此时,系 统将所有的 IO请求直接递交给操作系统,操作系统在完成这些请求后才通知 IO线程,这种