Re: Unconfigured table exceptions in Janusgraph 0.6.0


Mladen Marović
 

Hello,

thanks for the responses. I attempted to add storage.cql.internal.string-configuration = "datastax-java-driver { advanced.metadata.schema.debouncer.window = 1 second }" to my configuration-management-graph.properties, but got the following exception after starting Janusgraph:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.<init>(ServerGremlinExecutor.java:95)
        at org.apache.tinkerpop.gremlin.server.GremlinServer.<init>(GremlinServer.java:124)
        at org.apache.tinkerpop.gremlin.server.GremlinServer.<init>(GremlinServer.java:87)
        at org.janusgraph.graphdb.server.JanusGraphServer.start(JanusGraphServer.java:85)
        at org.janusgraph.graphdb.server.JanusGraphServer.main(JanusGraphServer.java:53)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.<init>(ServerGremlinExecutor.java:84)
        ... 4 more
Caused by: java.lang.IllegalArgumentException: Could not instantiate implementation: org.janusgraph.diskstorage.cql.CQLStoreManager
        at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:79)
        at org.janusgraph.diskstorage.Backend.getImplementationClass(Backend.java:525)
        at org.janusgraph.diskstorage.Backend.getStorageManager(Backend.java:489)
        at org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder.build(GraphDatabaseConfigurationBuilder.java:64)
        at org.janusgraph.core.JanusGraphFactory.lambda$open$0(JanusGraphFactory.java:165)
        at org.janusgraph.graphdb.management.JanusGraphManager.openGraph(JanusGraphManager.java:239)
        at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:165)
        at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:115)
        at org.janusgraph.graphdb.management.JanusGraphManager.lambda$new$0(JanusGraphManager.java:73)
        at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
        at org.janusgraph.graphdb.management.JanusGraphManager.<init>(JanusGraphManager.java:72)
        ... 9 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:73)
        ... 19 more
Caused by: com.typesafe.config.ConfigException$Parse: String: 1: Key '"datastax-java-driver { advanced.metadata.schema.debouncer.window = 1 second }"' may not be followed by token: end of file
        at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:201)
        at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:197)
        at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:461)
        at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parse(ConfigDocumentParser.java:648)
        at com.typesafe.config.impl.ConfigDocumentParser.parse(ConfigDocumentParser.java:14)
        at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:262)
        at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:250)
        at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:180)
        at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:174)
        at com.typesafe.config.impl.Parseable.parse(Parseable.java:301)
        at com.typesafe.config.ConfigFactory.parseString(ConfigFactory.java:1187)
        at com.typesafe.config.ConfigFactory.parseString(ConfigFactory.java:1197)
        at com.datastax.oss.driver.internal.core.config.typesafe.DefaultDriverConfigLoader.lambda$fromString$4(DefaultDriverConfigLoader.java:125)
        at com.datastax.oss.driver.internal.core.config.typesafe.DefaultDriverConfigLoader.<init>(DefaultDriverConfigLoader.java:196)
        at com.datastax.oss.driver.internal.core.config.typesafe.DefaultDriverConfigLoader.fromString(DefaultDriverConfigLoader.java:120)
        at com.datastax.oss.driver.api.core.config.DriverConfigLoader.fromString(DriverConfigLoader.java:196)
        at org.janusgraph.diskstorage.cql.builder.CQLSessionBuilder.build(CQLSessionBuilder.java:74)
        at org.janusgraph.diskstorage.cql.CQLStoreManager.<init>(CQLStoreManager.java:135)
        at org.janusgraph.diskstorage.cql.CQLStoreManager.<init>(CQLStoreManager.java:116)
        ... 24 more

I'm guessing something's wrong with the syntax, but I couldn't get it right. Instead, I set storage.cql.internal.file-configuration=/home/test/janusgraph/conf/datastax_java_driver.conf and created the following file:

datastax-java-driver {
  advanced.metadata {
    schema {
      debouncer {
        window = 1 second
      }
    }
  }
}

This seems to give acceptable results because out of about 20-25 attempts at creating different graphs, only one resulted in the same error as before.

For completeness, i also went to the extreme by setting the same parameter to 5 seconds which resulted in:

...
Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: Query timed out after PT2S
...

so I'm guessing there are some other timeouts to consider as well, but did not look further into that.

Additionally, I also tested advanced.metadata.schema.debouncer.max-events with the following values:

  • 1 - often fails; same behaviour as setting window to 0
  • 3 - occasionally fails
  • 9 - occasionally fails
  • 10 - seems to be about the same as setting window to 1 second

Right now setting window to 1 seconds seems good enough to me, but I'll let you know if this issue persists even with that setting on different environments.

Kind regards,

Mladen Marović

P.S. I managed to get the string configuration to work as well by adding storage.cql.internal.string-configuration = datastax-java-driver { advanced.metadata.schema.debouncer.window = 1 second } (no double quotes).

Join janusgraph-users@lists.lfaidata.foundation to automatically receive all group messages.