BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

视频:Damien Katz畅谈CouchDB

| 作者 Werner Schuster 关注 7 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2009年5月19日. 估计阅读时间: 2 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

Damien Katz在访问中畅谈CouchDB。CouchDB是由Apache Incubator开发的一个分布式、容错、面向文档的数据库。CouchDB数据库用Erlang编写,通过HTTP/JSON API访问。数据库视图引擎运行在JavaScript上,但也有Ruby、Python等语言的替代实现。

在被问到CouchDB为什么会选择Erlang去实现的,Katz回答到:

CouchDB最早是用C++实现的,结果有点碰壁。当时我有了存储引擎、有了视图引擎、有了查询语言,都是C++写的,结果我在并发问题上撞了墙,因为 老是要按传统方式去处理线程、锁、消息这些事情。后来我在“Lambda the Ultimate”还是哪里看到Erlang是个非常好的并发语言,所以想看看怎么把它融合进我的代码里头。所以我就下载了Erlang,玩了没多久就认 定用它写数据库引擎和服务器简直是天作之合,于是我把原来的C和C++代码扔了,全部用Erlang重写。用Erlang写这个效率高得没法说,它特别适 合做这些基础设施类型的东西。它原来是为电信业设计的,电信业面对的问题和数据库有很多相似之处,比如输入、输出量都很大、要保证可靠、平滑地处理失败。 所以最后发现Erlang是CouchDB最适合的实现语言。

当被问道Erlang的可伸缩性方面是否给CouchDB以帮助时,Katz解释到:

并发方面绝对有。有人抢着做了个基准测试,能达到2万个并发连接。很厉害的结果。而我们还没有做过Profiling呢。Erlang在这方面绝对给我们 帮了大忙。如果我用传统的线程模型,500个活动连接就算很不错了,所以说Erlang绝对提高了单台机器的可伸缩性。Erlang对多台机器的可伸缩性 也会有帮助,只不过我们暂时还没有用到那方面。有很多工具、库等等可以让多台机器的Erlang环境完成自动故障转移、高效率的消息交换等等,我们只不过 还没用到那方面而已。

更多内容,请观看完整视频Damien Katz畅谈CouchDB

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

对于OA,Lotus确实有优势 by builder free

非严格结构的、基于文档的数据库应该是标准数据库的一个补充,现在比较倾向于用合适的东西做合适的事情了,期待中

Re: 对于OA,Lotus确实有优势 by qiu james

Lotus Domino/Notes 文档库, 表单, 视图的概念很好.
就是实现细节没有做到完美, 让人用起来很恼火, 比如编辑文本, 还不如原始版本的微软写字板; 编写应用, 好多地方只能GUI拖拽, 不能后台控制和批量更改, 更别提refactoring了, 就是原始的VB0.1 + Notepad1.0
好像有一本叫inside notes的书, 写得很好, 讲了Notes的实现原理, 也就是文档模型, 我觉得这才是Notes提供给我们的最大财富.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT