10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

瓴羊Quick BI和Tableau哪个更适合复杂表格呢?

夏日星河

Matlab实现图像压缩

timerring

图像处理 图像压缩

三天吃透mybatis面试八股文

程序员大彬

Java mybatis

DevOps 与平台工程:企业该如何选择?

SEAL安全

DevOps IdP 平台工程 企业号 3 月 PK 榜

2022 IoTDB Summit:东方国信王超《Apache IoTDB 在东方国信的商业化及应用》

Apache IoTDB

大数据 开源 时序数据库 IoTDB

BaseAdapter优化

芯动大师

ConversionService baseadapter viewholder

架构训练营-模块六作业

Sam

架构实战营

我,30岁程序员被裁员了,千万别干全栈

程序员晚枫

程序员 裁员 大龄求职

「Go工具箱」Pie :一个高性能、类型安全的slice操作库

Go学堂

golang 开源 程序员 个人成长

旺链科技荣获科创中国数字经济技术创新峰会多个奖项

旺链科技

区块链+ 区块链、

瓴羊Quick BI和Power BI哪个比较好呢?

巷子

ChatGPT 是真的银弹吗? | 社区征文

宇宙之一粟

Go 思考 后端 征文投稿 ChatGPT

低代码生成器 | 放开双手,专注业务,一键生成项目基础结构 + 重复代码

IT学习日记

开源项目 脚手架 代码自动生成 自动搭建项目

浅谈基于Web的跨平台桌面应用开发

京东科技开发者

Web 跨平台 nodejs 桌面端 企业号 3 月 PK 榜

WindowsGUI自动化测试框架搭建之需求整理、详细设计和框架设计

Python 自动化测试 测试框架 WindowsGUI UIaotumation

RISC-V SIG 创建专属邮件列表和论坛板块

openEuler

Linux 操作系统 openEuler risc-v

SkyWalking实现 Dubbo 微服务实现链路跟踪案例以及对接钉钉告警

忙着长大#

极客时间

OpenHarmony技术峰会举办“编程语言及应用框架分论坛” ,探讨应用开发新技术

极客天地

Caffeine高性能本地缓存框架初探

FunTester

使用 Pulumi 打造自己的多云管理平台

亚马逊云科技 (Amazon Web Services)

Amazon S3

淘宝 APP 网络架构演进与弱网破障实践

阿里技术

架构 网络

中国特供版也残了!AMD 3GHz最强核显梦碎

科技之家

2022 IoTDB Summit:华为王超《Apache IoTDB 在华为云的实践》

Apache IoTDB

大数据 开源 时序数据库 IoTDB

2022年证券行业年度专题分析

易观分析

金融 证券 经济

拆分电商系统为微服务

Geek_e5f2e5

王者荣耀商城异地多活架构设计

Geek_e5f2e5

设计消息队列存储消息数据的 MySQL 表格

Geek_e5f2e5

「Go框架」平滑关闭:要关闭服务,未处理完的请求怎么办?

Go学堂

golang 个人提升 平滑重启 程序员、 gin框架

2023金融科技四大机遇与挑战

易观分析

金融科技 金融 经济

BI工具数据看板对比:瓴羊Quick BI与Smart BI

流量猫猫头

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