写点什么

视频: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:13753
用户头像

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

关注

评论

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

阿里架构师花近三个月时间整理出来的Java独家面试题(Java岗)

Crud的程序员

Java 编程 架构 java面试

第六周作业

Griffenliu

面试无忧:源码+实践,讲到MySQL调优的底层算法实现

小Q

Java 数据库 学习 面试 算法

磁盘到底是怎样工作的?一文理解硬盘结构

Guanngxu

操作系统

【薪火计划】06 - 你推崇的领导方式是怎么样的?

brave heart

管理

监控之美——监控系统选型分析及误区探讨

华章IT

运维 云原生 监控 Prometheus

Scala语法特性(三):面向对象的独特点

大规模数据处理学习者

特质 样例类 case class Traits

一枚程序猿的MacBook M1详细体验报告

Zhendong

免费下载O’Reilly出版社全新之作《建立机器学习流水线》

计算机与AI

学习

使用 Go 实现 Async/Await 模式

Roc

go golang channel goroutines Async

三万字无坑搭建基于Docker+K8S+GitLab/SVN+Jenkins+Harbor持续集成交付环境!!

冰河

Docker 云原生 k8s

区块链供应链金融落地解决方案,数据上链存储

WX13823153201

区块链供应链金融落地

区块链如何助力精准扶贫?

CECBC区块链专委会

区块链 扶贫

《华为数据之道》读书笔记:第 8 章 打造“清洁数据”的质量综合管理能力

方志

数字化转型 数据质量管理

第六周学习总结

Griffenliu

《华为数据之道》读书笔记:第 7章 打造“数字孪生”的数据全量感知能力

方志

数据中台 数字化转型

现在Php、Java、Python横行霸道的市场,C++程序员们都在干什么呢?

ShenDu_Linux

c++ 程序员 编程语言 C语言 软件工程师

CPU飙高问题排查

程序猿玄微子

《华为数据之道》读书笔记:第 6 章 面向“自助消费”的数据服务建设

方志

数据中台 数据仓库 数字化转型 数据治理

区块链开发落地,联盟链系统平台搭建

t13823115967

区块链 区块链开发落地 联盟链系统平台搭建

二分发代码模板

小兵

Spock单元测试框架实战指南四 - 异常测试

Java老k

单元测试 spock

Nginx的反向代理与负载均衡--配置Nginx

Linux服务器开发

nginx 负载均衡 反向代理 后端开发 Linux服务器

架构师训练营第 1 期 - 第 10 周 - 学习总结

wgl

极客大学架构师训练营

区块链政务系统开发解决方案

t13823115967

区块链+ 区块链开发落地 政务系统开发解决方案

我是如何使计算提速>150倍的

Lart

Python 代码优化 Numpy

JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来

小Q

Java 学习 架构 面试 JVM

聊聊销售背后的策略

吴晨曦

创业 销售管理

Spring 源码学习 02:关于 Spring IoC 和 Bean 的概念

程序员小航

spring 源码 源码分析 ioc

前嗅教你大数据:常见几种编码介绍

前嗅大数据

大数据 编码 编码指南 前嗅大数据

甲方日常 59

句子

工作 随笔杂谈 日常

视频:Damien Katz畅谈CouchDB-InfoQ