Riak 2.0 技术预览版深度剖析

标签: 其他NoSQL数据库 | 发表时间:2013-11-07 08:00 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=3cc4794c339ceeddc915a3c3360ef524

Riak 2.0技术预览版已经开放下载,主版本添加了很多值得期待的特性,它的主要改进包括:

Riak 数据类型. 在最终一致计数器(Riak 1.4中引入)基础之上,Riak 2.0 添加了set和map作为新的分布式数据类型。这些Riak数据类型简化应用开发而不用牺牲Riak的可用性和分区耐受性的特性。

强一致性. 开发者根据数据需求可以选择哪个bucket应该拥有最终一致性(如今的默认Riak配置提供了高可用性)或强一致性。

集成Apache Solr全文搜索.Riak 搜索在Riak 2.0已经被完全重新设计,以充分利用Apache Solr引擎。Riak 2.0中的搜索支持Solr 客户端查询API,能够集成目前主要的软件和商业解决方案。

安全性. Riak 2.0添加了管理员访问权限并且使用插件验证模型。通过客户端API提供身份验证和授权。

简化配置管理. Riak 2.0继续改善了操作简便性,通过改变配置信息的存储方式和位置,以一种易于解析和透明格式存储。

减少多数据中心的副本.Riak 2.0企业版可以在多个数据中心中选择存储一些数据副本,以在存储开销和可用性之间维持更好的平衡。

请注意这只是Riak 2.0的一个技术预览版本。这意味着它已经被广泛测试,虽然我们已经对所有的候选发布版本进行了处理,但是要确保生产硬化仍然有许多工作要做。从现在到最终版本发布,我们将继续进行手动和自动测试,制定详细的使用案例,收集性能统计数据,并更新使用和部署的文档。

Riak 2.0技术预览版:深度剖析

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中。

Bucket类型

在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非常详细的讨论了最后一次写入者获胜的配置和许多其他选项。

更加高效的使用物理内存

Riak节点被设计用来管理一个变化需求的集群,如经历网络、硬件和其他故障。为了达到这个目的,Riak相应的平衡了各个节点的资源。Riak 2.0通过允许局部数据库随着集群负载波动来动态变化缓存大小,使得LevelDB的可用物理内存(RAM)显著的提高。

在过去,为不同的LevelDB缓存独立分配RAM是必须的。现在不再是这样了。在Riak 2.0里,管理键/值或者活跃反熵数据的LevelDB数据库共享一个单独的内存池,管理员可以根据他们部署的需要来给LevelDB分配可用的RAM。详细的实现文档可以在basho/leveldb维基上找到。

Riak Ruby Vagrant项目

如果你有兴趣测试Riak 2.0,有一个包含 Riak Ruby客户端的环境中,Basho工程师 Bryce Kerley把Riak-Ruby-Vagrant资源库都放在了一起。另外,这个环境可以非常容易的与其他的客户端结合并进Riak 2.0特征测试。

 

原文出处:http://basho.com/introducing-riak-2-0/

相关 [riak 技术 深度] 推荐:

Riak 2.0 技术预览版深度剖析

- - searchdatabase
Riak 2.0技术预览版已经开放下载,主版本添加了很多值得期待的特性,它的主要改进包括:. 在最终一致计数器(Riak 1.4中引入)基础之上,Riak 2.0 添加了set和map作为新的分布式数据类型. 这些Riak数据类型简化应用开发而不用牺牲Riak的可用性和分区耐受性的特性. 开发者根据数据需求可以选择哪个bucket应该拥有最终一致性(如今的默认Riak配置提供了高可用性)或强一致性.

Riak对比HBase

- - NoSQLFan
文章来自 Riak官方wiki,是一篇Riak与HBase的对比文章. Riak官方的对比通常都做得很中肯,并不刻意偏向自家产品. 对比的Riak版本是1.1.x,HBase是0.94.x. Riak 与 HBase 都是基于 Apache 2.0 licensed 发布. Riak 的实现是基于 Amazon 的 Dynamo 论文,HBase 是基于 Google 的 BigTable.

Riak与MongoDB的对比

- gOODiDEA - NoSQLFan
本文来自Riak所属的Basho公司的技术WiKi,文章从几个方面对Riak和MongoDB进行了对比,这不是一篇PK文章,NoSQLFan翻译给大家,希望本文能让您对Riak和MongoDB有更多的了解. 来源地址:wiki.basho.com. Riak和MongoDB在使用特性上有下面几个相同点:.

riak 1.0.2安装手记

- - 五四陈科学院-坚信科学,分享技术
以下内容由 [五四陈科学院]提供. git环境(看上去是非必须的):. 与0.1.42相比:. erlang环境要求R14B03及以上. 低版本会出现this emulator supports only up to 149的make错误. 使用leveldb为存储引擎:. 默认引擎还是bitcask,需要修改配置文件app.config.

[转][转]Cassandra、MongoDB、CouchDB、Redis、Riak、HBase比较

- - heiyeluren的blog(黑夜路人的开源世界)
来源: http://blog.nosqlfan.com/html/1845.html. 在NoSQL如日中天的今天,各种NoSQL产品可谓百花齐放,但每一个产品都有自己的特点,有长处也有不适合的场景. 本文对 Cassandra,  Mongodb,  CouchDB,  Redis,  Riak 以及  HBase 进行了多方面的特点分析,希望看完此文的您能够对这些NoSQL产品的特性有所了解.

NOSQL数据库大比拼:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase

- - 博客园_Ruby's Louvre
话说,尽管 SQL 数据库一直是我们IT行业中最有用的工具,然而,它们这样在行业中超过15年以上的“转正”终于就要寿终正寝了. 现在,虽然关系型数据库仍然无所不在,但它越来越不能满足我们的需要了. 但是,各种 "NoSQL" 数据库之间的差异比当年众多关系型数据库之间的差异要大许多. 这就加大了人们在建设自己的应用是选择合适的数据库的难度.

深度学习技术可以给你带来第三只眼

- - 互联网分析沙龙
智能手机已经采用了多种技术,使得日常任务更易于完成. 打开谷歌地图或其他使用手机GPS传感器的导航应用. 但是美国普渡大学一位教授认为,当前的技术只能做到这些. 普渡大学研究员们正在研发一种技术,可以从根本上将智能手机转化成人的第三只眼睛. 这项技术使用一种被称为深度学习(deep learning)的算法系统,使智能手机摄像头立即辨识它看到的物体.

DPI (Deep Packet Inspection) 深度包检测技术 - 简书

- -
近年来,网络新业务层出不穷,有对等网络(Peer-to-Peer,简称 P2P)、VoIP、流媒体、Web TV、音视频聊天、互动在线游戏和虚拟现实等. 这些新业务的普及为运营商吸纳了大量的客户资源,同时也对网络的底层流量模型和上层应用模式产生了很大的冲击,带来带宽管理、内容计费、信息安全、舆论管控等一系列新的问题.

从逻辑回归到深度学习,点击率预测技术面面观

- -
预测物品的点击率在计算广告、推荐系统等不同业务系统中都有一定需求,因此业界在这方面进行了不少研究. 然而在机器学习领域,书籍出版远远落后于业界知识更新,这就要求每个从业者阅读大量资料和论文才能跟上知识更新的步伐,而这又需要耗费大量的时间和精力. 本文是作者对阅读过的大量相关研究文献的小结,作者尝试结合文献与工作实践梳理广告点击率预测、推荐方面相关的技术脉络,希望能对大家有所帮助.