【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

Webpack最佳实践

Geek_02d948

webpack

Webpack完整打包流程分析

Geek_02d948

webpack

Vue响应式依赖收集原理分析-vue高级必备

yyds2026

Vue

Canvas 拖拉拽建模工具,支持排序导出 Notebook 内容|ModelWhale 版本更新

ModelWhale

人工智能 机器学习 数据分析 canvas 编程建模

西安Java线下机构学习费用

小谷哥

Go语言入门15—select

良猿

Go golang 后端 11月月更

详细介绍:深圳市数字资产合约交易所软件开发中杠杆和合约的区别

W13902449729

区块链交易所开发

如何破解终端算力困局?PRCV这篇论文让机器人“算有余力”

优必选科技

机器人 产业 算力 机器视觉

大数据培训机构哪些口碑好?

小谷哥

《入侵生命周期细分实践指南系列》:异常凭证攻击

美创科技

盘点16种常见的PCB可靠性测试,您的板经得起测试吗?

华秋PCB

测试 PCB PCB设计

上海大数据培训机构应该注意什么

小谷哥

马斯克拍手称好的超级App,对企业到底有什么价值

Onegun

技术栈 超级应用

一站式服务:深圳区块链交易所app系统开发解决方案

W13902449729

区块链 区块链交易所

全生命周期服务加持,鸿蒙世界构建按下加速键

叶落便知秋

Vue响应式系统原理并实现一个双向绑定

yyds2026

Vue

前端一面经典vue面试题总结

bb_xiaxia1998

Vue

Vue中的diff算法深度解析

yyds2026

Vue

孙荣辛|大数据穿针引线进阶必看——Google经典大数据知识

laofo

大数据 OLAP 数据治理 OLTP

前端培训有哪些比较好的学习方法

小谷哥

参与有奖 | 选出你心目中最硬核的技术文章!

InfoQ写作社区官方

热门活动

大数据培训班学习方法有哪些

小谷哥

写过vue自定义指令吗,原理是什么?.m

bb_xiaxia1998

Vue

Webpack插件核心原理

Geek_02d948

webpack

融云全球社交泛娱乐洞察,「音频社交」如何出海破圈

融云 RongCloud

出海社交 通讯

甘特图是什么意思?甘特图制作步骤教程

优秀

甘特图

零依赖监控解决方案:TDengine+Grafana落地实施

TDengine

数据库 tdengine 时序数据库

Java程序员进阶提升必备性能优化知识,阿里大牛一份性能优化手册全部总结出来了

程序员小毕

数据库 程序员 程序人生 JVM Java性能优化

手把手教你成为荣耀开发者:付费服务开通指南

荣耀开发者服务平台

手机 安卓 荣耀 honor

交易所开发是什么?深圳一站式服务公司告诉你

W13902449729

交易所开发 区块链交易所

售后技术支持管理指标实践

网易云信

技术支持 售后服务

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