Replies: 7 comments 17 replies
-
You can use the standard Gremlin client for remote operations. |
Beta Was this translation helpful? Give feedback.
-
I am also evaluating RemoteDatabase API right now. It is slightly different topic as I am facing some problems with transactions timing out randomly, or results returned limited to 20 000 instead of being 100 000. It also requires manual steps like creating Vertices and Edges up-front. And this proves my point about simplicity, as when I was using ArcadeGraph, (Orient and Arango offers similar approach for remote connection) I didn't have to worry about number of coding issues. Performance of Traversal API and RemoteDatabase is very similar, and for different operations favours one or another, however I think (sorry if I am mistaken) there is high cost for using HTTP instead of binary connection as my tests results show. |
Beta Was this translation helpful? Give feedback.
-
I assume the issue is with Gremlin: by using the Gremlin client, that poor guy is fetching all the vertices on the client to filter them, while with OrientDB the command is sent to the server and executed there with much lower latency. Have you already tried to use ArcadeDB RemoteDatabase class and do something like this? RemoteDatabase database = new RemoteDatabase("127.0.0.1", 2480, "mydb", "root", "playwithdata");
ResultSet resultSet = database.query("gremlin", "g.V().hasLabel(\"inputstructure\").toList();");
while( resultSet.hasNext() ) {
Result result = resultSet.next();
// DO SOMETHING WITH THE RESULT
} |
Beta Was this translation helpful? Give feedback.
-
I was able to adapt @Test
public void insert() throws Exception {
testEachServer((serverIndex) -> {
final RemoteDatabase database = new RemoteDatabase("127.0.0.1", 2480 + serverIndex, DATABASE_NAME, "root",
BaseGraphServerTest.DEFAULT_PASSWORD_FOR_TESTS);
try (final ArcadeGraph graph = ArcadeGraph.open(database)) {
graph.getDatabase().getSchema().createVertexType("inputstructure");
final long beginTime = System.currentTimeMillis();
for (int i = 0; i < 500_000; i++) {
var v = graph.addVertex(org.apache.tinkerpop.gremlin.structure.T.label, "inputstructure", "json", "{\"name\": \"Elon\"}");
}
System.out.println("TOTAL " + (System.currentTimeMillis() - beginTime));
}
});
} |
Beta Was this translation helpful? Give feedback.
-
I like the idea to provide the same abstraction we had in OrientDB for ArcadeDB Gremlin instance. I'll create an issue from this discussion. |
Beta Was this translation helpful? Give feedback.
-
This issue has been completed: #1329. |
Beta Was this translation helpful? Give feedback.
-
I am missing important feature in ArcadeDB that allows creating ArcadeGraph for remote connection. Right now this supports only databases opened locally. It is important for us and is supported by some other graph vendors. It was also performing faster and was easier than using only traversal remote. On the top, it allows access through server by other clients and view the data.
Beta Was this translation helpful? Give feedback.
All reactions