写点什么

RavenDB 3.0 即将发布

  • 2014-03-12
  • 本文字数:1715 字

    阅读完需:约 6 分钟

最近 Ayende Rahien 在一篇博客文章中透露他们刚刚对少数外部人员发布了 RavenDB 3.0 alpha 预览版。他表示:在过去 18 个月左右的时间里我们一直在研发 RavenDB 3.0,该版本中的某些部分实际上从 2011 年就开始研发了,只不过一直到现在才真正发布到产品中。

对于新版本中的主要亮点,Ayende Rahien 首先谈到的是索引,他说:在提高索引性能方面我们做了大量的工作,但是实际上这些都是次要的。在这个版本中我们真正关注的东西是操作索引的问题。

在内部我们不再使用索引名称。这意味着我们能做一些愚蠢的事情,例如实现异步索引删除。之前有大量索引(特别是 map/reduce 或者有 LoadDocument 调用的索引)的用户发现删除一个索引可能会花费相当长的时间。但是基于现在的实现方式,我们能够立即删除索引,实际上是在后台做清理。

用户碰到的另一个操作问题是新索引的引入。如果要引入的索引仅仅覆盖了一个很大数据库的一小部分,那么问题尤其严重,创建过程通常会花费很长的时间。这是因为必须要遍历完数据库中的所有文档才行。我们在新版本中做了一些优化,只需要处理相关的文档,速度比以前快多了。

新索引在引入的时候会和其他正在运行的索引完全分离,你不需要处理新索引会减缓其他索引的问题。同时在这种方式下大的删除也不再会影响索引的性能,因为我们现在能够更好地处理交叉。

此外,我们还提供了更好的报告,你能够清楚现在正在对哪些内容进行索引,能够看见索引正在做什么,以及相应的操作。

从开发的角度来看,我们还添加了一些非常好的东西,包括索引附件的能力、在索引代码中添加一些更好的情景感知等。

接下来 Ayende Rahien 介绍了 RavenFS。他认为 RavenDB 的附件并不是很完美,有很多想要使用附件的用户发现他们无法看到附件,也没法以有意义的方式搜索附件。更重要的是,附件有一些限制,因为按照他们的预期附件是相对较小的。对于那些期望获得更好服务的用户而言,RavenFS 就是答案。

RavenFS 是一个复制文件系统,它支持非常大的文件,同时还支持使用和管理它们所需要的所有设施。我们很明确地将它设计为一个地理分布式系统,对于那些需要共享非常大且会经常变化的文件的系统而言,它能够大幅降低网络负载。

在即将举行的 RavenDB 大会上我有一个主题演讲,那时候我会对 RavenFS 进行详细的介绍。我认为它非常酷,同时也有一些非常好的用例,在过去的两年间已经有一些客户在产品环境中使用它了,所以我们已经有一些非常好的经验。

Ayende Rahien 表示对于使用 RavenDB 的用户而言一个完整功能的 JVM 客户端将为他们开辟更多的战线。现在已经有一些用户在使用该 API 构建应用程序了。在 3.0 交付之后他们还打算提供更多针对其他平台的客户端。

谈到 RavenDB 3.0 中的内部变化,Ayende Rahien 表示:

实际上我们在内部做了很多变化。但是其中最重要的一个变化是我们现在将 RavenDB 托管在了 OWIN 和 Web API 之上。对我们自己的 HTTP 服务器的改变已经完成,这是为了帮助用户有更好的基础去理解 RavenDB 内部的工作原理,同时也为了鼓励捐助。它还允许我们做一些非常好的事情,例如有一个端点记载一台 RavenDB 服务器中的所有端点。

另一个重要的变化是我们正在远离 Silverlight Studio,取而代之的是一个崭新的 HTML5 Studio。这非常令人兴奋,特别是整体性能以及系统的响应能力变得非常好。

