Я работаю с cassandra 3.x и узлом 10.13.0.У меня есть данные 100 000 пользователей в моей рабочей памяти (в карте 'sortedRowMap', как в данном коде).Я обновляю всю запись, повторяя карту (имеющую запись 100 000), которую пользователи используют для каждого.Но это бросает меня BusyConnectionError.Мне интересно, как я мог выбраться из этого.
Ниже приведен реализованный код вышеупомянутого описания.
var cassClient = new cassandra.Client({contactPoints: ['localhost'],pooling: {
coreConnectionsPerHost: {
[distance.local] : 2,
[distance.remote] : 1
},
}, keyspace: 'xyz',
socketOptions: { readTimeout: 65000 }
});
rank = 0;
for (const [msisdn, totalearnings] of sortedRowMap) {
let updateRankQuery = "UPDATE users SET weeklyrank = " + rank + " WHERE
msisdn = " + msisdn;
cassClient.execute(updateRankQuery, function (error, result) {
if(!error){
rank++;
console.log("updateQuery: " + updateRankQuery)
}else{
console.log("ERROR: " + error)
}
})
}
и выдает эту ошибку:
ОШИБКА: NoHostAvailableError: Все хосты попытались выполнить запрос.Первая попытка хоста, 127.0.0.1:9042: BusyConnectionError: Все соединения с хостом 127.0.0.1:9042 заняты, 2048 запросов находятся в процессе на каждом соединении.Смотрите innerErrors.