0
votes

we encounter a new problem with our anrango installation. If we send an complex AQL query like iterating over multiple collections to find specific information and then follow edges etc, the whole database blocks. We see that one of our three CPU cores is at 100% the other two are around 0%-1%. While the AQL query runs, the database does not react to any other request and the web interface is unreachable, too. This means that the whole processing is halted until the one query finished.

There are two problem in this: First: The query takes much to long (graph queries) Second: The database does not react while the one query is in work.

Any ideas/solutions for this problem? What are the biggest databases/graphs you have successfully worked with?

Thx, secana

1
I know of installations with million edges. The query is read-only? Are you using any updating queries / requests in parallel?fceller
Yes, we use request and updating queries in parallel. Is sad a bad idea?secana
It depends. What kind of read queries do you use? Traversals?fceller
@secana Is this still a problem or di find a solution for your problem?13abylon
@13abylon unfortunatly not. Only "solution" I found is reducing the number of request to the database with local caches and batch inserts/request.secana

1 Answers

1
votes

ArangoDB 2.8 contains a deadlock detection. So ArangoDB will now raise an exception if your query blocks on locking.

ArangoDB 2.8 also offers fast graph traversals which improve graph performance a lot.

Another good solution is to separate reading to a second instance with a replication slave.

With RocksDB as storage engine (available since 3.2) there are no collection-level locks anymore, which means most queries can be executed in parallel without blocking: https://docs.arangodb.com/3.4/Manual/Architecture/StorageEngines.html