8000 [3.8] make AQL modification operations async by jsteemann · Pull Request #14525 · arangodb/arangodb · GitHub
[go: up one dir, main page]

Skip to content

[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

Closed
wants to merge 35 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
e8a24df
make AQL modification operations async
jsteemann Jul 19, 2021
de80f05
push current state, with all debugging output etc.
jsteemann Jul 21, 2021
85b7e73
Fixed last red test, by removing a subtle difference in execution of …
mchacki Jul 21, 2021
57f759f
clean up a bit
jsteemann Jul 22, 2021
eb2d2c0
Fixed counting of skipped rows
goedderz Jul 22, 2021
9d1fac1
Removed unused member variable
goedderz Jul 22, 2021
9da31dd
fix compilation
jsteemann Jul 22, 2021
3cf4de4
debugging
jsteemann Jul 23, 2021
536e03b
fix attempt, not complete
jsteemann Jul 23, 2021
80a930f
added assertions
jsteemann Jul 23, 2021
8d8beea
Fix some problems, still WIP
goedderz Jul 27, 2021
8ddca41
Some more changes
goedderz Jul 27, 2021
4582aa0
WIP: Some minor changes and preparations for ModificationExecutor ref…
goedderz Aug 4, 2021
ea6e0d9
[WIP] First refactoring step complete; works on single-server only
goedderz Aug 5, 2021
8fe9b2d
[WIP] Second step of refactoring; still only works on single-server
goedderz Aug 5, 2021
495e01b
Minor change
goedderz Aug 5, 2021
b33a22b
Merge branch '3.8' of github.com:arangodb/arangodb into feature-3.8/a…
goedderz Aug 5, 2021
8a1834d
Implemented waiting and state variables, should now work in cluster a…
goedderz Aug 5, 2021
fbe539c
Minor cleanup
goedderz Aug 5, 2021
e2c867f
...emphasis on "should". Bugfixes.
goedderz Aug 5, 2021
c70ba98
Save the execution stack in ExecutionBlockImpl
goedderz Aug 5, 2021
611c517
Added a TODO note
goedderz Aug 5, 2021
3426ccc
Changed the ModificationExecutor to read as much input as possible be…
goedderz Aug 9, 2021
9f20fa5
Merge branch '3.8' of github.com:arangodb/arangodb into feature-3.8/a…
goedderz Aug 9, 2021
ecba60e
Declared operators to make gcc happy
goedderz Aug 10, 2021
6c86555
Update arangod/Aql/AqlItemMatrix.h
goedderz Aug 10, 2021
96a6fc1
Update arangod/Aql/DependencyProxy.cpp
goedderz Aug 10, 2021
0861e6c
Re-added assertions
goedderz Aug 10, 2021
6dd4234
Addressed remaining TODOs noticed during review
goedderz Aug 10, 2021
7f89502
Fix a deadlock
goedderz Aug 11, 2021
326356c
WIP Use thenFinal and assert on exception
goedderz Aug 12, 2021
d246ce9
Handled async exceptions in SimpleModifier
goedderz Aug 12, 2021
e41751a
Added a TODO note
goedderz Aug 12, 2021
e728b22
Added CHANGELOG entry
goedderz Aug 16, 2021
6701007
Merge branch '3.8' into feature-3.8/async-aql-modification-operations
KVS85 Aug 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
8000
Diff view
Prev Previous commit
Next Next commit
clean up a bit
  • Loading branch information
jsteemann committed Jul 22, 2021
commit 57f759f135b91e4ab196575e2dd7b0cc46fa4dec
2 changes: 1 addition & 1 deletion arangod/Aql/ModificationExecutor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ template <typename FetcherType, typename ModifierType>
processed /*call.getSkipCount()*/, upstreamCall};
}

TRI_ASSERT(_processed == 0);
//TRI_ASSERT(ServerState::instance()->isSingleServer() || _processed == 0);
// only produce at most output.numRowsLeft() many results
ExecutorState upstreamState = input.upstreamState();
while (input.hasDataRow() && call.needSkipMore()) {
Expand Down
3 changes: 2 additions & 1 deletion tests/Aql/AqlSharedExecutionBlockImplTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,8 @@ class AqlSharedExecutionBlockImplTest : public ::testing::Test {
auto col = collections.get(collectionName);
TRI_ASSERT(col != nullptr); // failed to add collection
OperationOptions opts{};
ModificationExecutorInfos execInfos{0,
ModificationExecutorInfos execInfos{fakedQuery->rootEngine(),
0,
RegisterPlan::MaxRegisterId,
RegisterPlan::MaxRegisterId,
0,
Expand Down
3 changes: 1 addition & 2 deletions tests/js/server/aql/aql-modify-subqueries.js
Original file line number Diff line number Diff line change
Expand Up @@ -1748,8 +1748,7 @@ function ahuacatlModifySkipSuite () {

testSubqueryFullCount : function () {
const query = "LET sub = NOOPT(FOR doc IN " + cn + " REMOVE doc IN " + cn + " RETURN OLD) COLLECT WITH COUNT INTO l RETURN l";
db._explain(query, null, { optimizer: { rules: ["-all"] } });
let result = AQL_EXECUTE(query, null, { profile: 3, optimizer: { rules: ["-all"] } });
let result = AQL_EXECUTE(query, null, { optimizer: { rules: ["-all"] } });
assertEqual(1, result.json.length);
assertEqual(1, result.json[0]);
},
Expand Down
0