DSE Graph: обходы, использующие как вторичные, так и поисковые индексы, почему они зависают?

Похоже, что обходы гремлинов, которые используют как вторичные, так и поисковые индексы в одном и том же обходе, зависают. Это почему?

Насколько я понимаю, из документов по индексированию DSE Graph заключается в том, что наиболее подходящим индексом для свойств с низкой мощностью является вторичный индекс. У меня есть модель со свойством «тип», так что количество возможных типов ограничено; поэтому, когда мне был нужен индекс, я использовал вторичный индекс.

Но кажется, что невозможно использовать одновременно вторичный и поисковый индексы в одном и том же обходе, как демонстрирует следующий пример:

gremlin> system.graph('example').create()
==>null
gremlin> :remote config alias g example.g
==>g=example.g
gremlin> schema.vertexLabel('item').create()
==>null
gremlin> schema.propertyKey('type').Text().single().create()
==>null
gremlin> schema.propertyKey('description').Text().single().create()
==>null
gremlin> schema.vertexLabel('item').properties('type').add()
==>null
gremlin> schema.vertexLabel('item').properties('description').add()
==>null
gremlin> schema.vertexLabel('item').index('byType').secondary().by('type').add()
==>null
gremlin> schema.vertexLabel('item').index('search').search().by('description').add()
==>null
gremlin> graph.addVertex(label, 'item', 'type', 'A', 'description', 'first item is orange')
==>v[{~label=item, community_id=96406144, member_id=0}]
gremlin> graph.addVertex(label, 'item', 'type', 'A', 'description', 'second item is blue')
==>v[{~label=item, community_id=2076720128, member_id=0}]
gremlin> graph.addVertex(label, 'item', 'type', 'B', 'description', 'third item is green')
==>v[{~label=item, community_id=51027072, member_id=0}]
gremlin> g.V().hasLabel('item').has('type', 'A')
==>v[{~label=item, community_id=2076720128, member_id=0}]
==>v[{~label=item, community_id=96406144, member_id=0}]
gremlin> g.V().hasLabel('item').has('description', Search.token('blue'))
==>v[{~label=item, community_id=2076720128, member_id=0}]
gremlin> g.V().hasLabel('item').has('type', 'A').has('description', Search.token('blue'))

При последнем обходе сервер регистрирует следующий оператор в /var/log/cassandra/system.log:

WARN  [gremlin-server-worker-1] 2016-09-15 14:26:49,759  GremlinExecutor.java:267 - Timing out script - g.V().hasLabel('item').has('type', 'A').has('description', Search.token('blue')) - in thread [gremlin-server-worker-1]

А консоль полностью зависает и даже на SIGTERM не отвечает.


person Leif Halldor Asgeirsson    schedule 15.09.2016    source источник
comment
Мы занимаемся этим со своей стороны, я отправил вам электронное письмо.   -  person peytoncas    schedule 17.09.2016


Ответы (1)


Это решено с помощью DSE v5.0.3.

person Leif Halldor Asgeirsson    schedule 05.10.2016