-
Notifications
You must be signed in to change notification settings - Fork 852
[3.8] make AQL modification operations async #14525
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This PR makes the AQL modification operations INSERT, UPDATE, REPLACE, REMOVE return futures so they become non-blocking. UPSERT is currently still blocking, but this will be addressed soon. Async operations work for `produceRows` already in single server and cluster mode, but `skipRowsRange` does not yet work in cluster mode. This still needs to be sorted out. After that, UPSERT needs to be made async.
…Modification Blocks
…sync-aql-modification-operations
…fore writing; some refactoring
…sync-aql-modification-operations
Co-authored-by: Michael Hackstein <michael@arangodb.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for taking my review into account.
For my eyes this now looks good 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Also good handling of theoretically impossible code path.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
As to DO_NOT_MERGE: We most probably found a way to resolve the deadlocks with a much less intrusive patch, which is preferable for 3.8. The changes here are still desirable and already merged to devel, but we might get around without merging them into a stable branch. |
Will not be merged to 3.8, as the much simpler bugfix #14695 (respectively #14699) suffices to resolve deadlocks.
Scope & Purpose
This PR makes the AQL modification operations INSERT, UPDATE, REPLACE, REMOVE return futures so they become non-blocking. UPSERT is currently still blocking, but this will be addressed soon.
UPSERT needs to be made async later.
Backports:
Testing & Verification