我确实想使用SimpleDB,但是我担心,如果没有真正的锁定和事务处理,整个系统将存在致命的缺陷。我了解,对于高读/低写应用程序来说,这是有道理的,因为最终系统会变得一致,但是那之间的时间呢?似乎在不一致的数据库中进行正确的查询会以很难跟踪的方式使整个数据库中的破坏永久存在。希望我只是一个烦恼的疣...
最佳答案
这是一致性和可伸缩性以及(在某种程度上)可用性之间的非常经典的战斗。某些数据并不一定总是要保持一致。例如,查看digg.com以及针对某个故事的diggs数量。很有可能在“digg”记录中重复值,而不是强制数据库对“user_digg”表进行联接。这个数字不是很准确有关系吗?可能不会。然后,使用类似SimpleDB的方法可能是一个不错的选择。但是,如果您正在编写银行系统,则可能应优先考虑一致性。 :)
除非从第一天起就知道必须处理大量数据,否则我将坚持使用简单的更常规的系统,例如RDBMS。如果您在某个地方以合理的商业模式工作,那么在流量激增的情况下,您将有望看到收入的大幅增长。然后,您可以使用这笔钱来帮助解决扩展问题。缩放很难,并且缩放很难预测。伤害您的大多数扩展问题将是您从未想到的。
我宁愿开工 build 一个站点,花几周时间解决流量增加时的规模问题,然后花太多时间担心规模,以至于我们用不完了,因为我们用光了钱。 :)
关于sql - 使用 "eventual"一致性并且没有事务(又名SimpleDB),您真正能走多远?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/327169/