如何降低Azure表存储延迟

时间:2016-11-06 21:06:24

标签: azure azure-table-storage

我正在尝试创建一个基于NodeJS的Web应用程序应用程序,该应用程序使用1000个条目查询Azure表存储。 (我正在使用Azure线索订阅)

实现的逻辑使用partition-key和row-key检索一个唯一的实体,因此它应该非常快,并受到Troy Hunt发布的blog的启发,我预计延迟时间低于7毫秒。

app.get('/pick', function (req, res, next) {
    var parKey = req.param('parKey');
    var rowKey = req.param('rowKey');
    var getRes, startTime, endTime, tableSvc;

    tableSvc = azure.createTableService().withFilter(retryOperations);

    //Timestamp before accessing table storage
    startTime = new Date().getTime();

    tableSvc.retrieveEntity('lookupTable01', parKey, rowKey,
        function (error, result, response) {
            if (!error) {
                //Timestamp after returning the result
                endTime = new Date().getTime();
                getRes = JSON.stringify(result);
                res.send("found in " + (endTime - startTime) + " ms " + getRes);

            } else {
            //Timestamp after returnung an error
                endTime = new Date().getTime();
                getRes = JSON.stringify(error);
                res.send("Error in " + (endTime - startTime) + " ms " + getRes);
            }
})

我在同一个西欧数据中心设置了Web应用程序服务器和存储帐户,以获得最佳效果。然而,最低延迟证明是4​​7毫秒(不包括网络延迟)

我也尝试在美国东部数据中心进行相同的设置,发现了大致相同的结果。

1 个答案:

答案 0 :(得分:1)

我们通常使用Point Queries [特殊的分区键和行键]来查询表格。另一个因素是查询密度。基于分区的query可能非常小。影响Azure表存储性能的因素也很多。如位置,分区命名约定,限制数据返回,表的定义原则等。有关如何提高Azure存储性能的更多详细信息,请参阅document