starcode100
ATApache TinkerPop
•Created by starcode100 on 12/1/2023 in #questions
Error: `Failed to authenticate`, when connection pool size is >1 for GremlinServer with ArcadeDB
Hi Friends,
I am exploring and evaluating ArcadeDB.
The DB is setup with GremlinServerPlugin to expose GremlinServer at port 8182.
Using SpringBoot to create client app.
@Bean
Cluster cluster() {
cluster = Cluster.build().port(arcadedbServerPort).addContactPoint(arcadedbServerHost)
.credentials(arcadedbServerUserName, arcadedbServerPassword).create();
return cluster;
}
@Bean
GraphTraversalSource g(Cluster cluster) {
GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster));
logger.debug("Graph Features=>: {}", g.getGraph());
// Using this line to create the conenction pool during server start up and to avoid creation during the first actual request.
logger.debug("Graph Total Vertex=>: {}", g.V().count().toList());
return g;
}
@PreDestroy
public void cleanArcadedbGraphCluster() {
if (cluster != null) {
cluster.close();
}
The GraphTraversalSource object is created once and used across the application.
When tried to load test(using default gremlin driver Cluster settings for connection pool (min 2 , max 8)) starting with 500req/sec, getting below error and around 80% requests failed.
Error: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Failed to authenticate
The only credentials configured is at the ArcadeDB first start up and with these credentials am able to initialize Cluster.
The simple logic : g.V().hasLabel("Category").count() is been run in the request
The only way I could solve this was by increasing the connection pool closer to concurrent requests, but may not be the ideal approach for a throughput for 1 million req/sec(optimistic)
If the connection pool is set to (min 1 , max 1) all requests succeeds with each request latency has the effect of the load but no authentication issue, connection pool > 1 failed to authenticate.
Requesting your insights.6 replies