Действие обновления [REINDEX] не может быть вызвано для индекса со статусом [INSTALLED] - PullRequest
0 голосов
/ 21 января 2019

Я слежу за этим блогом: https://developer.ibm.com/dwblog/2018/janusgraph-composite-mixed-indexes-traversals/

код

gremlin> graph.tx().rollback()
==>null
gremlin> mgmt = graph.openManagement()
==>org.janusgraph.graphdb.database.management.ManagementSystem@19472803
gremlin> code = mgmt.getPropertyKey('code')
==>code
gremlin> mgmt.buildIndex('byCodeComposite', Vertex.class).addKey(code).buildCompositeIndex()
==>byCodeComposite
gremlin> mgmt.commit()
==>null
gremlin> mgmt.awaitGraphIndexStatus(graph, 'byCodeComposite').call()
==>GraphIndexStatusReport[success=False, indexName='byCodeComposite', targetStatus=[REGISTERED], notConverged={}, converged={code=REGISTERED}, elapsed=PT0.012S]

ОШИБКА:

But i am getting this: ==>GraphIndexStatusReport[success=false, indexName='byCodeComposite', targetStatus=[REGISTERED], notConverged={code=INSTALLED}, converged={}, elapsed=PT1M0.413S]

Версия : Кассандра: 3.11.3 эластичный поиск: 6.5.4 январь: 0.3.1-hadoop2

Я пытаюсь решить эту проблему, но у меня это не работает.

1 Ответ

0 голосов
/ 26 января 2019

Извините, у вас проблемы с подпиской на блог.

Одна вещь, которую я заметил, что, вероятно, не вызывает эту ошибку, но может вызвать другие проблемы, это то, что версии Cassandra и ES, которые вы используете, не находятся в матрице совместимости для 0.30,1 .

Помимо этого, вот несколько советов по поиску и устранению неисправностей для индексов, которые я написал в прошлом году и которые никогда не удосужились опубликовать.Надеюсь, это поможет решить вашу проблему.Возможно, я найду возможность опубликовать оставшуюся часть статьи в ближайшем будущем.

Устранение неполадок с индексами:

При создании индекса, если есть какие-либо устаревшие сеансы управления или открытые транзакции, которые они могут индексировать, могутзастрять в установленном состоянии.Если вы не знакомы с жизненным циклом индекса JanusGraph, существует вики-страница JanusGraph, которая отображает состояния индекса и жизненный цикл

gremlin> graph.getOpenTransactions()
==>standardjanusgraphtx[0x14ba9376]
==>standardjanusgraphtx[0x477aaf55]

Чтобы откатить все транзакции, вы можете запустить следующую командупока они все не откатятся, или вы не могли бы написать цикл, чтобы запустить его правильное количество раз.Лично я предпочитаю нажимать и вводить несколько раз вместо дополнительной печати.

graph.getOpenTransactions().getAt(0).rollback()

Чтобы увидеть, есть ли какие-либо устаревшие экземпляры управления, вы можете запустить метод getOpenInstances ().Это также задокументировано в разделе Ошибка и восстановление в документации JanusGraph.Если вы видите несколько открытых экземпляров управления, вы можете использовать метод forceCloseInstance, как показано ниже.

gremlin> mgmt = graph.openManagement()
gremlin> mgmt.getOpenInstances()
==>0934f2eb69223-Chriss-MacBook-Pro-2-local2
==>0729845962091-remoteMachine1
gremlin> mgmt.forceCloseInstance('0729845962091-remoteMachine1') 
gremlin> mgmt.commit()
...