1
0
Fork 0
Commit Graph

325 Commits

Author SHA1 Message Date
Jan Steemann 974b656c1b allow overriding COLLECT method 2015-04-21 14:45:22 +02:00
Jan Steemann 8926e3f2e2 initial commit 2015-04-15 19:04:21 +02:00
Jan Steemann c62c26e088 Merge branch 'devel' of https://github.com/arangodb/arangodb into data-modification 2015-03-23 15:31:41 +01:00
Jan Steemann e3bf1c709c upsert blocks 2015-03-23 15:31:07 +01:00
Frank Celler 4c5d57f1b8 merged Exceptions.h and Exception.h 2015-03-23 14:05:19 +01:00
Max Neunhoeffer 3bd55fa26f Set correct root block for newly instanciated ExecutionEngine. 2015-03-17 15:30:30 -07:00
Jan Steemann 13ddb8b34b fixed some cluster plans 2015-03-17 13:52:09 +01:00
Jan Steemann 6b24da1036 in the middle of refactoring 2015-03-17 09:08:25 +01:00
Jan Steemann 7c5cc16a8a less locking for cluster status checks 2015-02-18 18:14:12 +01:00
Willi Goesgens b17abadd42 Put error messages of simple http client into cluster comm results. 2015-02-04 11:25:12 +01:00
Jan Steemann a327016312 added method for cluster test 2015-01-24 14:07:06 +01:00
Max Neunhoeffer 4634ad366e Take out some more debugging output. 2014-12-23 14:52:07 +01:00
Max Neunhoeffer 05c069f361 Another fix for the distributed locking problem in cluster AQL. 2014-12-23 14:35:19 +01:00
Max Neunhoeffer e50a705d9a Squashed commit of the following: organise locking in distributed AQL
Locking is now done in an extra round after the query is fully
instanciated in the cluster. All participating shards are locked
in alphabetical order of their shard ID (local collection name).
For this to work there is a new action in the RestAqlHandler plus a
mechanism to prevent the usual locking from happening: Each thread has a
thread local static class variable of
  triagens::arango::Transaction::_makeNolockHeaders
