starcode100
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