Adding the ability to configure the neo4j extractor to use implicit transactions. The default behavior of the extractor will remain the same.
Most cases can continue to use the default explicit transactions, but implicit transactions are required for CALL {} IN TRANSACTIONSsubqueries. Using this can help improve performance for queries that use too much memory, for example when a Neo.ClientError.General.TransactionOutOfMemoryError exception is thrown this can help break up the query.
Also adding default_access_mode=neo4j.READ_ACCESS to the session configuration for all queries for better performance.
How Has This Been Tested?
Ran this in an ETL job that set the config to use implicit transactions for one, and another job that used the default explicit transactions with no config passed and confirmed expected behavior.
Documentation
N/A
CheckList
[X] PR title addresses the issue accurately and concisely
Description
Motivation and Context
CALL {} IN TRANSACTIONS
subqueries. Using this can help improve performance for queries that use too much memory, for example when aNeo.ClientError.General.TransactionOutOfMemoryError
exception is thrown this can help break up the query.default_access_mode=neo4j.READ_ACCESS
to the session configuration for all queries for better performance.How Has This Been Tested?
Ran this in an ETL job that set the config to use implicit transactions for one, and another job that used the default explicit transactions with no config passed and confirmed expected behavior.
Documentation
N/A
CheckList