Article DetailsDetailsHelp DetailsWhen updating existing nodes in a database, they are locked so that other write queries cannot access them. Consequently, these queries enter a waiting status, leading to larger execution times and potential Bolt thread exhaustion. This issue can be mitigated using the CALL { ... } IN TRANSACTIONS method. This approach updates data in batches, locking nodes by batch rather than the entire dataset. Example: Create a Large Number of Nodes UNWIND range(0, 100000000) AS value CALL { WITH randomUUID() AS uuid CREATE (a:Big {value: uuid}) } IN TRANSACTIONS OF 10000 ROWS; Update the Nodes Without Batches MATCH (a:Big) SET a.one = 1 RETURN a; Check the Number of Locked Nodes SHOW TRANSACTIONS YIELD currentQueryId, currentQuery, elapsedTime, activeLockCount RETURN * ORDER BY activeLockCount DESC; During execution, you will notice that the number of locked nodes increases linearly. Run the Same Query with IN TRANSACTIONS MATCH (a:Big) CALL { SET a.one = 1 } IN TRANSACTIONS OF 10000 ROWS RETURN a; Check the Locked Nodes Based on Step 3 You will observe that the number of locked nodes remains constant, around 10,000, during execution. By using this method, you reduce node locking for other write queries, thereby decreasing waiting times and overall execution time. InformationTitleHow to Reduce Locking Time During Bulk Update ProcessesArticle Created Date3/18/2026, 11:23 AMURL NameHow-to-Reduce-Locking-Time-During-Bulk-Update-ProcessesLast Modified Date3/19/2026, 8:32 AM