我正在实现一个带有nodejs的会话表,这会扩展到大量的项目。每个哈希键都是代表用户的uuid。
为了删除过期的会话,我必须扫描表中的过期属性并删除旧会话。我计划在几天内进行一次扫描,除此之外,我真的不需要高读取能力。
我提出了两个解决方案,我想听听他们的一些反馈。
1)UpdateTable仅针对该计划例程的更高容量,并且在扫描完成后,只需将表容量减少到原始值。
2)执行扫描,并在读取x * MB后检索“LastEvaluatedKey”时,创建启动延迟(不消耗所有读取/秒单位),然后使用“ExclusiveStartKey”继续扫描。
答案 0 :(得分:0)
如果您正在进行扫描,则选项1是您最好的。这是保证在扫描过程中不会影响应用程序性能的唯一真正方法。
您唯一需要确定的是,您每天只运行一次此操作 - 我相信您每天只能在2x(最多)的DynamoDB表上降低吞吐量单位。