问题标签 [riak]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

path - riak集群重启时加载hook模块的解决方案

我已经为 riak 实现了几个钩子,这些钩子当前驻留在不在 riak 路径中的模块中。

每当我希望为特定存储桶安装挂钩时,我首先运行 load_module 以确保 riak 节点可以调用挂钩。问题是,如果其中一个节点出现故障然后又恢复,它仍会尝试调用挂钩,但无法访问该模块。

处理此问题的推荐方法是什么?我认为的一个想法是修改 ERL_LIBS 以便将钩子包含在其路径中,这是正确的方法吗?

0 投票
3 回答
1570 浏览

backup - riak 单桶备份解决方案

对于允许 [通过流式传输或快照] 将单个 riak 存储桶备份到文件的解决方案,您有什么建议?

0 投票
1 回答
19032 浏览

algorithm - 解释用于最终一致性的 Merkle 树

Merkle 树在多个分布式、复制的键/值存储中用作反熵机制:

毫无疑问,反熵机制是一件好事——瞬态故障只是在生产中发生。我只是不确定我是否理解为什么 Merkle是流行的方法。

  • 将完整的 Merkle 树发送到对等点涉及将本地密钥空间以及存储在树的最低级别中的每个键值的散列发送到该对等点。

  • 区分从对等点发送的 Merkle 树需要拥有自己的 Merkle 树。

既然两个对等点必须已经有一个排序的键/值哈希空间,为什么不进行线性合并来检测差异呢?

我只是不相信当您考虑维护成本时,树结构会提供任何形式的节省,并且已经完成了对树叶的线性传递这一事实只是为了序列化网络上的表示

为了解决这个问题,一个稻草人的替代方案可能是让节点交换散列摘要数组,这些散列摘要通过模环位置进行增量更新和存储。

我错过了什么?

0 投票
1 回答
1204 浏览

mongodb - 各种 NoSQL 数据库的快速参考指南

我正在寻找一个地方来总结我经常看到的 NoSQL 数据库的主要属性——特别是 MongoDB、Riak、Redis、Memcached、Membase 和 Cassandra。查询的类型、酸、缩放的架构/属性等。全部在内存中,溢出到磁盘,在磁盘上备份,还是主要只是内存中的索引?

0 投票
3 回答
2111 浏览

scala - What library should I use for accessing Riak from Scala?

For a project I'm using both Scala and Riak (two things I have never worked with before ;) ).

Google searches seem to suggest using Riakki. However, it seems like that particular library hasn't been maintained since 2009 and doesn't even compile on my system. There is a more up-to-date fork on GitHub that does seem to work with more recent Scala versions. But Riakki seems to depend on Jiak, which has been deprecated since february of last year.

Seems like the only reasonable choice would be to use the official Riak Java-library from Scala. That's certainly possible, but I'd like to do things the Scala-way as I'm trying to learn the language. Having to interface with a Java-style API might ruin a bit of the fun. Writing my own wrapper sounds like it will be too much work.

tl;dr: I want to use Riak from Scala. What are other people using?

