【问题标题】:dynamodb scan with delay (or limited provision) - nodejsdynamodb 延迟扫描(或有限配置)-nodejs
【发布时间】:2015-01-15 22:48:15
【问题描述】:

所以我刚开始学习dynamodb,遇到了以下问题,

我正在使用connect-dynamodb 使用 dynamodb 实现会话数据库,在开发和学习的同时我了解到扫描是昂贵的,但是 - connect-dynamo(与任何数据库框架一样)使用 reap 间隔来清理过期会话,并每隔 X 间隔扫描一次表。

我找到了一个不错的解决方案 here,但这是使用 java 类 - 并且想知道是否有任何与 nodejs 类似的并行解决方案。

如果没有,很高兴听到任何其他针对不经常调度读取突发的好的解决方案。就像使用“延迟”进行扫描以避免超出读取容量一样。

谢谢。

【问题讨论】:

    标签: node.js amazon-dynamodb


    【解决方案1】:

    我正在使用节点和 dynamoDB 分配,只是查看了模块 connect-dynamo。

    这个模块的主要问题是它使用了一个“HASH”类型的表。 它应该是一个以expires 作为范围键的“RANGE”表。 然后可以进行查询而不是扫描,这样更便宜。

    所以我的建议是不要使用这个模块 ;-)

    或者 fork 并将其更改为 RANGE 表!

    【讨论】:

    • 查询时必须指定哈希。并且哈希是 uuid。
    • 没错,但是模块本身会创建一个发电机哈希表。在它将创建一个范围表时,可以通过“查询”而不是“扫描”来获取过时的会话。所以会便宜很多。所以在我看来这是会话模块“connect-dynamo”的设计错误
    • 如果我明天在火车上找到一些时间并且有可用的互联网连接,我将尝试为模块实现拉取请求;-)
    • 说我想查询一年之前的所有会话。那么你会怎么做呢? query(expires > year && hash==???),范围表的哈希值是多少?对不起,如果我错过了一些基本的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多