假设我有一个AWS SimpleDB域,其中包含大约300万个项目,每个项目都有一个“foo”属性,其值为某个任意整数(当然它实际上作为字符串存储在SimpleDB中,但让我们忽略它转换为现在的转换)。我想每60秒增加每个项目的foo值,直到它达到最大值(每个项目的最大值不相同,项目的最大值存储为项目中的另一个属性值),然后将foo重置为零:阅读,增量,评估,存储。
鉴于大量项目和60秒的硬限制,这种方法在SimpleDB中是否可行?任何人都有办法让这项工作?
答案 0 :(得分:1)
你可以做到,但这是不可行的。对于单个域,您每秒只能获得100-300 PUT。您每秒可以读取超过1000个项目,因此写入将成为瓶颈。
保守一方可以说每个域每秒有100个商店运营。您需要500个域来打开足够的吞吐量,以便每分钟存储300万个。默认情况下你只能得到100,所以你不得不要求更多。
它也会很贵。具有少量属性的写入大约是每百万美元3美元,读取大约是每百万美元1.30美元。那大概是13美元/分钟。
我唯一可以建议的是,如果有办法将300万件物品合并成少量物品。如果有一种方法可以将50个“项目”放入每个真实项目中,您可以使用10个域名以每小时15.50美元的价格完成。但我仍然不会称之为可行,因为您可以以每小时6.80美元的价格获得10个超大型高CPU EC2服务器实例的集群。