0

在假期中,我阅读了 Pat Helland 的“超越交易的生活”(是的,假期真是太好了 :)。简而言之,它主张将事务的范围限制在单个实体中,然后使用能够更新实体或取消任务的“活动”组,只要发生会使该任务无效的更改。

(例如,装运订单 A 需要一定数量的项目 1。装运订单和项目作为实体存储并有自己的活动。装运订单 B 在 A 完成之前与最后一个项目 1 一起装运。项目 1 的活动取消装运订单 A .)

我以为我正在打印 Dynamo 纸,所以如果我在这里将两者混为一谈,请原谅我。我见过不少受 Dynamo 和 BigTable 影响的“NoSQL”项目,尤其是它们如何通过键和分区数据来处理实体。我想知道这个 Entity-Message-Activity 模型是否影响了其中的任何一个?

或者,更具体地说,如果我在 HBase、Cassandra、Riak 等中有一个跨越多个实体的操作,我是否需要自己实现一个 Activity(作为应用程序中的更多设计模式) ,还是有某种现有的框架?还是他们完全做了其他事情,使整个问题变得毫无意义?

谢谢!

4

1 回答 1

0

从 Cassandra 的角度来看,我可以在这里添加 2 美分(我没有使用其他可用的 NoSQL 引擎)。Cassandra 主要设计为一种快速读写结构。Twitter 是 Cassandra 的一个很好的用例(请查看 Twitter 克隆Twissandra

假设我正确理解了您的问题:是的,您必须自己实施活动。要了解 Column/SuperColumnFamilies 的建模,我建议阅读这篇很棒的文章WTF is a SuperColumn?

干杯!

于 2010-09-24T04:59:07.017 回答