写点什么

视频:Damien Katz 畅谈 CouchDB

  • 2009-05-18
  • 本文字数:754 字

    阅读完需:约 2 分钟

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

2009-05-18 02:133283
用户头像

发布了 225 篇内容, 共 74.3 次阅读, 收获喜欢 53 次。

关注

评论

发布
暂无评论
发现更多内容

史上最大DDoS攻击之争:这三次攻击,谁才是「最大」?

百度开发者中心

最佳实践 方法论 信息安全 案例分析 行业深度

LeetCode题解:217. 存在重复元素,哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

webrtc AlrDetector

webrtc developer

网络货运平台要智能,安全的数据底座少不了

华为云开发者联盟

数据库 华为云 物流 智慧物流 可视化追踪

OPPO数据湖统一存储技术实践

安第斯智能云

大数据 数据湖 存储

Go语言chan实现原理,彻底搞懂chan读写机制

微客鸟窝

Go 语言 8月日更

前端基础二之css篇

ベ布小禅

8月日更

webrtc Rtp/rtcp (1)

webrtc developer

老板不让用 AFNetworking,我该怎么办?

神策技术社区

大前端 后端 数据 数据采集

基于KubeEdge实现中国移动10086客服云边协同平台

华为云原生团队

云计算 开源 运维 边缘计算 边缘技术

用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话

Python研究者

8月日更

Android技术分享| 自定义ViewGroup实现直播间大小屏无缝切换

anyRTC开发者

android 音视频 实时通信 Android开发 大小屏切换

The Data Way Vol.2 | 做个『单纯』的程序员还真不简单

SphereEx

数据库 开源

千亿级模型在离线一致性保障方案详解

百度Geek说

百度 测试 后端

七步实现列表点击事件的采集

神策技术社区

大前端 后端 代码

价值连城 图灵奖得主Yoshua Bengio约书亚·本吉奥的采访 给AI从业者的建议 John 易筋 ARTS 打卡 Week 60

John(易筋)

ARTS 打卡计划

如何找到程序崩溃的 “凶手” ?

神策技术社区

数据库 程序员 埋点

Go1.17正式发布--切片转为数组指针

草原狼

Go 语言

Vue进阶(四十):ref ($refs) 用法详解

No Silver Bullet

Vue 8月日更

【LeetCode】学生考勤Java题解

Albert

算法 LeetCode 8月日更

centos8 mediasoup 搭建

webrtc developer

WebRTC mediasoup

又翻车了?列表点击事件采集那些你不知道的坑!

神策技术社区

数据库 大前端 后端 代码

如何理解 Java 多线程

HoneyMoose

大一一个学期学多少编程算正常?

沉默王二

编程

从“人工”到“人工智能”,聊一聊本届东京奥运会的AI黑科技

行者AI

使用账号密码来操作github? NO!

程序那些事

Java GitHub 程序那些事

MaxCompute执行引擎核心技术DAG揭秘

阿里云大数据AI技术

Java 为什么设计成 String 不能用 == 来进行比较

HoneyMoose

linux工具之TC

webrtc developer

解读短小精悍的 Then 框架

fuyoufang

ios swift 阅读代码 8月日更

MySQL 系列教程之(六)DML 操作:数据的增删改

若尘

数据库 MySQL 数据库 8月日更

视频:Damien Katz畅谈CouchDB_Ruby_Werner Schuster_InfoQ精选文章