|||
突破数据共享封锁线的领头人--数据库界的四位图灵奖得主(3)(唐常杰)
孤帆远影,他走了 2007年1月28日,数据库界的第三位图灵奖得主James Gray( 昵称Jim Gray),要去做一件善事--百善孝为先--他要为过世的97岁的老母亲撒骨灰。
和往常的休闲航海一样,天马行空,独往独来.,然后,然后他就失联了。
海岸警卫队、志愿者、学术界朋友加入了大搜寻。据说动用了卫星和若干先进技术;没有消息,没有蛛丝马迹,到2月1日,海岸警卫队宣布放弃搜索。
人们怎么也不相信,这一次竟会是孤帆远影碧波尽,唯有英名学界留!
朋友们美好的愿望 Jim Gray曾经给记者玛丽安.温斯特讲过曾经的遇险经历,过去总能逢凶化吉,人们祈祷这次也能遇难成祥。
崇拜者中不乏科幻迷,有网文说,希望是外星人飞碟把他带走,作为地球数据库界的使者,说不定,若干年后,带着奇特的经历,带着先进的知识,回到地球…
可能,这也是为什么五年又四个月后(2012年5月16)才宣布他的死亡。
多角色的吉姆:良师、益友、大师,航海发烧友 他的音容笑貌给人以亲和,他乐于助人,所以朋友遍学界,他循循善诱、点石成金,所以是人们心中的师长。
数据库人都用昵称吉姆·格雷(Jim Gray) 亲切地称呼他。
不论是失联还是失踪,都可概括为汉语中的:他走了;
他带着微笑,带着理想,带着睿智,带着在数据库事务处理和系统实现方面的功勋,走了;给我们留下了怀念,留下了思考。
阅读本文可用蛙跳法 为思考Jim Gray 留给我们的知识财富和方法启迪,笔者从电子教案中取了一些页面,稍加通俗、略减严格,难免趣味和枯燥交织,读时不妨“蛙跳”:如某段难懂,跳一段,说不定下一段又有趣了。
科学问题时有新,江山代有才人出 Jim Gray 生于1944年(在中国的同龄人中,大约有1%有机会在1961-62年进大学,属于红卫兵大学生)。
在UC Berkeley 得天独厚的环境中,他有幸成为计算机学院的第一个博士,那时的中国,还没有(或很少)有计算机专业,
他以青椒角色进入IBM的时候,比他年长20岁的 C.W. Bachman和 E.F.Codd ,正带着团队进行着 “数据库向何处去”的大讨论,关系数据库在讨论中艰难地突围,已初见端倪。
但是,“数据库向何处去?”这个问题就像当时一个东方国度的名言,“七、八年又来一次”,当他这一代独当一次面时,上述问题具体化为:
“数据库管理系统怎样才能多、快、好、省?”?
为了“多、快”,人们提出了多事务并发,但很难同时做到“好、省”,因为,有一道源于并发事务相互干扰的封锁线。
数据共享封锁的窗户纸 科技发展历程中术学中常见一个现象,一道封锁线拦在前进路上,一旦有人捅破,才发现封锁线其实不过是张窗户纸,解决方法原来如此简单! 人们都问“为什么他想到了,我想不到?”(其实,缺的是“眼光”!)
在事务处理中,数据共享与封锁机理就是这样一道封锁线兼窗户纸,是Jim Gray在代表作 “共享数据库的一致性和锁的粒度 ”[1]中率先捅破的。
这篇代表作提出了一系列革命性的概念和协议,如封锁的粒度和层次、共享锁、排他锁、相容性矩阵……, 解析了封锁粒度、共享程度和一致性之间的关系,为解决这一科学问题立下大功。
这篇开辟方向的论文也展示了他的风格,眼光独到,文章直白,没有复杂、难懂、绕圈子的定义,都是干货。如今,已经是数据库方向硕士生教材的标准内容。
并发vs.并行 :开车打手机 vs. 和尚抬水吃 在数据库技术中,一个CPU(或一台主机),作多个任务,称为并发(concurrence) ;就像开车时打手机,还听歌且聊天;一心多用,当然,弄不好要出事的。
而多个CPU(或主机)分担完成同一个应用,称为并行(parallel);弄不好则忙闲不均,有累死的,有打酱油的,就像两个和尚抬水吃,三个和尚没水吃。
并发与并行,虽都有个“并”,但二者难点不同,技术要点也不同。
在Jim Gray 的时代,“并行”还有待硬件发展(他曾在一个访谈中,认为并行时代还远),他要解决的是多事务并发。
一个真实的故事----瘦脸风波,事务的原子性,多年前,某地一商家为促销瘦脸机,打出免费体验广告,有人中招,投诉到消协:原来,广告上画的是左脸,左脸免费,而欲继续瘦右脸,须付1千元;最后,真善美战胜假丑恶,消费者胜诉。
当时,笔者正准备事务处理教案,把此事写进了教案(那时教室没投影机,没作PPT)。
从数据库事务观点看,“瘦左脸+瘦右脸”是一个不可拆分的原子事务,要么都不做, 要么都做。
书归正传,在银行数据库中,账户A转账50元给账户B,有4个动作:
“A:=A-50”;保存A;
“B:=B+50”;保存B;
这4个动作是不可拆分的,必须一气呵成,才能保证A+B的值不变(财产没有不翼而飞,也没有无中生有)。所以这是一个(原子)事务。
虫洞怎样破坏一致性?人民大学孟小峰教授提醒,Jim Gray在《事务处理》一书中,提过一个“虫洞定理”,说事务没有虫洞。让我们放飞思维的翅膀,斗胆科幻一下,请朋友们指正:
设有两个平行宇宙,都是四维空间,各自进行着从A到B的转账业务,不幸在更大的五维空间中,出现了虫洞,且在两个事务很关键的地方发生了粘连,本来要转到空间1中B的500万 ,转到了空间2的B之上,出现了数据不一致。如果,事务空间没有虫洞,就不会发生这样的错误。
事务的酸性 如上面提到的瘦脸行动,是一个事务。Jim Gray及其团队描述了事务的下列性质:
原子性 Atomicity., 如瘦脸(或理发)是一个事务,不能只作一部分;
一致性 Consistency, 如上面的A+B在转账前后一致;
隔离性 Isolation , 如T1:“A转账到B”,和T2:“C转账到D”,是两个隔离事务,互不干扰;可先做完T1,再做T2,也可反过来;不过最快是妥善交叉;
持久性 Durability. 对A和B的更改,要妥善保存。
巧得很,四个性质的词头组成英文单词ACID (酸的,刁钻刻薄的),人们有时为了助记,也说这就是事务的酸性,或事务处理的刻薄性,比方,当不易完美满足时,可调侃说“The ACID properties is very acid"。
飞机火车上的卫生间:共享与私密的矛盾 飞机、火车上的卫生间是共享资源,但一个时间只能一个人用;既共享,又私密,能做到吗?
幸好我们生活在四维空间,可以打时间差,人们在卫生间加锁。用红色的“有人”提示封锁,表示资源正被占用,用绿色的“无人”表示解锁,可供使用。
对于上面的A向B转账的事务,必须先对A,B实行封锁(相当于“有人”红灯),防止其它干扰,做完后再解锁,才能保证A+B不变。
在介绍事务调度前,还需明白电脑的“一心假多用”。
一心假多用 “开车打手机”属于一心多用,不能提倡。而事务处理技术,可比喻为“一心假多用”,是计算机能(安全)做到的。
例如左手画方,右手画圆:把时间分成小片段,在时间片1,3,5..,左手画方,在时间片2.4.6右手画圆,在每个时间片,还是一心一用;如果时间片足够小,远看起来,似乎左手右手都能流畅地完成不同任务。
这是在时间维上想办法,打时间差。
这个比喻可能不很严谨、贴切,在此向网友征求更好的适合科普的比喻。
铁路调度 VS 数据库事务调度。在轨道资源固定的条件下,妥善的调度,可以跑更多的车,当一路列车停站上下客时,有一段铁轨闲置而打酱油了,让另一列车跑上去,提高总通过量,当然,还要保证安全。
下图中有两个数据库事务,A转50元给B,C转40元给D,
T1和T2可以单独做完一个,再做第二个,用时多一些;
T1和T2可以如下调度(交叉),总时间会少一些,充分利用了时间和计算能力;
有错能纠,必须有案可稽 错案常常引起社会轰动,如有案可稽,比较易纠正,如案卷不齐,要补充侦查;数据库中的“案”是运行日志log。
小结:Jim Gray的功绩 上面的并发、分布、事务特性、调度,日志, …,等等,特别在事务处理中数据共享的 封锁、排他锁、共享锁,封锁粒度、层次封锁协议、相容性矩阵,正是Jim Gray及其团队,以及同时代的众多研究者提出并实现的,在数据库系统实现技术上一系列新奇实在的贡献。
这些当然不是一个人的功劳(现代科学成就是人们共创共享的),但Jim Gray是中流砥柱,是带头人,是主要贡献着;这份图灵奖给他,实至名归。
征服学术界的获奖演讲 图灵奖获仪式上, Jim Gray发表了获奖感言,题为“下一步何往?十二个遗留的IT问题” (What Next?--- A dozen remaining IT problems),
这个演讲有四个特征:广、实、远、新;
它大气磅礴,囊括计算领域,涉及可扩展性,图灵测试,语音文本,文本语音,视觉智能,存储器,远程介入,无差错系统。安全, 自动编程,等等,目标远大,不是大师讲不出来,,征服了学术界。
重读这份报告,有一种感觉,他不得奖,谁得奖!?
“这个世界需要几个疯子” 这是Gim Gray对记者玛丽安.温斯特说的话,他说,如果你有眼光,并且知道自己很有眼光,你就一定要追求有远见的研究。
这段话强调了眼光,那种捅开窗户纸的要眼光。
Gim Gray在科研中,有时会不按常理出牌,敢疯一把,结果常常是出奇制胜,敢疯一把的底蕴在于眼光、在于魄力、也在于他在科研第一线上积累的实力。
一点思考:脱离士兵实践的将军难得是好将军 ,拿破仑说,不想当将军的士兵不是好士兵,这说的是理想和魄力;兵家还有一个说法,脱离士兵实践的将军是有缺陷的将军。这说的是实践出真知、实战积实力。
Gim Gray的博士论文属于理论研究,进IBM在编程第一线打拼,成为数据库系统实现方面的编程高手,他对记者玛丽安妮说,在开发System R的过程中,大概写了5万--7万行代码,主要是涉及并发、恢复、安全管理等,在第一线积累的实践经验和与时俱进的广博知识是取得成功的重要支撑。
相比于Gim Gray,如今我们的一些年轻学者,未达“不惑”之年,就开始脱离实验第一线,满足于“高层次”地对博士生的发号施令。
现在科学知识更新快,在中年或壮年时,还吃青年时的实践知识老本,发出的“号”和“令”很可能是刻舟求剑。曾经听某校博士生私下抱怨,某指导教师早年经验年久失修,对新项目画的框图都是错的,...
这就像一首绕口令,“理论上理论联系实践,在实践中理论脱离实践”,把自己绕进去,把课题组绕进去,把学生绕进去,最后,把科学绕寄去;把中国人的图灵奖梦想也绕进去。
参考文献
J.N. Gray, R.A. Lorie, G.R. Putzolu, I.L. Traiger.?Granularity of Locks and Degrees of Consistency in a Shared Data Base.?IFIP Working Conference on Modelling of Data Base Management Systems, 1-29, AFIPS Press.?1976
J.N. Gray, The Benchmark Handbook:for Database and Transaction Processing Systems,第1版于1991年,第2版于1993年出版。
相关博文
需要多少论文才能得到图灵奖 – 数据库界的四位图灵奖得主(1)
冲破数据共享封锁线的领头人--数据库界的四位图灵奖得主(3)
冲浪在数据潮头的实干家----数据库界的四位图灵奖得主(4)
其他相关博文
人物类:我所认识的Adlman 系列 共6篇 他凭什么得了图灵奖,侧应钱学森之问,计算机病毒的教父,DNA计算;
科普类: 趣味数据挖掘系列 被打和北大,烤鸭,数据血统论,博客均击量,干预规则,分房与分类,宴会上的聚类, 灯谜、外星殖民、K-平均聚类与蛋鸡悖论, 愚公移山和进化计算,基因表达式编程GEP,数据挖掘与哲学;
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 09:24
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社