With Graph Data Science it is frequent to submit intense and resource demanding workload that will take time to complete. You will want to check on the progress of a running GDS transaction and how you can terminate a transaction if necessary.
Note that if you are running a job from a python notebook or some other language's driver, terminating the program or notebook cell will not stop the transaction on the server side. You will need to terminate the transaction on the server by following this KB.
1. Execute CALL gds.beta.listProgress() programmatically or using Browser. For this example, I will use Browser. As we can see below, there is a progressBar field and also a Status as well as the elapsedTime, which you can use to see if something is taking longer than you expect and may need terminating.
2. You can then run SHOW TRANSACTIONS to find the transactionId of the long-running transaction. This may be harder to find depending on how busy your instance is, but we are looking at the currentQuery field to identify which transaction to terminate. In this case, the job is the Cypher Projection "neo4j-transaction-216". We can also see "neo4j-transaction-221" which is a subquery of the projection, this shouldn't need terminating, as it should also stop along with its parent transaction.
3. Run TERMINATE TRANSACTION followed by the transactionId surrounded by quotes to end the Transaction
4. You should run SHOW TRANSACTIONS again after terminating a transaction to ensure that the transaction has been terminated and is no longer running. You may see Terminated with reason in the status field, as well as the subquery still running. This is normal and should clear itself fairly quickly.
After the termination has been fully completed you shouldn't see it in the transaction list anymore:
Comments
0 comments
Please sign in to leave a comment.