源地址:http://research.microsoft.com/en-us/um/people/lamport/pubs/ds-interview.pdf
Dejan Milojicic: 你从事的许多具有想象力的问题都在实际应用中有成就,甚至在几十年之后仍有影响。你对研究方向的选择在时机上有什么特别么?
Leslie Lamport: 遇到一些问题是因为工程师们在构建系统时碰到了,需要算法来解决, fast mutual exclusion algorithm 和 disk Paxos 就是这类。还有一些,比如cache coherence,是我自己想出来的。我在选择这类问题的时候没有考虑到时机是否合适。
Dejan Milojicic: 你认为你的哪个贡献对现代计算机科学与产业具有最大的影响力?
Leslie Lamport: 我的引用量最多的文章是“Time, Clock, and Ordering of Events in a Distributed System.”,我不知道这和你说的影响是不是一回事,因为我并不能从该文章直接指导出许多工作,但可能它影响了人们对思考分布式系统的方法。我认为我在工业界还没有太多影响,虽然我期望Paxos 和状态机方法将在分布式系统设计上有重要影响。这是在微软发现的(注:Lamport 加入了微软)。
Dejan Milojicic: 对于当今工业界规范和验证重要性是什么以及你认为它们将怎么随着时间而演化?比如,你认为更多的自动化工具将有助于改进工业技术么?
Leslie Lamport: 我们构建的系统的复杂性和我们开发智能工具理解这种复杂性的能力之间是一种竞争。如果这场竞争的胜利被我们的工具所获得,系统最终将变得更简单易用和更可靠。如果不是,系统将更难操作并且更不可靠。考虑到思考是那么困难,如果那些智能工具胜利了,他们将通过计算代替思考。
Dejan Milojicic: 你是在提前暗示使用人工智能技术么?
Leslie Lamport: 必须凭借传统的人工智能方法将成为我们比赛失败的标识。
Dejan Milojicic: 在计算机学科剩下最重要的问题是什么呢?大家应该如何解决?
Leslie Lamport: 过去的二十年包括更长时间,我都在问“什么是最重要的问题”,我的回答依旧是:我不知道,如果我知道了,我就回去解决它们。
Dejan Milojicic: 你的源泉是什么?
Leslie Lamport: 我不认为这有规律可循。如我之前提到的,一些问题来源于工程师,还有一些是我自己发明的。有时候问题还在解决方法之后出现。我最近发明如何应用Paxos 的一个变种,并且进一步意识到了这为分布式交易提交问题提供了一个新的解决方案。Paxos 算法也是通过想证明这类方法不存在的错误尝试而发现的。这就像我在墙上先射了一箭,然后围绕这点画靶圆,然后告诉别人我是个神箭手。“Time, Clocks ………..”这篇文章就是这样出来的。
Dejan Milojicic: 你有过对难问题更感兴趣而不是relevant 问题么?
Leslie Lamport: 我从来没有考虑过相关性。我只是尽量保证我从事的是实际中的问题,而不是一些语言和形式上的人工问题。比如使用弱类型的寄存器实现一个原子性的寄存器是一个实际的问题,我能够用物理术语描述而不用参考任何模型。一个20多年前吸引了很多人的仿真问题是,你如何能够一个非分布式系统中辨别出一个分布式系统。虽然现在看来原子寄存器算法毫无关系,工程师可能某天会使用非原子性寄存器构建一个原子性寄存器。
Dejan Milojicic: 以你的观点哪些问题是irrelevant 的,哪些是被低估了的?
Leslie Lamport: irrelevant 问题是由理论家发明的,既不是天生就有趣也不可能有任何实际上的好处。这些问题是在一定的形式内提出来的,在这个形式范围之外就不能够被表达出来。很容易能够提出relevant 问题,比如构建一个更好的设备驱动器。系统管理或许是计算机产业遇到的一个重大的relevant 问题。然而事先并不清楚坐下来解决这个问题是否会指引你到某个有意思的研究方向。我更喜欢那些通过证明一个定理能够解决的问题,而不是通过写一百万行代码。我感觉系统管理不是我期望的那类问题。
Dejan Milojicic: 你花费了很多努力在使你的研究变得有趣和观众难忘,比如说拜占庭将军和Paxos 岛议会等等。这里你考虑艺术方面有多少?相对于科学。任何研究都应该有艺术元素么?
Leslie Lamport: 很久以前,我观察到Edsger Dijkstra 的哲学家用餐问题超过我想象地获得了比其他问题更多的关注。比如,它几乎和自稳定问题一样重要,这也是由Dijkstra 提出来的,但十年内几乎没有受到任何注意。我意识到这是故事使得问题变得流行起来的。我感到拜占庭将军问题(我的同事在SRI 发现的)十分重要,并且我期望大家注意它。所以我定制了拜占庭将军问题,这是我早年从Jim Gray 听到的中国将军问题获得的灵感。
Paxos 论文跟多是为了好玩,虽然我喜欢利用故事中这些细节都遗失了来省略简单、易理解的方面。然而这篇文章却是场灾难,因为没有人能够绕开故事理解这个算法(Butler Lampson 是我知道的一个例外),当论文交给ACM Transactions on Computer Systems 时,审稿人认为这有点意思,虽然不那么重要,如果我把Paxos 的那些东西删掉就同意发表。我被计算机科学家们的缺乏幽默感感到生气,我决定不修改我的论文。许多年后,Ken Birman 愿意在TOCS 上发表我的原始版本论文。
Dejan Milojicic: 你觉得什么程度上研究工作是有趣的而不是体力活?
Leslie Lamport: 体力活是拖干草或者清理下水道。科学家和工程师应该感谢社会愿意为我们的乐趣付薪水。
Dejan Milojicic: 你在出版过程中最好和最坏的经历是什么?你认为出版业将何去何从?
Leslie Lamport: 最坏的部分一直是校对。在努力消除手稿中的错误之后,你还得删除打印机插入的错误。Springer 开始直接通过LaTeX 源排版了,我觉这很好,我希望有更多的出版商也能够这样做,但对于这点我并不乐观。
Dejan Milojicic: 你认为Web 会成为传统科学论文发表的促成者么?
Leslie Lamport: 我希望并确定所有的期刊论文都能够发表在网上,我比任何人都确定这一点。
Dejan Milojicic: 个人而言,我对你的LaTeX 十分着迷。你还有什么希望往里面添加的内容么?
Leslie Lamport: 我期望能看到一个系统能够结合Word 好的特性,比如能够利用LaTeX 好的特性很方便的做一些简单的事情,比如LaTeX 很容易把逻辑内容和排版分开。我对如何设计这个系统有些好主意,但是需要一些人几年的时间来做,所以这可能没法完成。
Dejan Milojicic: 易于使用相对于丰富而复杂的功能是一方面(比如Word 和FrameMaker ),交互性和批处理是另一个方面,你相信LaTeX 多少强项来自于批处理方式?
Leslie Lamport: TeX 在是一个很好的批处理排版工具。在八十年代,计算机还很慢,于是Donald Knuth 选择了批处理提高速度(然而他在优化算法方面做了大量工作)。现在,你能够在几分之一秒中生成20-30 页TeX 和LaTeX 的论文。这就是我们需要的交互性。我认为LaTeX 的成功是以为学习它并不需要太多的投入,科学家和工程师就可以写出论文而不用担心论文会变成什么样子。LaTeX 缺乏其他系统的许多功能。因为我觉得这些功能并不是向读者和交流他们想法的途径。(但有一个重要的缺陷是缺乏好的画图功能。)在线的文件互动能够帮助读者和作者进行沟通。有一天,我们会想出办法利用这些优势。在这之前,读者可能还是要忍受下令人分心的闪屏(注:不是很懂啥子意思)。
Dejan Milojicic: 你从事并解决了许多系统上的问题,比如一致性,容错和实时性。有没有同样的方法找到系统其它问题(特性)的解决方法?比如移动性(断连,定位和发现),扩展性等等。
Leslie Lamport: 还没有人找到如何去解决它。这表明,可能需要一种新的思路来考虑这个问题。但也不是所有的问题都是可解的。
Dejan Milojicic: 那分布式系统中扩展性呢?
Leslie Lamport: 我的所有的分布式算法中都有一个参数N 代表进程的个数。这就有了代价,因为时间和消息的函数。在大多数我考虑的应用情况下,进程的数量足够小,那样简易性比参数N 带来的代价更为重要。但随着人们构建系统越来越多的进程,这种代价变得更重要了,以至于人们系统通过指定新的算法来减少它们。
Dejan Milojicic: 系统演化有各种分类和解释,比如分布式,移动和普适系统。一旦排除这些炒作,你认为在移动性,普适性和点对点中内在有完全不同的特性么?或者说你认为他们只是分布式计算的变种呢?
Leslie Lamport: 这些都是老的分布式系统,不同的是重要参数不同。有时候,修改参数会导致一些新的问题。比如从一台计算机内部的多个处理器到网络上多个处理器只是改变了通信与延时的比例。但有时候这些改变并不会产生新的东西。比如从点到点通信到以太网不会有什么新的有趣的理论。我至今也没有发现从这些新科技中产生出什么新的理论;可能未来有人会。
Dejan Milojicic: 在你的职业生涯中学到的最重要的是什么?
Leslie Lamport: 我的职业生涯一直都不同寻常,我从其中吸取的任何经验教训最好适用于30 年前就开始工作了的人。
Dejan Milojicic: 你一生中最骄傲的是什么?
Leslie Lamport: Bakery 算法。这个一个我觉得是我发现而不是发明的算法。
Dejan Milojicic: 你最壮观(spectacular)的失败是哪个?你从中学到了什么?
Leslie Lamport: 如同没人从我的成功中受益多少,也没有人在我的失败中受到伤害。我的成功和失败都不壮观(spectacular)。我只做了些值得记住的事情;我还做了一些事情最好把它们忘记。一般,那些值得记住的事情都是简单的小东西,没有什么宏伟的愿望。
Dejan Milojicic: 你想对现在的和未来的研究者和参与者说些什么呢?
Leslie Lamport: 不要关注于我这样的老鸟告诉你应该做些什么。(Don’t pay attention to pedantic old farts like me telling you what to do.)
看完以后总结出了几点:
- LaTeX 前景不佳,起码从lamport 这话感觉不错有很好发展,感觉lamport 连人和LaTeX 都卖给了微软。
- 在lamport 提出的分布式算法中都面临N 的限制,只有在并发的process 较少的情况下能取得较好的效果,当分布式中的process 个数增多时,算法效果就需要改进了,如Azure 中下层使用的是Paxos 算法保证一致性,上层使用的是动态划分(partitions)。详见Azure。