edit: just found Ryu (can't link to it - annoying limit on amount of hyperlinks per question for new users). Doesn't seem all that mature though.

0 投票
3 回答
422 浏览

mongodb - 同步应用程序

我有一个独立的网络设备。它需要重新设计以作为这些设备的地理分布组的一部分。组中设备之间的同步不必频繁发生,不超过每小时一次。该应用程序是带有 SQLite 的 rails。

主要是,我们希望使在这些设备上收集的某些信息保持同步。由于部署的原因,添加大型数据库集群是不可行的。

我一直在考虑 CouchDB,因为复制和处理复制导致的冲突是它的强项。

您如何看待 CouchDB 作为一种保持分布式网络设备同步的机制?对于替代方法有什么想法或建议吗?

0 投票
2 回答
626 浏览

orm - 相当于分布式键/值存储的 ORM?

我正在评估如何使用后端的分布式键/值存储来实现某些东西。我希望在支持对象模型的键/值之上有一个层,该对象模型类似于我从对象关系映射器中获得的模型。

任何人都可以指出其他人这样做的任何例子吗?我主要是在寻找设计理念,但如果我遇到任何我足够喜欢的东西,我可能会直接使用它而不是自己编写。我可能最终会在 Riak 之上在 Perl 中实现我的,但这些决定不是最终的。

0 投票
3 回答
11519 浏览

performance - Riak 性能 - 出乎意料的结果

在过去的几天里,我玩了一点 riak。初始设置比我想象的要容易。现在我有一个 3 节点集群,所有节点都在同一个虚拟机上运行以进行测试。

我承认,我的虚拟机的硬件设置降级了很多(1 CPU,512 MB RAM),但我仍然对 riak 的缓慢性能感到非常惊讶。

地图缩减

玩了一下 map reduce,我在一个桶里有大约 2000 个对象,每个对象的 json 大小约为 1k - 2k。我使用了这个地图功能:

仅执行返回其结果的 http 请求就花费了 2 秒多的时间,这还不包括我的客户端代码反序列化来自 json 的结果所花费的时间。删除 3 个节点中的 2 个似乎将性能略微提高到略低于 2 秒,但这对我来说似乎仍然很慢。

这是可以预料的吗?对象的字节大小并没有那么大,一个桶中的 2000 个对象也没有那么多。

插入

批量插入大约 60.000 个与上述大小相同的对象需要相当长的时间,实际上并没有真正起作用。

我在 riak 中插入对象的脚本在 40.000 左右死亡,并说它无法再连接到 riak 节点。在 riak 日志中,我发现了一条错误消息,表明该节点内存不足并死亡。

问题

这真的是我第一次尝试 riak,所以我肯定有可能搞砸了。

  • 有什么可以调整的设置吗?
  • 硬件设置是否过于受限?
  • 也许我用于与 riak 交互的 PHP 客户端库是这里的限制因素?
  • 在同一台物理机器上运行所有节点是相当愚蠢的,但如果这是一个问题 -我怎样才能更好地测试 riak 的性能
  • map reduce真的那么慢吗?我在 riak 邮件列表中读到了 map reduce 对性能的影响,但是如果 Map Reduce 很慢,你应该如何对几乎实时所需的数据执行“查询”?我知道riak没有redis快。

如果有更多 riak 经验的人可以帮助我解决其中一些问题,那真的会对我有很大帮助。

0 投票
2 回答
1766 浏览

java - Bitcask 可以用于简单和高性能的文件存储吗?

我正在寻找一种简单的方法来存储和检索数百万个 xml 文件。目前,一切都在文件系统中完成,这存在一些性能问题。

我们的要求是:

  1. 能够以批处理方式存储数百万个 xml 文件。XML 文件可能高达几兆,大部分在 100KB 范围内。
  2. 通过 id 快速随机查找(例如文档 URL)
  3. Java 和 Perl 都可以访问
  4. 适用于最重要的 Linux 发行版和 Windows

我确实看过几个 NoSQL 平台(例如 CouchDB、Riak和其他),虽然这些系统看起来很棒,但它们似乎有点矫枉过正:

  1. 无需聚类
  2. 不需要守护程序(“服务”)
  3. 无需智能搜索功能

在深入研究了 Riak 之后,我发现了 Bitcask(参见简介),这似乎正是我想要的。简介中描述的基础知识非常有趣。但不幸的是,没有办法通过 java 访问 bitcask repo(或者有吗?)

所以我的问题归结为

  • 以下假设是否正确:Bitcask 模型(仅追加写入,内存中密钥管理)是存储/检索数百万个文档的正确方法
  • 有没有可通过 Java 获得的 Bitcask 的可行替代方案?(想到 BerkleyDB……)
  • (对于 riak 专家)与“裸”Bitcask 相比,Riak 的开销实施/管理/资源是否明智?
0 投票
2 回答
674 浏览

mongodb - 关于在 Basho Riak 中进行就地更新的问题

目前我使用 Mongodb 来记录统计信息和投放广告。我将原始印象记录到日志集合中,并且进程确实 findandmodify 以提取日志并使用 upsert 聚合到预先计算的集合中(类似于rainbird 与 twitter 的工作方式)。 http://techcrunch.com/2011/02/04/twitter-rainbird/

我汇总了父母、孩子、孩子的孩子等,这使得查询统计数据变得快速而轻松。

我使用(在 mongo 中)一个由 {Item_id, Hour} 和 upsert 组成的键(很多)

我想知道 Riak 是否有一个强有力的方法来解决同样的问题,以及我将如何实现它。