2011-11-02 99 views
1

我正在考虑使用亚马逊Simpledb作为一个队列来从我的Web服务中取出一些负载。请求大于64k,我需要FIFO,所以我不能使用SQS。我想知道simpledb上的并发限制是什么。我可以让10,000个客户全部在同一时间插入新行吗?亚马逊SimpleDB规模

任何帮助将是巨大的

回答

0

你可能有,因为在写入其“最终一致性”与SimpleDB的问题。这意味着当你写数据的时候,它不保证在查询之后立即返回。我听说你几秒钟后就安全了,但你必须对系统进行编码以考虑到这一点。

随着条件放入的引入,这已被轻微缓解,确保在并发写入时没有丢失更新。最终的一致性模型会使编码计数器和队列等简单事物变得非常复杂。

Here是使用AWS SDK在Java中实现的递增计数器的示例。在nextValue方法注意:

while (!done) { 

客户基本上是重试,直到他们的认沽干净地处理。这不可扩展!

+0

感谢您的信息。我想我会用s3和使用清单的工作人员在服务器上填充msmq来制作其他东西。从我读过的内容来看,并发s3对象写入的数量没有限制。 – Quotient

+0

他们过去为simpledb收取费用并得到(把成本增加10倍),所以这也是一个考虑因素,但这些已经从他们的定价中消失了,所以我想他们已经放弃了它们。每当我开始研究simpledb时,我最终都将s3用作键/值存储,并且智能地选择键或在本地索引。 – Tim

+0

另请注意,s3允许您使用前缀查询存储桶。这可以通过使用前缀来搜索日期:/yyyy/mm/dd/ ... – Tim