写点什么

视频:Damien Katz 畅谈 CouchDB

2009 年 5 月 18 日

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 年 5 月 18 日 02:13786
用户头像

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

关注

评论

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

架构师训练营 - 第十周 - 总结

Anrika

极客大学架构师训练营

实用心理学之识人篇

代码制造者

低代码 零代码 职场成长 编程开发 职场搞笑

排序算法二(归并排序、快速排序、希尔排序)

xcbeyond

Java 算法 快速排序 归并排序 希尔排序

微服务-技术专题-使用 API 网关构建微服务

李浩宇/Alex

微服务

奈学:reaseShared共享式释放锁

古月木易

reaseShared 共享锁

区块链技术助力基础建设

CECBC区块链专委会

新基建 区块链技术 国家电力

奈学:Executor框架的概述

奈学教育

Executor Executor框架

微服务架构的整套解决方案

xcbeyond

架构 微服务 IT建设

经济优势再显,江苏如何通过职教打造人才高地?

InfoQ_967a83c6d0d7

白鹭引擎助力《迷你世界》研发团队开发3D小游戏版

DT极客

知识点梳理:聊聊iOS SDK数据采集那点事儿

易观大数据

SpringMVC-技术专题-支持可版本管理的Restful接口

李浩宇/Alex

springmvc

开发一款视频直播有多吃香?

anyRTC开发者

SpringCloud(Netflix)-技术专题-Ribbon的基本使用

李浩宇/Alex

Java 技术 SpringCloud

区块链:在发展的同时,准备好你的产品。

石云升

区块链 DCEP 创新

微服务-技术专题-初步介绍服务发现

李浩宇/Alex

Java 技术 微服务

区块链技术与福彩事业结合的变革

CECBC区块链专委会

区块链技术 福彩平台

2. 整体把握 CocoaPods 核心组件

Edmond

ruby ios swift CocoaPods 包管理工具

使用 Golang 和 HTML5 开发一个 MacOS App

郭旭东

go macos

央行发行的数字货币会带来哪些变化?

石云升

区块链 数字货币 DECP

Java NIO 是 NIO么?

soolaugust

Java io nio

认识分布式系统

多颗糖

分布式 分布式系统 分布式存储

职教黄金时代,河南如何继续“乘风破浪”?

InfoQ_967a83c6d0d7

Volcano:带你体验容器与批量计算的碰撞的火花

华为云开发者社区

Kubernetes 容器 分布式 Volcano 批量计算

最佳实践:使用阿里云CDN加速OSS访问

阿里云Edge Plus

CDN

奈学:Executor框架的概述

古月木易

Executor Executor框架

云计算的可信新边界:边缘计算与协同未来——【两万五千字长文】

华为云开发者社区

云计算 云原生 5G 边缘计算 云服务

高效程序员的45个习惯:敏捷开发修炼之道(2)

石云升

读书笔记 敏捷开发 对事不对人 欲速则不达

Apache 顶级项目 Apache Pulsar 成长回顾

Apache Pulsar

kafka 云原生 中间件 Apache Pulsar 消息系统

排序算法一(冒泡排序、选择排序、插入排序)

xcbeyond

Java 算法 冒泡排序 选择排序 插入排序

企业应用开发或迎新趋势 “低代码平台”备受追捧

爱极客侠

视频:Damien Katz畅谈CouchDB-InfoQ