2010-07-20 62 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