采访布赖恩·克

MySQL的建筑师讲了数据库存储引擎,亚马逊的Web服务,下一代分布式版本控制,并建立开源软件的经济学的未来。

MySQL的建筑师布莱恩·阿克尔讨论数据库存储引擎,亚马逊的Web服务,下一代分布式版本控制,并建立开源软件的经济学的未来。

MySQL的建筑师布莱恩·阿克尔讨论了范围广泛的问题与多恩·马丁,编辑的采访LinuxWorld。

当我看着你的网站,我看到MySQL的一些非常不寻常的存储引擎。您可以使用一个网站作为后端存储,甚至memcached的内存支持存储。做这些引擎有什么实际应用?或者,他们多在示例代码的性质是什么?

那么,他们实际上有相当多的实际应用。在里面数据库行业,我们已经听到,特别是像公司IBM,一段时间以来,关于建立联盟的数据来源。因此,从不同的网站获取数据,或在这种情况下,只是不同的数据战略,将它们整合在一起。这是怎样的一个非常早期的概念,蒙蒂维德纽斯了,当他第一次来到了与MySQL,但它更多关于分析和交易引擎。我们所做的是我们的一种传播这个概念了。

该HTTP引擎是一个有趣的来看看。它被写了一段示例代码,设计,使得它可以与Web站点进行通信。它可以通过HTTP方法获取基础数据,然后把所要能为SQL使用。好。那么,有什么大不了的?那么,这样的一个大问题一直是由马克·阿特伍德的S3引擎。下面是一个引擎,你已经有了亚马逊,谁拥有的这家大型基础设施存储,什么马克所做的就是他提出,可通过发动机。

举个例子,我知道他的一个早期案例是他们有一个房地产中介正在收集关于销售的统计数据和数据。他们不再创建tb或pb级的本地数据存储库,而是开始将其构建为与普通SQL一样的架构。他们将其插入数据库。但是不必在本地存储数据,而是将其放入S3中进行长期归档。所以他们可以把他们可能不需要经常访问的数据集放到一个他们不需要支付任何费用的环境中,除了实际的存储成本。在本地存储数据、拥有更多的系统管理员、拥有更多的基础设施或仅仅存储在S3中之间,这些数字对于使用S3服务器来说是很强大的。

而只是给你的一些事情是可以做的一个想法,我们在MySQL的用户会议。我在酒吧解释HTTP引擎,一组在那里。而这一个家伙看,他对我说话一点点,他熄灭。我们围坐在酒吧像一小时,并且他回来,说:“看这个。”他曾去过谷歌电子表格,和他做了什么是写一个RESTful URL,并把它插入HTTP引擎,然后开始收集数据从谷歌的电子表格和数据库中显示。所以每次他做了选择数据库的时候,它实际上是从这个谷歌电子表格,他已经连接到提取数据。所以采取不同的数据源的整个概念和建立联盟他们拥有我们看到了一些非常实用的应用程序。

在内存缓存发动机的情况下,它只是试图让一个架构,它是常见的更简单易用。如果你去看看CNET,Slashdot的,维基百科,LiveJournal的 - 所有这些网站使用的memcache着某种与MySQL的协调努力的。这个想法是,我必须将数据插入到我的数据库,然后我必须再插入的内存缓存的数据。The idea was instead to just make it simple, so that when you only deal with the database for your inserts, therefore any kind of cache coherency problems go away, because the data is, once it’s inserted in the database automatically, blows out the cache and inserts the data directly inside of memcache. And you can always do this stuff in your application layer. But can we make it a lot simpler for users to grow these types of architectures without having to write a lot of pieces themselves? So you could say they’re niche, but I especially think with the Web method, I don’t think that we’ll see that being nearly as niche in a few more years from now, especially as we watch more and more Web sites becoming API enabled.

你提到一个RESTful接口。你能解释一下REST的概念,和SQL数据库预计如何看待数据的概念如何匹配?

这很有趣,坦率地说,我们今天只解决了其中的一部分。因此,我们所说的RESTful是指您生成一个URL,与您通常在浏览器中键入的内容相同。相反,服务器将用某种XML、某种立即易于解析和使用的数据源进行响应。所以,不像说,肥皂XML-RPC它是一个非常非常简单的API。它在Web站点中传播得非常快以非常简单的RESTful方式生成Web页面,这使得编写应用程序从Web站点提取内容变得非常简单。在从Web站点提取内容的同时,我们可以采用相同的数据源,并将其表示为一种类似表格的格式,供用户使用。

看起来REST的很多核心工作就是正确地获取HTTP状态码,并在适当的地方使用GET和POST。一旦您创建了将数据放入替代模板(XML数据块而不是HTML)的能力,那么您就可以将原来的Web应用程序转换为Web API。

对,就是这样。而对于数据库,它把它变成一个数据引擎,我们可以从提取数据。而好消息是,对于人谁是站在开发方,坐在那里想提取数据,它是在网站通常提供数据的最佳利益。因此,这些网站都上来了使用这些API,现在不断扩展它们。因此,越来越被更多的制造环境中的数据提供给数据库的每一天。

亚马逊不仅仅提供存储服务。他们有另一个Web API,提供计算能力。

是的,“弹性计算云” - 它只是更容易记住EC2。所以,是的,那是其他环境之一。他们在做什么有他们正在做的是分时整个理念,我们一直在倾听自上世纪70年代,并使其非常实用。So you can say if I need more computing power, if I need five more databases there, because I've got this much data I need to be reading, and I have this many coordinated applications, you can take MySQL on what’s called an AMI [Amazon Machine Image] runningLinux的而MySQL,把它扔到EC2云中,当你需要更多的计算节点时,你可以请求更多的计算节点。只要你需要,你就可以一直使用计算节点。