which is of type std::unordered_set<std::string>*.
Whenever this is not equal to nullptr and a local collection name is
stored in there, no locking or unlocking takes place. This information
is forwarded by the X-Arango-Nolock HTTP header, whenever an HTTP
request is sent via ClusterComm to a shard.
2014-12-22 14:40:22 +01:00
Jan Steemann 20e7fe7a7a the great rename: array => object, list => array 2014-12-18 21:07:06 +01:00
Max Neunhoeffer 5c6d3d047d Better error handling and cleanup if instanciation runs into error.
This concerns AQL in the cluster.
2014-12-01 18:26:03 +01:00
Jan Steemann a7af7eed31 fix double free issue 2014-11-01 02:20:13 +01:00
Max Neunhoeffer 8f854ec3b2 Fix a leak in cluster instanciation of queries. 2014-10-31 11:50:34 +01:00
Max Neunhoeffer 4503d7a982 Fix a memleak in instanciation. 2014-10-30 14:58:12 +01:00
Max Neunhoeffer 9fcdc1fa94 Start building proper cleanup if instanciation throws in between. 2014-10-29 16:51:59 +01:00
Max Neunhoeffer 534ae76279 Add an explanation of the instanciation procedure. 2014-10-29 13:09:11 +01:00
Max Neunhoeffer da1c2c0109 Further simplify and cleanup instanciation. 2014-10-29 12:41:03 +01:00
Max Neunhoeffer 42eefbe71d Cleanup and comment instanciation. 2014-10-29 12:13:43 +01:00
Max Neunhoeffer 7e6e758a76 Remove unnecessary plans for coordinator pieces. 2014-10-29 11:41:24 +01:00
Max Neunhoeffer cfb26c8b0a Fix instanciation order, for good??? 2014-10-29 10:37:39 +01:00
Max Neunhoeffer 5da86da39d Another step to fix instanciation of plan in cluster. 2014-10-29 00:27:45 +01:00
Max Neunhoeffer 96c749682e Fix order of ExecutionBlock instanciation in cluster. 2014-10-28 23:48:48 +01:00
Jan Steemann 246c6fc840 less parameter passing 2014-10-28 16:50:09 +01:00
Jan Steemann 529bf386d7 fixed some API errors 2014-10-28 11:30:49 +01:00
Willi Goesgens 5ed8816788 Remove Explain of cluster snippets 2014-10-27 16:10:13 +01:00
Max Neunhoeffer 48dc3c5081 Remove an unnecessary TODO. 2014-10-27 13:41:46 +01:00
Jan Steemann 3306ff99fc removed unused variable 2014-10-24 17:29:36 +02:00
Willi Goesgens 91e04e3230 Implement outputting of splitted plans which are to be distributed to the db servers 2014-10-24 17:14:13 +02:00
Jan Steemann 36e0ec5e55 commented out code 2014-10-22 19:05:54 +02:00
Jan Steemann 7f2373204a fixed cloning of coordinator queries 2014-10-22 17:25:59 +02:00
Jan Steemann e2ef21c33a fixed non-working DistributeBlock 2014-10-22 12:07:31 +02:00
Jan Steemann 66bb48f61f removed spam output 2014-10-21 13:45:52 +02:00
James 6e934585f9 adding distribute node 2014-10-21 11:05:11 +01:00
Max Neunhoeffer ba41701bf8 Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel 2014-10-20 17:33:04 +02:00
Max Neunhoeffer a54c4351bd Add a reminder for myself. 2014-10-20 17:32:56 +02:00
Jan Steemann 10c9a54932 start transactions on coordinator 2014-10-20 15:39:55 +02:00
Jan Steemann 6356c47f90 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-10-20 12:32:15 +02:00
Jan Steemann c93c952c05 fixed from/to-handling in cluster 2014-10-20 12:32:08 +02:00
Willi Goesgens 56099b96c9 - More precisely describe which request failed in the cluster communication
- catch exceptions during shutdown - they shouldn't be output since its usually already known.
2014-10-20 12:06:53 +02:00
Max Neunhoeffer 828926d819 Take out debugging output. 2014-10-20 11:29:52 +02:00
Max Neunhoeffer 44f89adc66 Fix instanciation of queries in which a sharded collection is used >=2 times. 2014-10-20 11:21:00 +02:00
Max Neunhoeffer 9744228bf9 Make correct parts on DBserver MAIN and DEPENDENT.
Seems not to work yet because of more fundamental problems.
2014-10-20 10:47:14 +02:00
Max Neunhoeffer cb75b0b18a Sort out transactions in cluster, part I. 2014-10-17 15:25:46 +02:00
Max Neunhoeffer 743d7d127a Snapshot, does not compile, try to sort out transactions in AQL. 2014-10-16 16:41:32 +02:00
Jan Steemann 70c59a61fd removed macro 2014-10-16 16:28:18 +02:00
Willi Goesgens 93ff2652e1 Walker: add possibility to enter Subqueries on the way in
NodeClone: don't clone the subquery reference list, we don't need them.
2014-10-15 14:59:06 +02:00
James 2ec03d57e3 Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel 2014-10-08 10:26:19 +01:00
James 2ed7fb13b2 DistributeBlock getOrSkipSome done as far as possible. 2014-10-08 10:26:04 +01:00
Jan Steemann aef384da1a Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-10-07 12:36:36 +02:00
James e17a43f66e Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel 2014-10-07 11:19:25 +01:00
Jan Steemann 4ff58364f1 fixed cloning of plans 2014-10-07 12:00:37 +02:00
James 4a8ef130f5 DistributeBlock getOrSkipSome method minus the hard part. 2014-10-07 10:33:37 +01:00
Jan Steemann a62d83603e fixed missing register planning 2014-10-06 18:43:50 +02:00
Jan Steemann 0f83d8132f fixed some transaction threading errors 2014-10-06 18:39:01 +02:00
James 95fd279a52 distribution node/block declarations etc. 2014-10-06 12:57:09 +01:00
Jan Steemann f44599644c moved register assignment into constructor 2014-10-02 17:52:45 +02:00
Jan Steemann 573d837561 off-by-one fix 2014-10-02 17:06:12 +02:00
Willi Goesgens b8491932db Command the cluster node not to do optimizations. 2014-10-02 14:45:10 +02:00
Willi Goesgens dc6dba1ef4 Cluster Communication: serialize a global set of the currently available variables. 2014-10-02 13:15:02 +02:00
Willi Goesgens 6f4e5c4fd7 When creating the copy for the clusternodes we also need to copy the properties. 2014-10-02 11:07:31 +02:00
Jan Steemann 7f9da1c397 asserts 2014-10-02 10:34:08 +02:00
Max Neunhoeffer be07d39457 Rename staticAnalysis -> planRegisters. 2014-10-02 00:11:15 +02:00
Willi Goesgens 4b399236f1 Make the Transaction a smart pointer living inside of Query. 2014-10-01 14:30:53 +02:00
Jan Steemann 49237ef55a fixed some cluster internal communication 2014-10-01 14:06:00 +02:00
Max Neunhoeffer 8bffb3daa3 Finish transplantation. 2014-09-30 23:20:51 +02:00
Max Neunhoeffer 5dbcac8efe Start transplantation of _varOverview to ExecutionNodes. 2014-09-30 16:44:01 +02:00
Jan Steemann f50f041bda Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
Conflicts:
	arangod/Aql/ExecutionEngine.cpp
	arangod/Aql/Query.cpp
