简化配置管理在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特征测试。