JanusGraph Index Management
Shubhram Mohanty <mohanty...@...>
As I am using Janus as the graph database for our product, I have across numerous occasions where index is out of sync with the graph contents.
This in turn results into inconsistencies within the product. In order to handle this I am using the various utilities provided by Janus. Now, in scenarios
where there is no other option than to rebuild index, the first step that I perform here is disableIndex . This works well for smaller schema, but what I
observed recently is that when I perform the same on larger schema, the status of the index doesn't change from Installed to Disabled even after long wait.
As per IndexManagement link (https://docs.janusgraph.org/advanced-topics/index-admin/) , we can go for MapReduce option only for performing following actions :
I am using the following code for disabling index as suggested in documentation :
m = graph.openManagement()
nameIndex = m.getGraphIndex('name')
ManagementSystem.awaitGraphIndexStatus(graph, 'name').timeout(MAX_WAIT_TIME, ava.time.temporal.ChronoUnit.MINUTES).status(SchemaStatus.DISABLED).call()
Even, I tried increasing the MAX_WAIT_TIME here, but the status doesn't change to DISABLED.
This works perfectly fine for smaller schema.
So, is there a way we can distribute this operation? I could not find much information about this in JanusGraph documentation.