2014-09-30 15:50:28 +02:00
Jan Steemann c4ce98a442 fixed some bugs in distributed plan instanciation 2014-09-30 15:19:44 +02:00
Willi Goesgens 22f2753d62 Properly generate the new plan with the new query 2014-09-30 14:50:31 +02:00
Willi Goesgens 3f566f6289 Enable node* clone functions to produce deep copies which live on a specified query. 2014-09-30 14:09:12 +02:00
Willi Goesgens 60dd21802b Clone the query, move the memory kept in the AST over to the query so all memory is kept in one location. 2014-09-30 10:18:13 +02:00
Jan Steemann 3a2e13b910 pass queryId to remote servers 2014-09-29 17:35:10 +02:00
Jan Steemann b31987fea7 pass data to RemoteNode 2014-09-29 16:36:52 +02:00
Jan Steemann ec1e6552ca clone plan for DBServers 2014-09-29 15:57:53 +02:00
Jan Steemann 3ac25ad56f fixed some issues with remote queries 2014-09-29 12:14:03 +02:00
Jan Steemann 643ffa104d moved isCoordinator to function of its own 2014-09-29 09:38:15 +02:00
Jan Steemann 188fe0c43c accidently committed local modifications. revert 2014-09-29 09:31:27 +02:00
Jan Steemann 0d075dca3f pass queryRegistry into the AQL functions 2014-09-29 09:30:32 +02:00
Jan Steemann d177bc110c comments 2014-09-29 09:06:06 +02:00
Jan Steemann 9e47f3ca27 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-09-26 20:23:52 +02:00
Jan Steemann c3ce45e0dd added block instanciation for coordinator, v0.0.0 2014-09-26 20:17:42 +02:00
Jan Steemann f462c5f620 add database and collection info to gather nodes 2014-09-26 13:58:02 +02:00
Max Neunhoeffer 31e02e42cb Instanciate expressions for variable bounds.
And various cleanups.
2014-09-11 14:28:38 +02:00
Willi Goesgens dbdae3faa9 Styleguide cleanup: "initialize" 2014-09-09 11:49:44 +02:00
Max Neunhoeffer af340d6dd6 Make sure varUsage is valid before instanciation. 2014-08-28 15:21:05 +02:00
Jan Steemann f932e9277c cloned EnumerateCollectionBlock into IndexRangeBlock 2014-08-22 10:16:32 +02:00
Max Neunhoeffer 8a454de193 Add NoResultsNode to instanciator factory. 2014-08-21 13:43:05 +02:00
Jan Steemann 1442b9ebeb pass ExecutionEngine to ExecutionBlock, added stats for ExecutionEngine 2014-08-21 12:33:13 +02:00
Jan Steemann e4abcdc843 added optimizer rule 2014-08-19 13:59:05 +02:00
Jan Steemann b010518e9e implementation of update/replace (update not yet merging old attributes) 2014-08-18 12:34:27 +02:00
Jan Steemann 9348f12f78 implemented insert node 2014-08-15 18:12:33 +02:00
Jan Steemann dedc2cb035 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-08-14 16:59:51 +02:00
Jan Steemann b19d632b4a RemoveBlock 2014-08-14 16:59:43 +02:00
Max Neunhoeffer fcdf57ff09 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionEngine.cpp
2014-08-14 15:07:10 +02:00
Max Neunhoeffer f248792865 Make WalkerWorker a template class.
Implement findNodesOfType for ExecutionPlans.
2014-08-14 15:04:59 +02:00
Jan Steemann 93cfa9e2e4 count number of documents in collection 2014-08-14 13:53:21 +02:00
Jan Steemann 1ad300cee5 added more node types 2014-08-14 10:23:53 +02:00
James 69ad2e3209 tweaking ExecutionEngine initialisation. 2014-08-13 16:24:31 +02:00
Jan Steemann 8b830974c7 fixed parser errors 2014-08-08 20:12:10 +02:00
Jan Steemann d30914afb2 Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionBlock.h
	arangod/Aql/ExecutionEngine.cpp
