Re: Janusgraph Temporary backend operation

Misha Brukman <mbru...@...>

Hi Dilan,

Looks like you're using the HBase backend, and this is an INFO level exception telling you that when issuing many mutations in parallel ("mutateMany"), some of the mutations succeeded, while some did not. As stated, this is a temporary (retriable) operation, where a backoff strategy typically helps. However, if you are sending a large, steady amount of traffic, there may not be enough time for the cluster to recover from the previous set of operaitons, before the new ones also cause these retriable errors, leading to a cascade of such messages.

What this implies is that your application is doing one or both of the following:
  • putting a significant amount of load on your HBase cluster, so either it should send less traffic (for the same cluster size) or you need to increase the size of your HBase cluster, or
  • hotspotting the HBase cluster, i.e., sending a lot of operations to the same (small) set of vertices
If your load is well-distributed, you need to grow your HBase cluster with the size of the traffic you are sending. If you are hotspotting, then growing the cluster may not help, so you may need to use a read-only cache (if read hotspotting), or change your model to avoid sending many concurrent requests to the same set of vertices.

Hope this helps,

On Tue, Oct 3, 2017 at 12:39 AM, Dilan Ranasinghe <dila...@...> wrote:
Hello ,
I run janusgraph/gremlin server with hbase and connect to it using web socket.

In the gremlin server log i constantly see the following exception.

[gremlin-server-exec-2] INFO  org.janusgraph.diskstorage.util.BackendOperation  - Temporary exception during backend operation [CacheMutation]. Attempting backoff retry.
org.janusgraph.diskstorage.TemporaryBackendException: Temporary failure in storage backend
        at org.janusgraph.diskstorage.hbase.HBaseStoreManager.mutateMany(
        at org.janusgraph.diskstorage.locking.consistentkey.ExpectedValueCheckingStoreManager.mutateMany(
        at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction$
        at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction$
        at org.janusgraph.diskstorage.util.BackendOperation.executeDirect(
        at org.janusgraph.diskstorage.util.BackendOperation.execute(
        at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.persist(
        at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.flushInternal(
        at org.janusgraph.diskstorage.keycolumnvalue.cache.CacheTransaction.mutate(
        at org.janusgraph.diskstorage.keycolumnvalue.cache.KCVSCache.mutateEntries(
        at org.janusgraph.diskstorage.BackendTransaction.mutateEdges(
        at org.janusgraph.graphdb.database.StandardJanusGraph.prepareCommit(
        at org.janusgraph.graphdb.database.StandardJanusGraph.commit(
        at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.commit(
        at org.janusgraph.graphdb.tinkerpop.JanusGraphBlueprintsGraph$GraphTransaction.doCommit(
        at org.apache.tinkerpop.gremlin.structure.util.AbstractTransaction.commit(
        at org.apache.tinkerpop.gremlin.server.GraphManager.lambda$commitAll$2(
        at java.util.concurrent.ConcurrentHashMap$EntrySetView.forEach(
        at org.apache.tinkerpop.gremlin.server.GraphManager.commitAll(
        at org.apache.tinkerpop.gremlin.server.op.AbstractOpProcessor.attemptCommit(
        at org.apache.tinkerpop.gremlin.server.op.AbstractOpProcessor.handleIterator(
        at org.apache.tinkerpop.gremlin.server.op.AbstractEvalOpProcessor.lambda$evalOpInternal$4(
        at org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$2(
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
        at java.util.concurrent.ThreadPoolExecutor$
Caused by:
        at org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl.waitUntilDone(
        at org.apache.hadoop.hbase.client.HTable.batch(
        at org.janusgraph.diskstorage.hbase.HTable1_0.batch(
        at org.janusgraph.diskstorage.hbase.HBaseStoreManager.mutateMany(
        ... 26 more

My application constantly send requests to the server so the load for the server is high.

What can be the reason for this exception?


You received this message because you are subscribed to the Google Groups "JanusGraph users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit
For more options, visit

Join { to automatically receive all group messages.