Oracle与金庸
添加时间: 2008-4-19 21:38:43 作者: Oracle指导 阅读次数:2 来源: http://www.d9soft.com
简单的说,Oracle就是在服务器、存储等硬件基础上进行计算,保存和查询操作,各个环节都很重要,可以做一个比喻。
王重阳与全真七子,关于硬件体系结构与CPU调度
smp,如果cpu的频率好,cpu个数多,总线和cache设计巧妙,性能是很强的。 就如同王重阳乃不世武林高手,学贯武学,可个人的能力再强都是有限的,打不败金兵。
cluster 王重阳的7个弟子功力较逊,组成北斗七星阵,不亚于其他武林高手,更重要的是,一个挂了,其他人可以接着打下去,适当的时候找个人补上去。扩展出来就是军队。
numa 硬件分区的基础,就如同少林十八罗汉,任务重的时候,十八罗汉共同执行一个任务,很强,任务多的时候,每几个罗汉分别做一件事情,动态调配。
七子授课 全真派弟子众多,假如每个人(Process)都想得到7位师长(CPU)的指点,怎么办,排队,没有生病的、没有外出的都排队轮流,根据各种情况来衡量谁先谁后,一般都是一样的,当然重点培养对象优先级高可以插队开小灶。七子分配一段时间(时间片)给弟子授课,中间弟子上厕所了,就重新其他弟子分配传授时间,上厕所的呢,重新排队把。总有一种方法使得授课效率比较有效。假如弟子上万呢,如果都让全真七子教,肯定是七子累死了和弟子无能死了,让出色弟子授课或者另立门户吧。
武当派与日月神教,关于数据结构
武当派规模比较小,有多少个人,能干什么,数看看都知道了,于是 管理 方式就是list,table。
日月神教规模比较大,于是有了光明左右使、五大护教法王、五散人、五行旗(巨木旗. 厚土旗. 洪水旗. 烈火旗. 锐金旗)、各地分舵,你说你是吴劲草,找你到费姥姥劲了,你说你是五行旗-瑞金旗的吴劲草,一下子就找到了。还你告诉张五忌你想做些比较大的工事,往巨木旗. 厚土旗询问几个高手就可以了,不用几万人一个个问。这个核心就是分类和分而治之,管理方式就是hash table和partitions,index也属于这个类型,可是对于比如锐金旗的兄弟,谁不知道谁啊,管理方式还是list和table。
还有一个就是日月神教看起来就像一个金字塔或者说索引中的B树,朱元璋所在的江淮一带分舵就是扩展和节点分裂太快,造成了不平衡。所有组织应该有pct used,pct free这个限制,假如一个分支人数不够,当新人增加进来的时候就分配给他,当一个分支人数较多的时候,就不让他招人了但同时给他留下名额吸引英人才。就像公司经常会会有机构重组来提高效率一样,随着形势的发展,就应该不同的策略。
太极拳
为什么张五忌学了张三丰的太极拳就能能够赵敏手下强劲的武林高手呢,因为太极拳强调阴阳相济、刚柔并重,就是说洞悉奥妙,恰到好处,机器配置高,存储性能好,不见得Oracle就跑得更快,throughout就高。
Oracle的基础
对于包括Oracle在内的各种数据库来讲,除了计算,保存和查询操作这些基本功能以外,进一步来讲是能够并发处理数据,即实现事务处理。
事务具备ACID四个基本特征:
1. Atomic
原子性,一件事情,要么成功,要么失败。
2. Consistent
一致性,一件事情在处理过程中,看到的数据应该是一致的。
3. Isolate
隔离性,一件事情在处理过程中,应该是独立的,不受到其他事情的影响。
4. Durability
持久性,一件事情的完成以后,效果应该是永久性的,否则数据一旦丢失,所做的一切都是无意义的。
Oracle以自己的体系结构实现了这个基本的功能。
1.为了保证原子性,用户处理数据以后,要么commit,要么rollback,即成功或者失败。
2.为了保证一致性,引入了回滚段,即使数据在查询开始以后被修改,也可以根据当前数据和回滚段中的数据构造查询时数据的映像,保证数据的一致性。
3.为了保证隔离性,引入了latch,lock的概念,在一件事情的操作还没有完成的时候,其他事情不能够进行处理。引入了enqueue和semphore的概念,保证不同事情的顺序处理和交互。
4.为了保证永久性,所有的修改都保存在物理介质中,并引入了日志的概念,记录了数据操作步骤,在日志保存到磁盘以后,就可以保证数据是已经修改成功的,因为即修改过程是可以重现的。
数据容灾和备份的Service Guard,实现failover,scalebility的RAC,都是满足这个基本的功能的基础上实现和扩展的。
上一篇文章: 分析Oracle数据库日志文件(二) 下一篇文章: SQL Server与Oracle防止数据锁定的比较
相关文章:

