分类: Oracle
2008-04-30 23:06:59
Informix动态服务器的核心体系结构的设计从根本上就是为了提供内置的多线索和并行处理能力 [@more@]
在数据库服务器中,Informix动态服务器使用了一个可调节的数据库服务器进程池,称为‘虚处理器',用来对用户的请求进行规划和管理。用户请求是通过一种称为‘线索’的轻巧的机制来表达的,线索是一个单一的连贯的控制流,用来表达数据库服务器进程中的一个独立的任务。 当一个线索在等待资源时,虚处理器可以处理其它的线索,由于提供了这样的灵活性,只需少量的操作系统进程就可以对大量的用户进行管理,因为每一个虚处理器可以对多个用户的请求作出响应。
为了保证对系统资源的最有效的利用,Informix动态服务器将大的任务分解为子任务,这样,他们就可以跨多个CPU和磁盘并行地执行。通过将任务划分为子任务,以及并行地执行这些任务,Informix动态服务器可以大幅度地减少复杂操作的执行时间。
为了高效地执行和多方面地进行调节,虚处理器被以类为单位分组,每一类根据特殊的功能要求进行了优化。 线索被透明地分配到相关类的虚处理器中。在众多的虚处理器类中,最重要的一个是CPU类,它可以随着CPU处理的需求而增加或减少。
Informix动态服务器所使用的所有的内存都是由虚处理器池所共享的。使用这种方法,Informix动态服务器可以配置为自动向共享内存池中添加更多的存储空间。 Informix动态服务器还在共享内存的虚拟部分分配一个称为线索栈的区域,用来存储线索的执行中所需要的非共享的数据。
I/O通常是数据库处理中最慢的一部分。Informix动态服务器使用它的异步I/O来加速I/O的处理。由于Informix动态服务器的虚处理器对用户的I/O请求做异步的响应,所以,一个虚处理器在开始处理下一个服务请求之前决不会出现等待I/O操作结束的情况。
对于连续的表扫描或索引扫描,Informix动态服务器能够在对共享内存中当前的页面集合进行处理的同时,异步地从磁盘上提前读取多个页面。有了这样的能力,吞吐率就能够得以保持,因为应用用来等待磁盘访问结束的时间减少了。 |