Играю с последней версией DSE Enterprise. Меня интересуют особенности графика. В настоящее время у меня есть один проект, работающий на Titan, графической базе данных с открытым исходным кодом, которая вдохновила DSE Graph, и я пытаюсь оценить DSE Graph как заменяющую базу данных, поскольку в Titan отсутствуют многие функции администрирования и работы.
Моя проблема в следующем:
У меня странное поведение при попытке выполнить графические запросы в кластере datastax с использованием драйвера nodejs. Запрос работает (я могу добавлять или удалять вершины), но на стороне клиента (драйвер nodejs) я всегда получаю ошибку тайм-аута соединения через 5-7 секунд, например:
{
"statusCode": 200,
"body": {
"info": {
"queriedHost": "xx.xx.xx.xx:9042",
"triedHosts": {
"xx.xx.xx.xx:9042": {
"message": "Connection timeout",
"info": "Cassandra Driver Error"
}
},
"achievedConsistency": 10
},
"length": 1,
"pageState": null
}
}
Когда я смотрю на студию datastax, мои запросы работают. Я вижу только что добавленные вершины ...
Вот код, используемый для вызова графика dse:
'use strict';
const dse = require('dse-driver');
const dseGraph = require('dse-graph');
const client = new dse.Client({
contactPoints: ['xx.xx.xx.xx'] ,
protocolOptions: {port: 9042},
authProvider: new dse.auth.DsePlainTextAuthProvider("xxx","xxx"),
graphOptions: { name: 'test' }
});
module.exports.create = (event, context, callback) => {
let response = {
statusCode: 200
};
client.executeGraph("graph.addVertex(label,'user','email','c@b');").then(function(users) {
response.body=users;
client.shutdown();
callback(null, response);
}).catch(function(err) {
response.statusCode=400;
response.body=err;
client.shutdown();
callback(null, response);
});
};
Может проблема в конфигурации моего кластера?
Вот моя топология:
- One cluster
- 3 datacenters
- 1 центр обработки данных для графа с 2 узлами
- 1 датацентр для поиска, с 1 узлом
- 1 датацентр для аналитики с 1 узлом
Все настройки по умолчанию. Я установил кластер через OpsCenter, и все мои узлы являются экземплярами ec2 (m4.xlarge).
Вы хоть представляете, почему запросы работают, но я получаю это странное сообщение в обратном вызове успеха?
С уважением,
Туфик Зайед