写点什么

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

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

关注

评论

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

在?来说点儿程序员Style的金句吧【话题讨论】

气气

话题讨论

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

如何实现 iOS 短视频跨页面的无痕续播?

阿里云CloudImagine

ios 阿里云 Video播放器 视频云

自助售货机主板要注意哪几个方面?

双赞工控

安卓主板

深入理解 Linux 的 epoll 机制及epoll原理

Linux服务器开发

网络编程 epoll Linux服务器开发 IO多路复用 Linux后台开发

T-TDSQL的核心理念,为数据赋能

腾讯云数据库

数据库 tdsql

JVM专题01-类加载机制详解

JustRunning

javacore JVM 深入理解JVM Java类加载

来自阿里的图解计算机、网络、操作系统PDF,竟在GitHub点赞最高

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

使用DEM和矢量数据绘制地图

gisbook

GIS map DEM

腾讯云分布式数据库TDSQL的十年自主可控之路

腾讯云数据库

数据库 tdsql

T-TDSQL的典型应用

腾讯云数据库

数据库 tdsql

不是吧 阿sir!都21年了还有人不会算法?赠你份字节内部算法手册吧

Java 编程 架构 面试 架构师

拯救你的算法!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java 编程 架构 面试 程序人生

12年技术老兵整理的Alibaba“MySQL 学习笔记”带你轻松拿捏MySQL

Java 编程 架构 面试 程序人生

云原生架构下的持续交付实践

百度Geek说

架构 云原生 后端

牛掰!阿里大佬刷了四年LeetCode才总结出来的数据结构和算法手册

Java 编程 架构 面试 程序人生

TDSQL多集群下的自动化和交付

腾讯云数据库

数据库 tdsql

TDSQL原创技术的出发点

腾讯云数据库

数据库 tdsql

多线程环境下,程序运行真是危机四伏

Java 架构 面试 后端 多线程

阿里菜鸟+腾讯IEG面经(阿里5面,腾讯8面)无限秽土转生

Java 程序员 架构 面试 计算机

工信部整治平台网址屏蔽问题,打击互联网行业垄断任重道远

石头IT视角

在云中确保安全的五个技巧

云计算

TDSQL交付要求和挑战: 快速、灵活、安全

腾讯云数据库

数据库 tdsql

TDSQL自动交付方案: 全球灵活部署,最快9分钟

腾讯云数据库

数据库 tdsql

无敌!肝完这套Alibaba面试全能小册,百万年薪在向你招手!

Java 阿里巴巴 编程 面试 程序人生

高能预警!Alibaba最新出版的JDK源码剖析手册(究极奥义版)开源

Java 程序员 架构 面试 Alibaba

大奖花落谁家,TDSQL他来了

腾讯云数据库

数据库 tdsql

T-TDSQL的核心技术

腾讯云数据库

数据库 tdsql

面试官:你说说限流的原理?

艾小仙

面试

理解RESTful API

林十二XII

什么是CPython

林十二XII

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