Handle the array push issue #1519
Merged
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.
Previously, when we pushed an item into an array, we would write the doc with the array, then later, write the doc with the array element.
This is problematic for another client, since they can get the updated array, and then attempt to load the array element before it has been written to the server, which means they end up treating it as an empty element.
This PR changes things to batch the write of a document to include any linked documents reachable by the schema query.
There are some problems with this code, but it makes things better.
Summary by cubic
Fixed an issue where pushing an item to an array could cause clients to see empty elements by batching document writes to include all linked documents.