在新版本中还有一个新的存储引擎 Voron,事实上它还是一种新的数据存储方式,RavenDB 就使用它存储事务性数据。该引擎并没有被限制为 RavenDB 现在需要做的事情,它可以做更多的事情。RavenDB 3.0 中已经有了在 Voron 上运行的选项。同时 Ayende Rahien 还表示他们使用整个 RavenDB 测试套件(有超过 3 千个测试)对 Voron 进行了测试,所有的测试均成功了。

最后 Ayende Rahien 谈到了一些运维方面的事情:

我们关闭了性能计数器,因为它会引发无休止的运维问题(损坏的计数器、权限问题等),取而代之的是一个内部的度量类库。因为是内部的,所以我们能够向系统中添加更多更有意义的度量标准。

我们有新的端点暴露更多的内部状态。我们改进了定期备份支持,让它更好用——现在能定义每周全部导出或者每天定期导出。对于运维人员来说新版本有很多非常好的功能可以让他们洞悉系统当前的运行情况。

2014-03-12 05:502100
用户头像

发布了 321 篇内容, 共 134.1 次阅读, 收获喜欢 19 次。

关注

评论

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

javax.security.auth.login.LoginException: Cannot locate KDC

刘大猫

人工智能 数据挖掘 算法 LoginException 算法数据分析

Wire,一个神奇的Go依赖注入神器!

左诗右码

哪些企业需要私有化部署?有没有推荐的私有化im

BeeWorks

即时通讯 IM 私有化部署

谷歌耗时一月关停服务器间谍软件Catwatchful

qife122

网络安全 数据泄露

南加州大学与某机构共建可信机器学习研究中心

qife122

机器学习 安全算法

EventBridge 生态实践:融合 SLS 构建一体化日志服务

Apache RocketMQ

云原生 事件总线 EventBridge sls

2025年哈尔滨等保测评失败原因剖析:制度、技术与执行的三重挑战

等保测评

区块链U卡APP外包开发的费用

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

“同声传译”还是“全文翻译”?为何HotSpot虚拟机仍要保留解释器?

poemyang

编译原理 Java虚拟机 #java 解释器

RocketMQ 客户端负载均衡机制详解及最佳实践

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列

RocketMQ 5.0 API 与 SDK 的演进

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列

ROS系统MoveIt玩转双臂机器人系列(三)--利用controller控制实际机器人

芯动大师

ROS

视觉语言模型知识蒸馏方法优化

qife122

知识蒸馏 注意力机制

哈尔滨三级等保测评技术要求:从主机安全到应用安全的全面防护

等保测评

泄漏检测与修复综合管理系统(源码+文档+讲解+演示)

深圳亥时科技

AppAuth-iOS - OAuth 和 OpenID Connect 客户端 SDK

qife122

ios Oauth Authentication

哈尔滨二级等保测评实施指南:六大步骤助你高效通过

等保测评

虚拟机器人如何理解自然语言指令

qife122

人工智能 自然语言处理

RocketMQ 重试机制详解及最佳实践

Apache RocketMQ

阿里云 RocketMQ 云原生 消息队列

2025大模型应用平台选型指南:从个人助手到企业级智能体

测试人

解析 RocketMQ 多样消费功能-消息过滤

Apache RocketMQ

阿里云 云原生 消息队列 消息过滤

监督学习与无监督学习:机器学习技术对比与应用实例

qife122

机器学习 监督学习

值得买商品详情API响应数据解析

tbapi

值得买 值得买商品详情API 值得买数据接口

Building An Elastic Query Engine on Disaggregated Storage

数新网络官方账号

私有化部署即时通讯,企业专属通讯系统BeeWorks

BeeWorks

即时通讯 IM 私有化部署

计算机图形学在服装定制中的创新应用

qife122

计算机图形学 算法优化

单样本学习计算任务的新方法

qife122

机器学习 元学习

逆向工程系列第三篇:二进制分析与破解实战

qife122

逆向工程 IDA Pro

大数据-59 Kafka 拦截器全解析:原理、拦截链机制与自定义实现实战

武子康

Java 大数据 kafka 分布式 消息队列

RavenDB 3.0 即将发布_语言 & 开发_孙镜涛_InfoQ精选文章