文件系统和数据库系统
对许多人来说,文件系统和数据库系统是个很神秘的东西,我们都知道它们是存在的,也知道它们是做什么的,但它们仍然有点像P l a y d o h神奇工厂。数据从一端写入,从另一端读出,容不得我们有半点思考:里面到底发生了什么! 发生的事情之一是详细记录数据存储的位置,这些记录不仅保证了可靠性,也使整个系统维持在一个良好的运行状态。
1. 文件系统的作用
传统上,文件系统与操作系统紧密相连,形成了一个不可分割的二重奏。操作系统管理调度和系统资源,文件系统则为系统所产生和使用的数据管理存储空间。然而,在存储网络的环境中,操作系统和文件系统可以分开来实现,或者把文件系统拆开成更小的部分,分散到多个不同的处理器,这样做也许更加合理。随着所需存储的数据量的暴涨,为了满足其对系统性能及存储管理的可扩展性要求,似乎有必要把文件系统的部分功能向下迁移到存储子系统。第1 3 章将详细地探讨这个真正具有魅力的主题。
2. 数据库存储I / O操作
通过向底层的文件系统发出I / O请求,数据库系统可以访问和存储数据,也可以通过直接地读/写原分区,来管理它们自己的块I / O操作。原分区是直接由数据库系统管理的磁盘存储,而无需文件系统参与。换言之数据库系统为它的表空间分配存储,而不必向文件系统请求这个服务,结果导致更好的存储访问性能。当考虑I / O操作是数据库的主要任务,且每个I / O操作可能要涉及2 0 0 0 0个处理器指令周期时,就不难看出为什么数据库的I / O性能是一个重要的主题。因为计算机中的文件系统必须为多种应用和数据类型提供服务,所以,文件系统对数据库的I / O操作就很难达到最优的程度。相反地,可以对原分区做彻底的优化和调整,以满足特定数据库技术的独特需求。