我正在评估如何使用后端的分布式键/值存储来实现某些东西。我希望在支持对象模型的键/值之上有一个层,该对象模型类似于我从对象关系映射器中获得的模型。
任何人都可以指出其他人这样做的任何例子吗?我主要是在寻找设计理念,但如果我遇到任何我足够喜欢的东西,我可能会直接使用它而不是自己编写。我可能最终会在 Riak 之上在 Perl 中实现我的,但这些决定不是最终的。
最佳答案
我们之前使用 Riak 做类似的事情,使用 Ruby 客户端 Ripple,它公开了一个 AciveModel 接口(interface)。但是,我确实必须反对它(就像其他人一样)。在键/值存储之上使用繁重的 ORM,您确实会失去它的主要优势,即速度。
我们现在正朝着跳过 Ripple 并直接与 Riak 交谈的方向发展,以解决很多速度意识的问题(我们也在转向 Erlang 并使用 PBC 而不是 HTTP 接口(interface),但这是另一个故事:D),我们是这样做的:
您可能还想研究使用 key filtering .我还没有玩过它,但是我看到了看起来相当不错的性能数据。您需要注意 Riak 不要列出存储桶的键,因为由于其实现方式,Riak 会搜索所有键,而不仅仅是该存储桶的键。
Riak 是一头野兽,但是一旦你了解它,你就会爱上它。它使复制变得毫不费力,并且“正常工作”。
关于orm - 相当于分布式键/值存储的 ORM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626091/