这对软件构建和测试有什么影响呢?这听起来像是一种获得按需编译场或机器场来运行所有测试的好方法。

究竟。对于在我们构建和测试软件行业的侧面我们这些,它使完整意义上的。因此,而不是建立在我们自己的基础设施,让我们而不是只扔了AMI的,因为我们需要它们来测试自己的软件。但是你看到它复制了整个行业。你看到的石油公司勘探做计算。你看到的电影公司做渲染就可以了。所以,我们在数据库中的世界,这是非常好的了,当我们有数据库,它们在更多的分析利用。而且你可以采取更多的分析节点,使其可用。并与S3引擎EC2相结合的事情是,EC2和S3之间传输数据的成本不存在。所以,如果你有内部EC2运行MySQL节点与后端存储S3内的数据,你必须在那里你不支付任何带宽的存储基础设施。 And yet you still have access to all that data for analytics.

什么其他的机会,你看到企业软件转移到这样的基础设施?

看成立于1995年什么今天成立了一个网站它的成本网站是什么费用?当我们在Slashdot工作,事情之一是,我们所要做的就是继续提供更多的网络节点。如果我们有交通的繁忙是进来了,我们必须获得更多的节点和运行,所以经常我们大概有三分之一的我们的硬件闲置只是为那些时候,它需要在那里采取持续的交通高峰。这种做法的好处是,如果你是建设一个现代化的Web应用程序,可以真正地建立它的EC2云内。你可以有你的数据库坐在那里运行在它的内部,和您的Web服务器的所有相互通信。当你的流量负载增加时,你可以只打开你的前端应用程序的更多的AMI服务器善于去。

我认为这是令人难以置信的令人兴奋的,因为保持周围基础设施的成本是相当昂贵的。而且我们正在与真聪明虚拟化。这就是为什么你看到虚拟化甚至公司内;这就是为什么你看到这么多正在做,现在与Linux内核,Xen的内部KVM,和对事物的Parallels的商业方面,当然,VMware等。

在你的公司内部发展,我理解你使用BitKeeper的。您是否按照一些其他版本控制系统的在那里?

我们跟着他们几乎不断。这可能是我们辩论的喜爱内部的话题之一。BitKeeper的是一个真棒工具。拉里·麦沃伊破获一起它的设计,真正改变了版本控制和使人们真的认为关于不同版本控制螺母。,什么是很有趣,看看是什么在开源世界中发生的事情,只要人采用同样的方法,并试图利用它。

在今天的我们看来,BitKeeper的仍然是最强的球员,比实际三个竞争者,现在这是集市-NG,水银和Git强得多。和Git只是最近的事。而且他们不太存在,只是还没有。它很有趣,看看谁能够outinnovate谁第一。灿拉里和BitKeeper的出保持outinnovating的开源的人,或将在开源的人通过他。而且它的可看性。但我认为这是使所有的不同的产品在市场中更好的结局,因为它们都与彼此竞争。

因此,没有内部的发展模式涉及了很多断开的发展和重大同步起坐?

当然。我们有开发商,我认为32个国家。所以,我们是一个现代分布式企业已经分布式开发回事。有没有办法可以作出类似CVS的环境,让我们的工作以任何方式将不只是减缓我们的速度。

分布式发展,为团体做本地的提交,向开发者集合中修改提交,以然后同步提交,然后通过上游的能力,这是核心和关键的,我们怎么办发展。我们不能做开发几乎一样有效或几乎没有很快这种能力。

X.org最近搬了Git的,但他们在从Linux的开发人员使用它的方式更简单的模型,用它就好了。

只是看看哪些组采用了哪些源代码控制系统,以及它们是如何使用它们就很有趣了。我的意思是,任何系统,甚至是Git、BitKeeper或其他任何系统,只要你愿意,都可以以一种简化的方式使用。但是,实际上,能够推来推去提交补丁和共享这些提交补丁的灵活性,确实允许小组以他们想要的方式工作。

而且,它比基于服务器的设置要快得多。

是。如果你看一下不同的车型,BitKeeper的有一个SSH模式,这是非常好的对于那些谁拥有服务器设置。我认为强片之一,对于水银拉,是水银早期使用HTTPS模式犯。它也有SSH。因此,例如,你可以建立一个公共的Apache服务器,并在它抛出一个CGI。然后,它可以处理其本身在资源库中组的节点。这是我的创新思想的一个位是相当有趣的是,他们做到了。但如果你是一个公司里面工作,也许SSH工作更好地为您。如果你在一个非常大的分布式环境中工作,也许HTTPS是一个更好的方法。

最近在您的博客上,您发表了一篇关于开源软件的经济动机的相当长的文章。你提到社区开源和商业开源之间没有什么区别。很多专家似乎都在说有很大的不同。

好吧,我认为你必须首先看看为什么某些东西是开源的动机是什么。到底是什么原因呢?开发人员这样做是为了共享。公司也有同样的原因。现在开发人员对共享感兴趣是因为它可能对他们的职业生涯更好。他们得到更多的认可。他们更有可能被雇佣。这可能是因为他们有兴趣做更多的测试。在公司方面,你可以看到同样的事情。他们感兴趣的是推出产品,创造一个更大的渠道。 So, the motivational factors are the same.

12 第1页
页面1的2
IT薪资调查:结果是