写点什么

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:523585
用户头像

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

关注

评论

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

“程”风破浪的开发者|从一大堆杂事中要效率

架构精进之路

学习方法 提升效率 “程”风破浪的开发者

聚焦云计算、大数据、人工智能等开源技术,这场开源开发者的盛会不容错过!

开源社

#开源 COSCon'22 2022 第七届中国开源年会

整个汽车产业链,都能“挤上”这朵云?

脑极体

对话熊飞2022:好的经营需要时间,TO B 从好产品好故事进化为好商业

B Impact

华为云连接CC,解决企业跨地区发展的网络难题

路过的憨憨

华为

​Apache IoTDB UDF 「Sample」的案例与最佳实践

Apache IoTDB

数据库 Apache IoTDB

Gtags解决UnicodeEncodeError问题

Geek_pwdeic

标签评分:海量标签如何进行系统治理?

袋鼠云数栈

数字经济浪潮下,企业如何通过数字体验平台(DXP)更好的与用户建立联系?

Baklib

客户体验

开源大数据集成框架ChunJun在数据还原上的探索和实践

袋鼠云数栈

公共 IP 地址和私有 IP 地址有什么区别?

wljslmz

IP地址 网络技术 10月月更 公网ip 私网ip

华为云弹性云服务器助力打造更安全可靠、灵活高效的云空间

爱尚科技

华为云安全性、可靠性、资源、创新性跻身行业前列

爱尚科技

灾变来袭不用怕,华为云数据灾备解决方案为你排忧解难

科技之光

一文读懂:开源大数据调度系统Taier1.2版本新增的「工作流」到底是什么?

袋鼠云数栈

“程”风破浪的开发者|satoken实现优雅鉴权

codingyt

学习方法 安全 鉴权 10月月更 “程”风破浪的开发者

Spring之AOP

Andy

SpringBoot之基础知识

Andy

政企办公新入口,华为云桌面安全便捷更高效!

爱科技的水月

华为云桌面,如何用心保护企业安全?

科技之光

选择华为云数据库,三大亮眼优势来助力

科技之光

八大技术亮点,华为云数据灾备解决方案为企业数据铸就安全防护强

科技之光

10-15-有效兼顾员工工作幸福感和工作进展,华为云会议稳定便捷又高效!

路过的憨憨

华为

SpringBoot之开发深入

Andy

SpringBoot之错误处理

Andy

开源直播课丨大数据集成框架ChunJun类加载器隔离方案探索及实践

袋鼠云数栈

Spring事务

Andy

SpringBoot简介

Andy

SpringBoot之快速启动

Andy

激活数据价值,探究DataOps下的数据架构及其实践丨DTVision开发治理篇

袋鼠云数栈

赴一场开源盛会丨10月29日 COSCon'22 开源年会杭州分会场,这里只差一个「你」!

袋鼠云数栈

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