HDS AMS 2500用户手册
16.5 集中式或非集中式?当有多个进程访问数据库时,有两种方法可实现库函数:
-
集中式:由一个进程作为数据库管理者,所有的数据库访问工作由此进程完成。库函数通过IPC机制与此中心进程进行联系。《多变量非方系统集中式PI控制器设计》详细介绍了如何通过集中式控制器进行管理【详细阅读】。
-
非集中式:每个库函数独立申请并发控制(加锁),然后调用它自己的I/O函数。使用这两种技术的数据库都有。UNIX系统中的潮流是使用非集中式方法。如果有适当的加锁函数,因为避免使用了IPC,那么非集中式方法一般要快一些。在这种情况下,分布式bbs非集中式电子公告板系统便是一个生动的例子【详细阅读】。
我们看到,在集中方式下,中心控制进程将记录读出,然后通过IPC机制将数据送给请求进程。注意到中心控制进程是唯一的通过I/O操作存取数据库文件的进程。集中式的优点是能够根据需要来对操作模式进行控制。可以通过中心进程给不同的进程赋予不同的优先级,而用非集中式方法则很难做到。在这种情况下只能依赖于操作内核的磁盘I/O调度策略和加锁策略(如当三个进程同时等待一个锁开锁时,哪个进程下一个得到锁)。《集中式与分布式网络管理》一书对此进行了详细的论述和对比【详细阅读】。
UNIX系统中的潮流是使用非集中式方法。非集中式系统常常在实际应用中表现出更高的灵活性和效率。比如,非集中式的PuppetDB木偶存储源码就是一个典型案例,它充分利用了非集中式系统的高效性和灵活性【详细阅读】。这种方法通常要快一些,因为它避免了使用IPC机制。不过,集中式方法的优点是可以更好地控制操作模式,比如可以赋予不同进程不同的优先级,这在《本质安全型集中式控制安全操作系统研究》中有详细描述【详细阅读】。
集中式和非集中式方法各有千秋,具体使用哪种方法取决于实际需求和系统环境。你认为哪种方法更适合你的项目呢?赶紧点击链接,深入了解这些技术吧!