关于dynamo DB的一些问题

johnleewokao 2014-10-21 03:33:01
Hello大家好,我这边有一个问题:
我通过PHP SDK成功的在DynamoDB上运行了我需要的session,我是使用下面的代码来进行编写的:
$sessionHandler = SessionHandler::factory(array(
'dynamodb_client' => $dynamoDB,
'table_name' => 'sessions',
'locking_strategy' => 'pessimistic',
'automatic_gc' => 0,
'consistent_read' => true,
));
$sessionHandler->register()
但是在我自己的网站做压力测试时我发现,似乎当我超出上述保证的吞吐量同时我又节流的请求时,SDK将放弃执行对话而不是说进行重复性的尝试。那么问题来了。。我自己没法制作出一个自动的使其重复执行的程序,或者说能够纠正这些错误的方法。我这种思路对吗。。。或者说现在最便捷的解决办法应该是什么呢。我是不是应该用API来写这个session这样会看起来更保险一点。。。

谢谢大家了。。
...全文
830 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshiitsuperman 2014-10-22
  • 打赏
  • 举报
回复
AWS的SDK(由会话处理程序使用)自动重试节流请求,但有时它会放弃重试,因为那时配置重试已经用尽,会给你发送一个provisionedthroughputexceededexception错误给你。通常这些重试看起来像延迟的应用,由于SDK在重试之间阻碍了应用(“睡眠”), 你观察到延迟测量客户端在增加吗?(这一般都可以暗示实际上重试正在不断的发生) 你可以通过Dynamic DynamoDB作为自动处理你版面的工具,这样你就可以再你的使用负荷量增加的同时自动增加你的负载量。 你的上载测试同时也存在着一些问题:它是对于所有的请求都使用相同的会话ID吗,还是说他需要请求多重的复合式的对话?要记住的一点是,最好的做法是在你的table上均匀地利用散列键,以便达到利用你的满配置吞吐量的目的。在一个运行正常会话句柄的网站,经常会有立即使用产品的使用者,还有正在发送相对较低配置请求的访问者。形成一个非常均匀的工作量结果。有时候无意中产生的负载测试,形成了在产品生产过程中不同的交通负载。然而,因为你说你在利用你的吞吐量,这听起来并不是你属于你目前规模的问题。但如果你选择去提升你的负载测试,你可能想确保它访问大量不同的会话ID,是尽可能真实的测试。

409

社区成员

发帖
与我相关
我的任务
社区描述
AWS
社区管理员
  • AWS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