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).