Я надеюсь, что кто-то может мне помочь.Я настроил простой тест для проверки производительности запросов для базового графика.Я включил код ниже.По сути, я создаю 30000 вершин, а затем создаю 20000 ребер в одной из вершин.
public async Task<bool> runTests(Models.Person person)
{
try
{
var gremlinServer = new GremlinServer(_hostname, _port, enableSsl: true,
username: "/dbs/" + _dataBaseId + "/colls/" + _collectionId,
password: _authKey);
using (var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType))
{
await gremlinClient.SubmitAsync<dynamic>("g.E().drop()");
await gremlinClient.SubmitAsync<dynamic>("g.V().drop()");
var counter = 30000;
while (counter != 0)
{
await gremlinClient.SubmitAsync<dynamic>("g.addV('partition" + counter + "').property('id', 'partition" + counter + "').property('profilePicture', '" + person.ProfilePicture + "').property('name', 'Person " + counter + "').property('partitionKey', 'partition" + counter + "')");
counter--;
}
var counter = 20000;
while (counter != 0)
{
int num = counter + 1;
var personToLink = "partition" + num;
await gremlinClient.SubmitAsync<dynamic>("g.V('partition1').addE('friendsWith').to(g.V('partition" + num + "'))");
counter--;
}
var searchResults = await gremlinClient.SubmitAsync<dynamic>("g.V().hasId('partition1').out('friendsWith').order().by('name', incr).valueMap('name', 'profilePicture').range(0,2)");
return true;
}
}
catch (Exception ex)
{
throw ex;
}
}
При выполнении следующие запросы быстро возвращаются:
g.V().hasId('partition1').out('friendsWith').valueMap('name', 'profilePicture').range(0,2)
Однако,как только я добавляю предложение порядка, запрос занимает намного больше времени.Более минуты, чтобы завершить:
g.V().hasId('partition1').out('friendsWith').order().by('name', incr).valueMap('name', 'profilePicture').range(0,2)
Есть ли способ индексировать график, чтобы ускорить этот тип запроса?
У меня есть еще один вопрос, я установил пропускную способность на5000 RU, однако, когда я запускаю запрос, который выполняется очень быстро, я получаю следующее:
Результат запроса данных в проводнике данных
Что это значение должно представлять (RU?) если так, почему он такой высокий?
Также, когда я пытаюсь выполнить простой запрос:
g.V().hasId('partition1').out('friendsWith').hasId('partition20001')
, я получаю «Частота запросов велика», хотя это так простозапрос.Еще большее беспокойство вызывает то, что когда я увеличиваю пропускную способность до 5000 RU, я получаю результат обратно, но он действительно медленный, занимает около 5-6 секунд, что должно быть действительно простым запросом.