2014-08-07 17:25:37 +02:00
Jan Steemann 9734662ee0 begun implementation of AggregateNode, not yet working 2014-08-07 17:02:21 +02:00
Willi Goesgens ba2e7badd8 Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2 2014-08-07 16:57:37 +02:00
Willi Goesgens 69ff2303c9 Implement subquery block 2014-08-07 16:56:35 +02:00
James cb86cef60e first version of EnumerateListBlock for json lists. 2014-08-07 16:45:03 +02:00
James 5ac060e687 adding SortBlock, something not working. 2014-08-06 13:36:50 +02:00
Max Neunhoeffer 96d8dcc054 Major cleanup, not yet working. 2014-08-05 12:29:36 +02:00
Jan Steemann f6384b006d Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/Types.h
2014-08-04 17:31:00 +02:00
Jan Steemann 7fd236aa4f fixed enumeratecollection block 2014-08-04 17:27:51 +02:00
Max Neunhoeffer fabfeae14d Add LimitNode. Implement skip generically. 2014-08-04 16:34:37 +02:00
Max Neunhoeffer 8b640be8ac Add Filter node. 2014-08-04 15:11:51 +02:00
Max Neunhoeffer 316bffe45e Move calculation setup to initialize() after staticAnalysis. 2014-08-01 15:12:12 +02:00
Jan Steemann b6af736c60 smallness 2014-08-01 13:16:07 +02:00
Jan Steemann 69c55d754c renamed "root" to "return" 2014-08-01 12:23:55 +02:00
Max Neunhoeffer aa48d48755 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/Query.cpp
2014-08-01 12:05:37 +02:00
Max Neunhoeffer 5315f35ed3 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionBlock.h
2014-08-01 11:57:27 +02:00
Max Neunhoeffer e7e98262ea Redo instanciator using Walker and in ExecutionEngine. 2014-08-01 11:56:39 +02:00
Jan Steemann 2881409527 renaming 2014-08-01 11:46:31 +02:00
Max Neunhoeffer 5bf0ff1a7c Rename files ExecutionPlan -> ExecutionNode 2014-08-01 11:26:09 +02:00
Jan Steemann 7ca38317b2 execution engine 2014-08-01 11:22:35 +02:00
Jan Steemann d492271b93 added ExecutionEngine 2014-08-01 11:21:08 +02:00