写点什么

Cloudant 发布了基于 Java 的 CouchDB 视图服务器

  • 2010-09-19
  • 本文字数:1167 字

    阅读完需:约 4 分钟

CouchDB 背后的公司 Cloudant 刚发布了针对 CouchDB 的 Java 视图服务器。这意味着不仅仅是 Erlang 和解释性语言如Javascript 或者Python 可以用于Map-Reduce 工作,基于JVM 的语言也可以用于Map-Reduce 工作。本周的CouchDB 社区会议将会讨论这项技术。目前Java 视图服务器只用于Cludant 托管的BigCouch 服务。

Java 的主要优点是有海量的 Java 库可用于各种各样与 map reduce 任务有关的功能。第二点是更可靠的静态类型方面(还需要证实)。性能比较是有意义的,但是目前还没有做基准测试。预期 Java 视图的性能会比原生的 Erlang 视图慢(Java 和 Erlang 可以混合在一个视图中)。使用 org.json 库做的 JSON 序列化和反序列化会带来一些性能开销。要使用基于 Java 的 Map Reduce 视图只需要实现一个简单的 JavaView 接口,该接口提供了对 map、reduce 和 rereduce 的回调。例如一个简单的视图,聚合在配置的 JSON 字段中的单词数量。 {
“_id”:"_design/splittext", “language”:“java”, “views” : { “title” : {“map”:"{\“classname\”:\“ com.cloudant.javaviews.SplitText \”,\“configure\”:\“title\”}",“reduce”:“com.cloudant.javaviews.SplitText”},
} }InfoQ 与负责 Java 视图服务器项目的 Search at Cloudant 主管 David 做了交流。InfoQ:CouchDB 运行在 Erlang 之上,它如何与 JVM 中的代码交互?实现这个项目的挑战在哪里?David:Java 视图服务器和所有 CouchDB 视图服务器一样(除了原生 erlang)作为一个外部进程运行。在 CouchDb 和视图服务器之间有一个定义良好的协议来做通信。通常,通过标准方式做通信,但是实际上因为性能原因我们使用OtpErlang java-erlang 库(允许多线程)。InfoQ:在这个场景下对代码/ 库有什么限制?David:主要的挑战是安全,在系统级和用户数据级都用限制。我们在一个共享的集群运行视图服务器。我们使用动态类加载来加载用户的库。类加载器有一个十分严格的安全管理器来限制恶意调用。不允许文件系统访问,只允许调用有限的系统调用。目前的视图服务器架构很简单,它使用由基于Erlang 的CouchDB 实例来驱动java 线程。如果Java 服务器出问题了,它只是关闭并重启服务器。对于这样的服务器还可以使用基于Scala 的 Akka framework 或者 Jetty 的非阻塞请求来实现。Java 视图服务器可以运行在任何 JVm 上。一 个巨大的潜力在于使用 Java 的下一代语言例如 Clojure、Scala 或者 Groovy(和其他语言)来做种工作,因为这些语言对于表达这样的任务比 Java 更简明高效。据 David 所说其他团体正在开发一个基于 Clojure 的视图服务器。如果想评估新的 Java 视图服务器,可以从 Cloudant’s 的站点获得一个免费的账号。在 couchjava github 版本库可以看到更详细的介绍。查看英文原文: Cloudant releases Java based view server for CouchD B

2010-09-19 09:523970
用户头像

发布了 47 篇内容, 共 13.2 次阅读, 收获喜欢 3 次。

关注

评论

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

使用 ECK 在 Kubernetes 集群中管理 Elastic Stack

Se7en

长安链国密TLS设计和实现学习

创新技术领航者!华为云GaussDB获颁2022年云原生数据库领域权威奖项

科技云未来

揭秘华为云GaussDB(for Redis)六大秒级能力盘点

科技云未来

在线XML转HTMLTable工具

入门小站

工具

长篇图解etcd核心应用场景及编码实战

字母哥哥

Java etcd #Kubernetes#

日常工作最常用6大Git命令讲解

流浪的漂流瓶

git git stash 8月月更 git命令

上了NVMe的路,才能飙起全闪存的车

白洞计划

华为云GaussDB(for Redis)全面对比Codis

科技云未来

【Django | 开发】 为已有遗留系统数据库生成管理后台

计算机魔术师

8月月更

直播预告 | Homebrew 作者 Max Howell:如何打造杰出的开发者工具

思码逸研发效能

开源 研发效能 开发者工具 开发工具 科技

[CSS入门到进阶] 4行CSS实现footer置底!超常见的需求,快来收藏

HullQin

CSS JavaScript html 前端 8月月更

【Python | 词云】聊天记录绘制超美词云(七夕快乐 ,曾同学)

计算机魔术师

8月月更

【云原生| Docker】 部署 Django & mysql 项目

计算机魔术师

8月月更

【操作系统 | Linux】介绍与安装(虚拟机)

计算机魔术师

8月月更

每日一R「20」网络编程(二)

Samson

学习笔记 8月月更 ​Rust

加速拥抱数字化,云时通打造全新数字中台!

创意时空

C/C++模板类模板与函数模板区别,以及用法详解

CtrlX

c c++ 面向对象 模板方法 8月月更

Apache DolphinScheduler 简单任务定义及复杂的跨节点传参

白鲸开源

工作流调度 海豚调度 调度器 大数据调度 任务传参

Spring源码解析(四)Spring是怎么处理BeanDefinition的?

石臻臻的杂货铺

spring 源码 8月月更

一文快速上手 Nacos 注册中心+配置中心!

王磊

Java SpringCloud

乘云远航|共赢新征程,打造数字化供应链竞争力!

创意时空

飞向深空:ColorOS 超算平台带来性能之变

脑极体

学习 Go 语言数据结构:实现哈希表

宇宙之一粟

哈希表 8月月更

Spring源码分析(三)Spring是如何把元素解析成BeanDefinition对象的

石臻臻的杂货铺

spring 源码 8月月更

长安链RPC服务学习笔记

长安链

职场人的未来,GO!咱们上云办公

创意时空

在线图片隐写术解密解码传递数据

入门小站

工具

如何正确理解Java对象创建过程,我们主要需要注意些什么问题?

PivotalCloud

一文详解产品经理与项目经理的区别

产品海豚湾

产品经理 职业发展 项目经理 产品设计与思考 9月月更

牵手华为云,云时通SRM助力企业采购数字化升级!

创意时空

Cloudant发布了基于Java的CouchDB视图服务器_Java_Michael Hunger_InfoQ精选文章