2010-07-20 65 views

回答

1

我听说eBay也在没有交易的情况下运行,也许亚马逊会采用类似的方法。

The eBay Architecture(幻灯片18,23):

绝对没有客户端的交易

我们如何把它关闭?

- DB操作的谨慎排序
- 恢复通过
•异步恢复事件
•和解批 •故障转移到异步流

理由

- 避免死锁
- 避免耦合可用性
- 更新并发性 - 无缝处理拆分易趣

(很抱歉的格式)

对我来说,它看起来像如果没有的ACID事务,你需要检查,恢复或手动补偿的事情。但确切的业务逻辑是已知的,因此可以设计出适当的错误处理或冲突策略。这也使得我在BPEL中进行错误处理的事情是异步的,并且我们编写了补偿处理程序。

2

第一个答案:有困难。

第二个答案:可能带来灾难性后果。

我怀疑亚马逊是否想要消除所有交易。他们可能想要做的是放宽ACID条件以提高可扩展性,并且availability:他们仍然想要原子性和耐久性,但必须重构commutativity and idempotence的操作并添加compensating transactions来处理降低的一致性和隔离。

+0

+1有关ACID新定义的有趣链接 – ewernli 2010-07-20 14:31:15