今天在旧金山的RICON West会议上,我宣布了Riak2.0技术预览版现在可以用了。主版本添加了很多人都期待的很多特性。
通过RICON West会议,我们将探讨很多有关Riak2.0的特性(会议期间谈话和研讨都将被追踪),所以这两天要睁大你的眼睛好好看看live stream。在会议之后,会议所有的谈话都将被录制视频可供大家观看。
让我们看看 Riak 2.0主要有那些改进:
准备好了吗?下载技术预览吧。
请注意这只是Riak 2.0的一个技术预览版本。这意味着它已经被广泛测试,虽然我们已经对所有的候选发布版本进行了处理,但是要确保生产硬化任然有许多工作要做。从现在到最终版本发布,我们将继续进行手动和自动测试,制定详细的使用案例,收集性能统计数据,并更新使用和部署的文档。
我们将最终敲定Riak 2.0,我们欢迎您的对于技术预览版本的意见反馈。我们会一直开放讨论,你可以通过Riak 的用户邮箱列表,IRC(riak上的免费节点)来进行讨论,或者联系我们。
Riak数据类型
在分布式系统中,我们不得不牺牲一致性来换取可用性(参见:CAP定理),这将会使得应用设计的某些方面变得复杂。在Riak 2.0版本中,我们整合了最前沿的数据类型研究——CRDTs(无冲突复制数据类型),率先创造了Riak的数据类型。通过添加计数器,集合,map,寄 存器和flag这些Riak数据类型,(Riak)能够让开发者在矢量时钟复杂度和解决冲突等方面上花费更少的时间,相反(让他们能够)专注于他们所熟悉的分布式数据类型来支持他们应用的数据访问模式。
Riak的数据类型检查实施以及注意事项和基本用法,这里提供更详细的概述。
强一致性
在之前的所有版本中,Riak 被定性为一个最终一致性的系统。随着2.0版本的发布,Riak 现在允许开发者选择操作什么时候应该是强一致或最终一致的。这给开发者在这些不同数据类型语义中提供了一个选择。同时运营商也可以继续享受Riak的操作 简便性。在同一集群中的每一个bucket基础类型上都定义了一致性偏好。
RICON West 2012会议上的一个讨论叫做“为Riak添加一致性”,在这一讨论的基础之上,我们吸收了其中许多的原始想法。此外,(github上)为riak_kv添加一致性的pull request提供了相关资料库和实现方法的详细信息。
重新设计的全文搜索
Riak是一个键/值存储库,并且值简单的以二进制存储在磁盘上。在之前Riak 搜索的版本中,Riak开发者早就能够对这些这些存储数据内容进行索引。在Riak 2.0中,Riak搜索功能(代号:Yokozuna)已经被完全重新设计,现在直接使用Apache Solr 全文搜索引擎。Riak 和Solr提供了一个可靠的全文内容索引解决方案,高可用并易于扩展。此外,Riak搜索2.0版本也支持全部的Solr 客户端查询APIs,这允许(客户能够)集成现有的软件解决方案(即可以是自产的也和可以是商业的)。
负责Yokozuna工程师已经创建一个资源页面,其中包含了谈话记录,Solr 文档链接,以及这种话题的书籍。
安全性
Basho在设计Riak时候采用了一种临界数据的思想。无论是它的数据遭受到影响,用户经验,甚至病人的健康(万一出现NHS情况),Riak都会确保关键数据的可用性。然而,这些临界数据也是非常重要的数据。Riak 2.0对这些数据添加了安全性,使用今天常用的管理权限和插件的安全验证模式。
最初的RFC,描述了安全点,包括相关拉请求,可以在github.com/basho/riak/issues/355查看到。
在Basho中,我们对提供了操作友好的软件,可以在处理分布系统时平滑运行而感到骄傲。在过去,Riak的配置在两个文件里:app.config和vm.args。Riak 2.0变化了配置信息存储的方式和地点。它不再使用Erlang特定的语法,但,提供了一个更加适合所有操作的布局和自动部署的工具。这个布局容易理解,对管理员透明。
对于愿景和具体实现注意事项的更多信息包含在仓库github.com/basho/cuttlefish中。
在Riak 2.0版本之前,键是由两部分组成:它们属于的bucket和在bucket内的独特标记。Bucket像一个命名空间,允许相似的键合并成集合。而且,它们提供了一个配置Riak旧版本处理数据的方法。
在Riak 2.0里,一些新特性(尤其是安全和强一致性)需要与bucket集合交互。为了这个目的,Riak 2.0包含了Bucket类型的概念。而且允许新特性在Bucket名字没有特殊的前缀,Riak开发者和操作者可以定义共享相同性质的bucket集合,仅仅存储每个Bucket类型的信息,而不是单个bucket。
更多关于Bucket类型的信息可以在Github Issuegithub.com/basho/riak/issues/362上找到。这个issue描述了计划的功能、关于实现的讨论和相关的pull请求。
Riak通常既支持应用端结合时间戳这样的解决方案,也支持服务端的基于时钟向量的最后一次写入者获胜的解决方案。在Riak 2.0之前,基于时钟向量的最后一次写入者获胜方案是默认的解决方案。后来,新的集群把解决同级冲突的默认方案交给应用处理。Riak运行这种方式最安全,不过,这需要开发人员自己开发同级冲突的解决方案。
在题目为《理解Riak的可配置行为》的系列博客日志里,Basho上的支持者John Daily非常详细的讨论了最后一次写入者获胜的配置和许多其他选项。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务