Update action [REINDEX] cannot be invoked for index with status [INSTALLED]

让人想犯罪 __ 提交于 2020-05-26 08:04:06

问题


I am following this blog: https://developer.ibm.com/dwblog/2018/janusgraph-composite-mixed-indexes-traversals/

code:

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]

ERROR:

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

Versions: Cassandra: 3.11.3 elasticsearch: 6.5.4 janusgraph: 0.3.1-hadoop2

I am trying to solve this but it is not working for me.


回答1:


Sorry you're having trouble following along with the blog.

One thing I'm noticing that probably isn't causing this error, but might cause other issues is that the versions of Cassandra and ES you're using aren't in the compatibility matrix for 0.3.1.

Outside of that here are some troubleshooting tips for indexes I wrote up last year and never got around to publishing. Hopefully it helps solve your issue. Maybe I'll get around to posting the rest of the article in the near future.

Troubleshooting Indexes:

When creating an index if there are any stale management sessions or open transactions they index might get stuck in the INSTALLED state. If you are unfamiliar with the lifecycle of a JanusGraph index there is a JanusGraph wiki pages that diagrams the index states and lifecycle

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

To rollback all the transactions you can ran the command below until they're all rolled back or you could write a loop to run it the correct number of times. I personally prefer pressing up and enter a few times over the extra typing.

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

To see if there are any stale management instances you can run the getOpenInstances() method. This is also documented in the failure and recovery section of the JanusGraph docs. If you see multiple management instances open, you can use the forceCloseInstance method as shown below.

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


来源:https://stackoverflow.com/questions/54286971/update-action-reindex-cannot-be-invoked-for-index-with-status-installed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!