Я работаю над проектом NodeJS, и я попытался выбрать данные из таблицы, хранящейся в базе данных cassandra, используя пакет cassandra-драйвера, Я запускаю клиентское соединение используя следующую строку:RangeError: индекс вне диапазона при подключении к dassse cassandra в узле js
const cassandra = require('cassandra-driver');
const cassandraClient = new cassandra.Client({ contactPoints: ['192.168.0.253'], keyspace: 'test' });
иногда, когда я называю URL, двигатель fetchs результат успешно, кстати, иногда поднимает эту ошибку:
{ [RangeError: index out of range]
coordinator: '192.168.0.253:9042',
query: 'SELECT * FROM table where hidden=false ALLOW FILTERING' }
эта ошибка обычно поднимают, когда таблица Cassandra недавно обновлен ! Я не знаю, является ли это важным, но есть еще одна служба, подключаемая к базе данных cassandra и вставляющая новые данные, связано ли это с проблемой? и как я могу решить эту ошибку?
Если эти две причины являются причиной этой ошибки, есть ли способ сделать таблицу cassandra не заблокированной (чтение и запись) при активной записи службы в таблицу cassandra, значит, нет проблем с чтением призраков?
ошибка стека:
{ [RangeError: index out of range]
coordinator: '192.168.0.253:9042',
query: 'SELECT * FROM table where hidden=false ALLOW FILTERING' }
RangeError: index out of range
at checkOffset (buffer.js:663:11)
at Buffer.readInt32BE (buffer.js:828:5)
at Function.Long.fromBuffer (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/types/index.js:466:25)
at Encoder.decodeLong (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/encoder.js:133:17)
at Encoder.decodeTimestamp (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/encoder.js:142:26)
at Encoder.decode (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/encoder.js:1202:18)
at Parser.parseRows (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/streams.js:377:36)
at Parser.parseResult (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/streams.js:335:10)
at Parser.parseBody (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/streams.js:185:19)
at Parser._transform (/home/l.alassadi/alarm-socket/node_modules/cassandra-driver/lib/streams.js:137:10)
Не знаете, что могло бы произойти там. Вы можете распечатать стек ошибки (console.log (err.stack)). Также, какую версию драйвера nodejs вы используете, и какова версия вашего кластера C *? –
@ AndyTolbert Я напечатал стек ошибок и отредактировал вопрос. версия для кассандры: [cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Собственный протокол v4] Node js version: v5.9.1 версия cassandra-драйвера: 3.2.0 , но я не понимаю, что вы подразумеваете под c * cluster version? – Luay
Похоже на ошибку драйвера ... Можете ли вы воспроизвести ее в среде разработчиков? Не могли бы вы разместить схему таблицы? – jorgebg