Change the default DataNucleus flush mode to QUERY
#4169
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The default flush mode is
AUTO
, which flushes changes to the datastore whenever they are made (i.e. when setters are called on a persistent object).This behavior can lead to increased database load, in particular when setters are called without prior check if the value being set is indeed different from the object's current value.
Switching to flush mode
QUERY
will cause DataNucleus to only flush changes upon explicit.flush()
or.commit()
calls, or just before another query is executed. This should significantly reduce the database calls performed by the ORM.Addressed Issue
Relates to #4036
Additional Details
N/A
Checklist
This PR fixes a defect, and I have provided tests to verify that the fix is effectiveThis PR implements an enhancement, and I have provided tests to verify that it works as intendedThis PR introduces changes to the database model, and I have added corresponding update logicThis PR introduces new or alters existing behavior, and I have updated the documentation accordingly