首页 > 解决方案 > Cassandra 的 Node.js 驱动程序为不同的 fetchSize 返回不正确的结果集

问题描述

我使用了 Cassandra-driver 节点包(4.6.3)。我正在尝试从表中检索记录,如下所示。该表包含 142 条记录。当我尝试使用 25 的 fetchSize 时,我得到的总记录为 136。当我将 fetchSize 更改为 50 时,我能够按预期将总记录计数为 142。

    let output = [], params = []
let query = `select * from files`
cassandraDriver.client.eachRow(query, params, { prepare : false , fetchSize: 25 }, function(n, rows) {
        output.push(1)
    }, async function(err, result){
        if(result.nextPage) {
             result.nextPage()
        } else if(output.length > 0) {
             console.log('Total size : ', output.length) // I am getting 132 here. But the table contains 142 records.
        }
    })

下面是我的获取大小为 50 并且我按预期获得 142 条记录的情况。

    let output = [], params = []
let query = `select * from files`
cassandraDriver.client.eachRow(query, params, { prepare : false , fetchSize: 50 }, function(n, rows) {
        output.push(1)
    }, async function(err, result){
        if(result.nextPage) {
             result.nextPage()
        } else if(output.length > 0) {
             console.log('Total size : ', output.length) // The output is 142 as expected with a fetch size of 50
        }
    })

我不确定为什么会发生这种情况,我尝试使用 1000 作为获取大小,并且效果也很好。我得到 142 条记录。我在这里做错了什么还是驱动程序中有错误。

标签: node.jscassandracassandra-node-driver

解决方案


推荐阅读