你能在多大程度上实现"最终"一致性和无交易(又名SimpleDB)?

cap*_*tej 6 sql database amazon-web-services amazon-simpledb

我真的想使用SimpleDB,但我担心没有真正的锁定和事务,整个系统都会有致命的缺陷.我理解,对于高读/低写应用程序来说,它是有意义的,因为最终系统变得一致,但是介于两者之间的那个时间呢?似乎在不一致的数据库中的正确查询将以一种非常难以追踪的方式在整个数据库中长期存在破坏.希望我只是一个担心的疣......

cli*_*ers 5

这是一致性和可扩展性以及(在某种程度上)可用性之间的非常经典的战斗。有些数据并不总是需要那么一致。例如,查看 digg.com 以及某个故事的挖掘数量。值很可能在“digg”记录中重复,而不是强制数据库对“user_digg”表进行联接。如果这个数字不完全准确,有什么关系吗?可能不会。那么使用 SimpleDB 之类的东西可能是一个不错的选择。但是,如果您正在编写银行系统,您可能应该首先重视一致性。:)

除非您从第一天起就知道必须处理大规模问题,否则我会坚持使用简单的更传统的系统,例如 RDBMS。如果您在具有合理商业模式的地方工作,那么当流量大幅上涨时,您将有望看到收入大幅上涨。然后你可以用这笔钱来帮助解决扩展问题。扩展是困难的,扩展也很难预测。大多数对您造成伤害的扩展问题都是您从未预料到的。

我宁愿让一个网站起步,花几周时间在流量增加时解决规模问题,然后花太多时间担心规模问题,以至于我们永远无法将其投入生产,因为我们的钱用完了。:)