ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DB与OS之相似点(zt)

DB与OS之相似点(zt)

原创 Linux操作系统 作者:tolywang 时间:2005-01-28 00:00:00 0 删除 编辑

DB与OS之相似点


DB OS 之间,设计思想异曲同工,理解了,也不那么神秘了。

 

os oracle 都一样,在空间和时间的资源消耗中寻找平衡。试图去理解 设计者的意图,是很重要的学习方法。

比如10G flashback database ,为什么推出这个功能,是为了节约恢复时间,那么他的代价是什么,就是增加了 磁盘消耗来记录变化的 block ,这样就用增加 IO 和存储的代价(包括数据库运行是消耗的cpu时间)来节约了恢复时候的时间和资源。随着硬件性能和容量的不断提升,思想已经转变,把 正常运行中可以拿出来的资源(对于10年前的oracle来说 内存、磁盘、 cpu 都是需要尽量节约的)来弥补恢复时间太长的不足。

下面对比几个方面:

oracle ASSM 在逻辑上和 文件系统 相似,当然和 linux ext3 思想更相近一些

os 本来是根据 512 bytes block 作为扩展单元以防止碎片节约磁盘,但现在存储的容量的发展早已日新月异,不再需要为几k的空间费劲了,出了ext2/ext3 就是类似oracle extent 作为扩展单元,这样更有利于IO 这方面朝数据库走近了一步。 oracle DMT 走向 LMT 再走向ASSM ,则如果把extent看做block的话,有点类似索引的结构,或者说类似文件系统的 i-node 索引结构。这个可以看作 数据库和os 都朝中间走了一步。



oracle buffer cache 的管理 os 共享内存的 管理思想很相似

这个我更倾向于说 LRU / hash table /list 。对于 SUN solaris 来说,use_ism 本质上就是允许多个进程共同访问 list 以达到并发的目的,跟oracle cache buffer chain 类似了。



oracle slaves
就是模拟 AIO

oracle 假如不使用 AIO ,则 dbwr write /wait /write /wait ,下一个写必须等上一个写完成,而io_slaves的作用则是 dbwr 把要写的buffer交给 slaves ,由slaves写完成,那么写还没有完成的时候dbwr可以去做下一步事情,搜集dirty buffer 并提交下一个写请求。而oracle AIO 的概念,就是让 DBWR 可以 write/write/write 不必等上一个写完成就可以提交下一个写请求,达到 并行写的目的以充分利用空闲的硬件资源

 

另外还有一些:


oracle redo log 文件系统的log作用类似

oracle的事务和 os 文件系统的事务

oracle DMT
数据字典表、LMT bitmap/extent map 和文件系统的 i-node 数据库这些空间控制的变化的日志 文件系统的 intent log

在内存管理方面,使用 hash table + list

原文讨论可参考:

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84273/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 我的联系方式
请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14357381