数据库的并发用户数与数据库特性及硬件平台的性能息息相关。但是并发用户数不会随着硬件性能的提高而直线上升 ,而且受到数据库架构对相应系统资源分配的影响。在传统数据库架构中,每个数据库应用服务将会各创建一个进程,有多少服务就要创建多少进程。这种架构虽然实现了多用户并发的功能,但是随之产生了严重的系统资源浪费。如果将大量的用户连接分配到有限的数据库服务进程中,也会出现多个用户之间抢占共享资源而引起的性能下降问题。
由于 以上的原因,目前数据库的架构多数已经采用了基于线程的架构。Altibase 在设计初期已经开始考虑基于线程的架构,然而,多线程架构的管理及验证是很难实现的,相对进程架构须要更好的保证系统可伸缩性和负载可伸缩性,如果设计不当性能甚至可能会不如进程架构的数据库。
综合考虑以上的因素, Altibase 采用了两级组成的多线程架构,分别由服务线程池和服务会话池组成。服务会话池是直接负责响应客户端请求的会话,而服务进程池负责在低层模块中执行的客户端请求。用户可以根据相应的系统负载对服务会话池和服 务进程池的数量进行设置,进而防止服务器资源的额外消耗。在这样的一个架构支持下,Altibase 可以设定一定数量的客户端请求和服务线程之间的一对一映射关系来保证客户端请求响应的最高性能。如果试图连接的客户端数量多于设定的服务线程数目,Altibase 将自动转换到N对M的的复合架构服务模式,充分利用客户端和服务器之间的服务器资源。
由于 以上的原因,目前数据库的架构多数已经采用了基于线程的架构。Altibase 在设计初期已经开始考虑基于线程的架构,然而,多线程架构的管理及验证是很难实现的,相对进程架构须要更好的保证系统可伸缩性和负载可伸缩性,如果设计不当性能甚至可能会不如进程架构的数据库。
综合考虑以上的因素, Altibase 采用了两级组成的多线程架构,分别由服务线程池和服务会话池组成。服务会话池是直接负责响应客户端请求的会话,而服务进程池负责在低层模块中执行的客户端请求。用户可以根据相应的系统负载对服务会话池和服 务进程池的数量进行设置,进而防止服务器资源的额外消耗。在这样的一个架构支持下,Altibase 可以设定一定数量的客户端请求和服务线程之间的一对一映射关系来保证客户端请求响应的最高性能。如果试图连接的客户端数量多于设定的服务线程数目,Altibase 将自动转换到N对M的的复合架构服务模式,充分利用客户端和服务器之间的服务器资源。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10954452/viewspace-606843/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10954452/viewspace-606843/