1
0
Fork 0
Commit Graph

17663 Commits

Author SHA1 Message Date
Jan 98e9197a3f properly downgrade enterprise features when restoring them into a com… (#9161) 2019-06-07 15:45:14 +02:00
Jan d1a6d23c36
normalize AQL filter conditions, so that attribute accesses are normally placed on the left hand side of the condition (#9217) 2019-06-07 13:36:22 +02:00
Jan Christoph Uhde 3f603f024f remove some containers from common.h (#9223)
* remove some containers from Common.h

* enterprise fixes
2019-06-07 13:27:24 +02:00
Tobias Gödderz b632d58c80 Fix shutdown deadlock regarding comm tasks (#9204)
* Wait for _commTasks in unprepare, that is after Cluster::stop

* Chose better method names

* Revert "Chose better method names"

This reverts commit 91e821348740c655f47207af7e570075f2241895.

* Revert "Wait for _commTasks in unprepare, that is after Cluster::stop"

This reverts commit 6551ae90d74fc046369fdb97cc5872706ce1a184.

* Next try, stop ClusterComm threads earlier
2019-06-07 13:23:33 +02:00
Jan eb22eac2d1
display reason for error in background listener, plus ignore shutdown (#9206) 2019-06-07 10:11:12 +02:00
Jan 6a07476c41
don't include the Logger in header files if it's not necessary (#9216) 2019-06-07 10:08:03 +02:00
Wilfried Goesgens 863257f1d5 fix windows warnings / compile errors (#9215) 2019-06-06 18:08:44 +02:00
Kaveh Vahedipour 8a511934df [devel] fix ttl handling for object assigments (#9207)
* fix ttl handling for object assigments
* completed test handling
* CHANGELOG.
2019-06-06 15:48:40 +02:00
Jan 074397d367
allow "stream" attribute on top level (#9195) 2019-06-05 15:48:58 +02:00
Jan Christoph Uhde 12ec86c2b1 add shardKeyAttribute to pregel start parameters (#9149) 2019-06-05 14:25:47 +02:00
Michael Hackstein 8a4d0bc068
Performance improvement on Sort (#9198)
* Modified AqlItemMatrix to use two uint32 values to identify for in Block instead of one uint64 value encoding the two and calculation. Also now throw an error as soon as we exceed the limit there

* Removed new error code, thanks jsteemann for pointing out.
2019-06-05 12:45:17 +02:00
Jan e0c94e64d7
fix path length checks when copying js files (#9191) 2019-06-05 10:39:52 +02:00
Andrey Abramov 0fb8b348db
bug-fix/internal-issue-#574 (#8991)
* restrict number of buckets to compare

* do not use more sort buckets than requested

* cleanup
2019-06-04 18:55:25 +03:00
Simon 1402395f1c Port fuerte changes from network pool branch (#9125) 2019-06-04 16:35:15 +02:00
Jan 1087c11fa4
Bug fix/pregel micro improvements (#9179) 2019-06-04 09:31:48 +02:00
Andrey Abramov b2a2bd100e
Bug fix/internal issue #590 (#9176)
* disallow creation of analyzer by a full name

* fix tests
2019-06-04 00:28:20 +03:00
Dronplane 1e24c79ca3 Bug fix/internal issue #565 (#9154)
* Merged latest iresearch. Removed creation of build-in analyzers from tests

* Updated tests for new analyzer parameter names

* Merged fix for format from iresearch

* Apply suggestions from code review. Corrected typo in variable name.

Co-Authored-By: Jan <jsteemann@users.noreply.github.com>

* backport changes from IResearch upstream

* fix compilation issues

* backport fix from IResarch upstream

* Fixed analyzer parameter name in tests
2019-06-03 18:20:23 +03:00
Michael Hackstein d135d55d55
Bug fix/collection babies (#9124)
* Bug fix 3.4/collection babies (#9033)

* Prepare API to create multiple collections in a single request to ClusterMethods to improve speedup

* Added counter on how many collections are successfully created

* Allow multi collection creation one level higher

* CollectionMethods now allow batch createion of Collections

* Improved array size assertions

* Now a graph is createad within a single roundtrip in the agency.

* Added new header files

* Insert collections in the AGENCY with TTL and a isBuilding flag, collections with this flag should not be visisible in the coordinator

* Added forgotten C++ file

* Fixed a rare race condition, and the failing IResearch Tests

* readded callback on DONE, otherwise lists are out of sync

* Fixed assertions to let mocked tests pass...

* Fixed community cluster

* Started fixing IResearch analyzer test, catch-tests are failing ;(

* Solved missed merge-conflict

* Added helper functions in AnalyzerFeature-test

* Refactoring AnalyzerTest Section-Auth

* Refactoring AnalyzerTest Section-Emplace-Duplicates

* Refactoring AnalyzerTest Section-Emplace-Error-Cases. Recovery-Test is now red, it seemed to be green because of invalid test case before.

* Refactoring AnalyzerTest, split GET test into multiple parts, still left 'cluster simulation'.

* Attempt to extract Coordinator / DBServer tests a little bit. This commit starts to break all Coordinator tests. However i am convinced that earlier version did NOT test a cluster situation at all, but some hybrid of SingleServer with full local storage that got told to be a Coordinator from now on, but without any Coordinator setup...

* Temporarly disabled some tests in AnalyzerFeature, as discussed with @gnusi.

* Fixed include guard.

* Temporarily deactivated failing tests

* You shall save your files before you commit...

* Fixed test asserting on plan version, which is now higher than before
2019-06-03 17:11:22 +02:00
Jan a4a8bb37c2
improve error message (#9158) 2019-06-03 17:06:51 +02:00
jsteemann 67b751103d fix typo 2019-06-03 13:07:47 +02:00
jsteemann a0676dcf20 add commtask debugging again 2019-06-03 11:10:31 +02:00
Lars Maier 1e94ecf414 Bug fix/supervision fixes4 (#9016)
* Try to fix agency problems with snapshots.

* Abort MoveShards jobs that have the failed server as fromServer.

* Report aborts.

* CHANGELOG.
2019-05-31 17:20:06 +02:00
Dan Larkin-York 44a413a9af Miscellaneous fixes for named indices (#9100) 2019-05-31 17:00:56 +02:00
Tobias Gödderz 6a56130ff8 Reimplement ReturnExecutor with a simple pass-through (#8876) 2019-05-31 15:27:59 +02:00
Tobias Gödderz 79cd45f89c Wait for replication before inserting documents (#9151)
* Wait for replication before inserting documents

Also, increased some timeouts and fixed a log message

* Fixed some log levels and a log message

* Removed repair-distribute-shards-like-spec from greylisted tests
2019-05-31 16:09:20 +03:00
Jan 3364ea6273
refactor index APIs (#9145) 2019-05-31 11:12:39 +02:00
Andrey Abramov e8b38bfa8e
bug-fix/internal-issue-#549 (#9086)
* do not persist legacy analyzers into _analyzers table

* fix arangosearch upgrade in cluster

* get rid of Vasiliy's shit

* address review comments

* ensure link is synchronized after creation in upgrade

* fix compilation error

* minor cleanup

* fix tests

* distribute '_analyzers' collection as '_graphs'

* comment out Vasiliy's shit part 2
2019-05-30 22:00:06 +03:00
Markus Pfeiffer 3323cdcc28 Fix some uses of atomics (#9141) 2019-05-30 15:50:36 +02:00
Frank Celler 1a71cc6898 fix for windows 2019-05-30 12:10:54 +02:00
Jan c3d1d24b27 fix processing of AQL index hints when upgrading (#9138) 2019-05-30 04:28:19 +02:00
Kaveh Vahedipour 773f3c8422 [devel] fix state clientlookuptable (#9066) 2019-05-30 04:24:46 +02:00
Max Neunhöffer 4da1a6afdf
Coordinators do not unregister at every shutdown. (#9134)
* Coordinators do not unregister at every shutdown.

Instead they create a new short name with every start.
This is needed for the transactions.

* Always new short id for coordinators. Never for DBServers!
2019-05-29 22:55:22 +02:00
Jan d67513607d
fixed issue #9106 (#9116) 2019-05-29 18:27:38 +02:00
Markus Pfeiffer 73ac4f194d (K_)SHORTEST PATHS: Display correct directions in explainer/profiler (#9080) 2019-05-29 15:31:09 +02:00
Simon a5a72ef6d4 port Pregel segmented buffers (#9112) 2019-05-28 18:23:20 +02:00
Simon 27112a3486 Bug fix/jobs indexes (#9107) 2019-05-28 09:38:14 +02:00
Wilfried Goesgens b442f3f6ec add std:: (#9115) 2019-05-27 20:47:03 +02:00
Tobias Gödderz 4fbff3280f Added missing initialization; use alignas instead of padding; mark move constructor noexcept (#9111) 2019-05-27 18:50:20 +02:00
Dronplane 3d697d8584 Added filtering analyzers before adding them to view link - duplica… (#9094)
* Added filtering analyzers before adding them to view link   - duplicates are not allowed any more

* Updated test testAddDuplicateAnalyzers - now it tests analyzers with same names but in different databases
2019-05-27 13:20:51 +03:00
Jan c23c50c069
try to fix a race in TTL thread shutdown (#9096) 2019-05-27 11:25:49 +02:00
Jan 208f22c842
only execute requests directly if there is one client on the IoContext (#9090) 2019-05-24 14:29:58 +02:00
Jan 3d79491f36
exclude VST requests from direct execution (#9075) 2019-05-24 09:53:15 +02:00
Jan 59b67cad40
fix various small annoyances (#9079) 2019-05-23 17:36:38 +02:00
Andrey Abramov f5a14414e1 Bug fix/disable upgrade for views again 2 (#9084)
* temporary disable upgrade for views

* temporary comment out test for upgrade
2019-05-23 15:31:26 +02:00
Frank Celler fdbaeec732 Revert "temporary disable upgrade for views (#9083)"
This reverts commit b459a85498.
2019-05-23 15:20:09 +02:00
Andrey Abramov b459a85498 temporary disable upgrade for views (#9083) 2019-05-23 15:18:55 +02:00
Jan 70cccc3c89 fix VERSION files on upgrade and database creation in cluster (#9076) 2019-05-22 22:42:48 +03:00
Dronplane 6b08aa95c4 Added helper method to DataStore in iresearch link for performing full data store reset. Fixed usage of data store reset. (#9071) 2019-05-22 19:18:08 +03:00
Michael Hackstein 1a6719e144
Revert "(K_)SHORTEST PATHS: Display correct directions in explainer/profiler (#9049)" (#9074)
This reverts commit 44d15db812.
2019-05-22 16:46:45 +02:00
Markus Pfeiffer 44d15db812 (K_)SHORTEST PATHS: Display correct directions in explainer/profiler (#9049) 2019-05-22 16:06:46 +02:00
Jan 79258e072a
Bug fix/remove io task (#9056) 2019-05-22 14:34:49 +02:00
jsteemann 0e24c18253 re-add optimization for single servers 2019-05-22 14:29:12 +02:00
jsteemann d0868e76f8 fix "random" scheduler hangs 2019-05-22 14:01:03 +02:00
Tobias Gödderz f1dd0659fa Fixed test usage of MultiDependencySingleRowFetcher (#9060)
* Fixed assertion to not have side effects

* init dependencies in test explicitly
2019-05-22 09:39:50 +02:00
Dronplane e8298aeb00 Update IResearchLink.cpp (#9061)
added proper release for recovery reader on  link  drop.
2019-05-21 22:02:16 +03:00
Jan de717924ac
fix crash (#9057) 2019-05-21 18:19:11 +02:00
Jan 82b1e26686
Bug fix/smart joins (#9050) 2019-05-21 17:49:12 +02:00
Jan 6cea7528fb
fix result of AQL function `MIN` in case the first input element is (#9053)
`null`
2019-05-21 15:43:33 +02:00
Jan a61dd2895e
only offer indexes of type "persistent" in the web UI for the RocksDB (#9046) 2019-05-21 10:11:07 +02:00
Dan Larkin-York d5ecdd143a Convert unit tests to googletest framework (#9034) 2019-05-21 09:17:46 +02:00
Jan 49babbc66b
handle incomplete read errors (#9021) 2019-05-20 14:13:41 +02:00
Lars Maier 4fc2790863 [devel] Direct Exec Scheduler (#9004) 2019-05-20 11:38:57 +02:00
Andrey Abramov 56696e3ea6 Bug fix/internal issue #577 (#9035)
* properly handle shorthand of system analyzer

* don't allow accessing local analyzer from within another database

* ensure local analyzer are not acessible from outside

* fix duplicate ids
2019-05-19 18:00:13 +02:00
Jan Christoph Uhde d194cfc31e bug-fix/iresearch-error-propagation (#9001)
* use result instead of bool

* WIP: use arangodb::Results in more places

* WIP: fix unittests

* fix tests
2019-05-17 19:00:29 +03:00
Tobias Gödderz 3ccaabc2f5 Make ExecutionEngine respect the batch size. (#9012)
Fixes a test failure in api-export-spec-timecritical-noncluster.rb
2019-05-17 16:41:48 +02:00
Markus Pfeiffer c1d6a88da2 Fix a crash in ShortestPathExecutor (#8985)
* Fix a crash in ShortestPathExecutor

* Add a test that checks whether ShortestPathFinder is passed valid inputs
2019-05-17 16:40:22 +02:00
Simon 394c070a4f Do not check isEnabled (#8997) 2019-05-17 16:33:17 +02:00
Simon 93b2e64f37 Port pregel fixes (#9022) 2019-05-17 16:32:58 +02:00
Jan Christoph Uhde 970f732dec add exceptions for tokens function. (#8984)
* Provide users of the TOKENS function with errors.

* remove newlines

* fix compare

* fix as asked for

* improve fix
2019-05-16 22:12:43 +03:00
jsteemann 0f6af587ad remove debug output 2019-05-16 19:49:22 +02:00
jsteemann 4fa87528c6 Merge branch 'devel' of github.com:arangodb/arangodb into bug-fix/debug-commtasks 2019-05-16 19:47:12 +02:00
jsteemann 01dad862a4 move stopping more down 2019-05-16 13:52:46 +02:00
Tobias Gödderz 83732bc369 Improve calculation executor performance (#8851)
* Avoid a copy in CalculationExecutor<CalculationType::Reference>::doEvaluation

* Hack: fixed compilation

* Removed accidentally committed broken assert

* Replaced const_cast hack

* Completed implementation of copyBlockInternalRegister

* Simplified some assert code

* Fixed maintainer compilation
2019-05-16 11:31:21 +02:00
Tobias Gödderz c9fa5fba11 Additional AQL skipSome tests for IndexExecutor (#8938)
* Began work on additional index skipSome tests

* Added more index skip tests
2019-05-16 11:30:24 +02:00
jsteemann 73a7990a31 add debugging for CommTasks creation & destruction 2019-05-16 10:37:12 +02:00
Andrey Abramov b7cfa24518
bug-fix/arangosearch-upgrade (#9010)
* fix upgrade

* fix catch tests

* Update arangod/IResearch/IResearchAnalyzerFeature.cpp

Co-Authored-By: Jan <jsteemann@users.noreply.github.com>

* Update arangod/IResearch/IResearchAnalyzerFeature.cpp

Co-Authored-By: Jan <jsteemann@users.noreply.github.com>
2019-05-16 10:38:39 +03:00
Wilfried Goesgens 1907a7211b Bug fix/cleanup system includes (#8962) 2019-05-15 15:12:59 +02:00
Jan d94f49947c
fix sort order in distributed RETURN DISTINCT (#8935) 2019-05-15 15:02:53 +02:00
Tobias Gödderz 84d3d5dc5b Let only on shard per collection, not per DBServer, be responsible for initialize cursor (and shutdown) (#8946)
* Let only on shard per collection, not per DBServer, be responsible for initialize cursor (and shutdown)

* Reverted assertion

* Changed parameter to const&

* Style correction
2019-05-15 11:21:13 +02:00
Lars Maier b26ed84a81 Retry updating user collection. (#9002) 2019-05-15 10:08:25 +02:00
Tobias Gödderz 82f5978f30 Bugfix: Do not call getSome on remote after DONE (#8978)
* Bugfix: Do not call getSome on remote after DONE

* Added profiler tests for Sorting- and UnsortingGather

* Fixed jslint error
2019-05-15 09:13:44 +02:00
Simon 1923d315e8 New tests for Transaction API (#8996) 2019-05-14 21:40:31 +02:00
Andrey Abramov 8358b978be disable arangosearch analyzers in agency (#8989)
* disable arangosearch analyzers

* do nothing in `stop()` if feature is disabled
2019-05-14 17:37:38 +02:00
Matthew Von-Maszewski fb157b89ac Add protective barrier to sendWithFailover() in case MANAGER is nullptr (#8998) 2019-05-14 17:35:55 +02:00
Jan Christoph Uhde 057ba7130a Feature/cluster comm logging (#8971) 2019-05-14 16:11:58 +02:00
Lars Maier d9ff6647d8 [devel] Do not skip the check if there is only a single agent. (#8943)
* Do not skip the check if there is only a single agent.
* Updated changelog.
2019-05-14 15:42:43 +02:00
Lars Maier 49c568e674 Added reason to job abort method. (#8877) 2019-05-14 15:39:53 +02:00
Wilfried Goesgens e36655dee7 Feature/have collection count type (#8942) 2019-05-14 13:19:09 +02:00
Vasiliy 12bd4c785b issue 555.1.1: issue 555.1.1: try loading previous data store snapshots if checkpoint file unavailable, ehnace error message, address some warnings (#8975) 2019-05-13 18:33:44 +03:00
Andrey Abramov 404bcc8b0c
switch to tiered consolidation by default (#8981)
* switch to tiered consolidation by default

* fix copy/paste error

* fix tests

* fix tests
2019-05-13 18:25:46 +03:00
Markus Pfeiffer f00a8e98a2 Fix ASAN failure (#8974) 2019-05-13 13:56:19 +02:00
Vasiliy bbd5973337 issue 562.1: represent analyzer properties as object when possible (#8929) 2019-05-11 18:39:25 +03:00
Andrey Abramov 4e12fdb30b
ArangoSearch sorted indexes (#8888)
* move IResearchViewSort into separate unit

* ensure sort is propagated to IResearchLink

* update iresearch and extend some tests

* implement insertion of sorted values, store value comparator in link

* add tests for VPackComparer

* minor cleanup

* fix issue with sort definiton propagation

* propagate error message from index factory

* add integration tests for sorted indexes, single server

* initial implementation of IResearchViewMergeExecutor

* move iresearch::VPackComparer to separate translation unit

* store collection in IndexReadBuffer for IResearchViewMergeExecutor

* set primary sort from optimizer rule

* add some tests for sorted view case

* extend IResearchViewNode tests

* simplify primary sort definition

* pretty print order condition covered by arangosearch in query explanation

* fix compilation with g++-8

* address catch test failures

* fix tests

* adjust arangosearch optimizer rule to optimize sort in case of cluster

* make tests for sorted indexes work in cluster too

* fix tests

* extend js tests for sorted indices

* fix keyword in query explainer

* ensure sort-limit rule works with views

* backport ngram analyzer fix from upstream

* address jslint errors

* modify IResearchViewSort to support boolean direction specification format

* add some tests

* add tests

* add skip functionality

* extend tests

* add more catch tests

* inline some methods

* address jslint errors

* extend catch tests to reproduce the failure

* add some tests for check fullcount

* add more tests

* extend tests

* temporarily comment out broken tests

* extend js tests

* address review comments

* address jslint errors

* update iresearch
2019-05-11 17:58:56 +03:00
Vasiliy 9f1340eeeb issue 563.1: include static analyzers in analyzer listing (#8925)
* issue 563.1: include static analyzers in analyzer listing

* address macos test failures
2019-05-11 14:52:48 +03:00
Vasiliy 42b830c7a9 issue 561.1: add pretty-printing to analyzers in JavaScript (#8964) 2019-05-10 21:50:15 +03:00
Jan c00442e31c
fix some issues found by cppcheck (#8959) 2019-05-10 16:31:22 +02:00
Simon d62afaf8ea do not allocate string for _id value temporary (#8961) 2019-05-10 10:18:38 +02:00
Simon 6075fec35e Forward port some changes (#8949) 2019-05-09 19:42:06 +02:00
Jan 162bcd205c
Bug fix/fix velocypack error (#8954) 2019-05-09 19:38:00 +02:00
Jan c1d48c0fef
honor index hints in optimizer rule (#8940) 2019-05-09 18:47:36 +02:00
Wilfried Goesgens c43ec49eae make id a string so all of it can be passed on to V8. (#8933) 2019-05-08 18:52:29 +02:00
jsteemann 3c7c54985b fix compile warnings about unused variables/functions 2019-05-08 16:56:01 +02:00
Jan 9c3fd26682
upgrade velocypack library (#8926) 2019-05-08 16:34:20 +02:00
Jan 30e9fbafe0
Bug fix/cleanup commtasks (#8893) 2019-05-08 16:33:19 +02:00
Markus Pfeiffer 65d090be9d Fix warning about incompatible types in KShortestPathsFinder (#8936) 2019-05-08 15:29:51 +02:00
Heiko 58db1023f3 Feature/aql skip some (#8771)
* testing skipSome implementation, default and passThrough

* added simple implementation for default and passthrough skipsome methods

* added skipRows function to enumerate collection executor

* added tests for the enumerate collection skipRows function

* implemented and tested enumeratecollection skipSome

* skipSome tests

* fixed a test, prepared iresearch view exec for skipping

* rm logs

* gcc bug workaround

* changed to original test code as it has been before

* iresearch skipping, added ires skip test

* added index executor skipRows

* added skip blockfetcher, quick exit index

* test

* const dummy and singlerowfetcher skip

* forgot return value

* input wrong initialized

* trying to remove dynamic cast and solve with a different approach

* cleanup

* const skip

* jslint

* Handle skipSome of subqueries correctly

* Removed unused code

* Removed unused member

* Simplified skip variants and enabled IndexExecutor skipping

* A little cleanup, fixed DependencyProxy::skipSome

* Reverted test change

* Tried to make testLimitBlock3 clearer

* Extended test suite

* Bugfix

* Added stats when skipping and fixed a few other things

* Bugfixes

* Moar bugfixes

* Update arangod/Aql/IResearchViewExecutor.cpp

Co-Authored-By: hkernbach <hkernbach@users.noreply.github.com>

* Update arangod/Aql/IndexExecutor.cpp

Co-Authored-By: hkernbach <hkernbach@users.noreply.github.com>

* Update arangod/Aql/IndexExecutor.cpp

Co-Authored-By: hkernbach <hkernbach@users.noreply.github.com>

* applied requested changes

* Fixed a bug in LimitExecutor::expectedNumberOfRows()

* Fix skipSome in catch test RowFetcherHelper

* Fixed a bug in the tests

* Two bugfixes in LimitExecutor::expectedNumberOfRows

* Avoid passing large batch sizes from skipSome to getSome

* Fixed Windows compile errors

* Fixed a skip bug with WAITING in unsorting gather blocks

* Make aql-skipping find some cluster bugs, like the last commit

* Bugfix and additional asserts

* Fixed skipSome counting in IndexExecutor

* Resolved merge conflicts
2019-05-08 15:02:43 +02:00
Simon 0502a97abb forwardport changes from 3.4 (#8894) 2019-05-08 14:34:25 +02:00
Jan 445d020bac
fix a rare recovery error, add diagnostic output (#8931) 2019-05-08 14:24:26 +02:00
Dan Larkin-York efa180c88f Suppress replication operations from audit output. (#8896) 2019-05-08 10:16:57 +02:00
Tobias Gödderz 20236845e2 Improve document callback performance (#8874)
* Experimental: avoid nested callback

* Still experimental: get rid of more nested callbacks

* Bugfix: count number of documents read correctly

* Rebuild callbacks whenever necessary

* Fixed now dissalowed call.

* Nono rebuild callback refactoring

* Fixed local tests.

* Fixed false compiler warning.

* Use tag dispatching, thanks for the suggestion @mpoeter.
2019-05-07 19:57:24 +02:00
jsteemann c234bf1304 Merge branch 'devel' of github.com:arangodb/arangodb into devel 2019-05-07 15:20:21 +02:00
jsteemann b3819d117d fix some zirkus 2019-05-07 15:19:58 +02:00
Vasiliy 6a5785be40 issue 568.1: restrict analyzer name to characters allowed for collection names (#8923) 2019-05-07 16:10:00 +03:00
Jan Christoph Uhde f3a2eaf6d9 Bug fix/permission tests (#8890) 2019-05-07 15:07:59 +02:00
Heiko 4837c7b864 Bug fix/collect aggregate undefined (#8853)
* allow 3.4 behaviour regarding aggregate collect and undefined variable

* added test to check undefined var

* rm print

* remove duplicate doCopyRow

* wrongly removed due merge

* initialize _allowSourceRowUninitialized always as false as default

* try to fix another case

* added missing parenthesis

* optimized if, also added compiler hint
2019-05-07 15:05:49 +02:00
Markus Pfeiffer d586ff8e95 Add K_SHORTEST_PATHS handling to optimizer and executor (#8895)
There were a few places where K_SHORTEST_PATHS was not handled. This
commit adds them.
2019-05-07 13:54:35 +02:00
Tobias Gödderz 9f09b2fb15 Avoid occasional query id not found errors (#8914) 2019-05-07 13:41:09 +02:00
Markus Pfeiffer c9a35ea2fa Improve k Shortest Paths performance (#8889)
* Only consider spur paths from after the branchpoint
   from the previous path
 * Cache neighbourhoods around vertices
2019-05-07 13:21:52 +02:00
Jan 976dc2b726
Bug fix/issues 2019 05 06 (#8913) 2019-05-07 12:17:16 +02:00
Jan eed6729789
fix an issue, add tests (#8920) 2019-05-07 12:15:43 +02:00
Simon 0a0cb41f04 do not acquire a snapshot for a single read op (#8916) 2019-05-07 09:50:14 +02:00
Jan b06c44472b
less locking for ClusterSelectivityEstimates (#8892) 2019-05-06 13:22:36 +02:00
jsteemann 57717b71b9 disable warning 2019-05-03 14:27:01 +02:00
Jan Christoph Uhde e0b073543b add symlinks for windows (#8846) 2019-05-02 17:32:29 +02:00
Tobias Gödderz fb67de568e Allow inlining of doCopyRow (#8873) 2019-05-02 14:30:26 +02:00
Tobias Gödderz 2d3c286482 Fixed a warning and avoid an accidental copy (#8866) 2019-05-02 10:43:32 +02:00
Simon 3d25e935aa Make sure no managed trx are created during shutdown (#8883) 2019-05-02 09:40:33 +02:00
Jan 0cbdfe9289
Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
Lars Maier c99e8e8973 [devel] ClientID Agency Transaction (#8652)
* Changed clientId to format <serverid>:<uuid>.
* Changed behavior if id is not known.
2019-04-30 10:39:23 +02:00
Jan 1408654d2c
fix a few issues in BackupNoAuthSysTest (#8868) 2019-04-29 19:13:39 +02:00
Jan Christoph Uhde 191343b371 track number of failed requests that want to bump the plan version (#8867) 2019-04-29 17:56:14 +02:00
Jan ca94c88a79
next hack attempt (#8802) 2019-04-29 17:09:05 +02:00
Simon 1145c7c053 Improve estimator apply algo + test (#8871) 2019-04-29 17:08:14 +02:00
Simon b110f5fc61 Stream Transaction HTTP docs (#8833) 2019-04-29 17:04:27 +02:00
Jan 32a443f5d9 fix invalid usage of VPackSlice (#8865) 2019-04-27 17:25:53 -04:00
jsteemann 3f4ea17b32 RocksDB returns certain statistics values as strings. honor that 2019-04-26 19:05:23 +02:00
Simon 6381659a53 fix assertion (#8860) 2019-04-26 18:51:34 +02:00
Jan c054cddfe5
fix race in _batchPingTimer shutdown (#8801) 2019-04-26 18:31:24 +02:00
Jan d3a152bfad
also fsync underlying directory, otherwise data may not reach disk (#8855) 2019-04-26 18:30:02 +02:00
Jan Christoph Uhde 8f4475524b escape internal REs (#8857) 2019-04-26 15:15:53 +02:00
Jan 62339f162d
fix misleading instruction in error message (#8820) 2019-04-26 11:40:12 +02:00
Simon 2f1cfa40e0 Fix tick overflow (#8840) 2019-04-26 11:07:04 +02:00
Simon 729e506876 Remove duplicate code (#8825) 2019-04-26 10:53:35 +02:00
Tobias Gödderz 79461852b5 Create a context for the DocumentProducingFunction callbacks (#8852)
* Create a context for the DocumentProducingFunction callbacks

* Save heap allocation for outer callbacks, too
2019-04-26 09:14:32 +02:00
Michael Hackstein 231fda0d87
Do less copying in HashedCollect (#8850)
* Do less copying in HashedCollect

* Added a more elegant move stunt. Thanks goedderz.

* Fixed use after free

* Update arangod/Aql/HashedCollectExecutor.cpp

Co-Authored-By: mchacki <michael@arangodb.com>
2019-04-25 21:58:37 +02:00
Tobias Gödderz 6dfb9995b4 Feature/aql by line cleanup (#8848)
* Removed useless parameters of buildCallback

* Renamed produceRow to produceRows and adapted a comment

* Renamed BlockFetcher to DependencyProxy

* Applied git-clang-format
2019-04-25 15:51:11 +02:00
Tobias Gödderz 1bf19cdc91 Read docs in EnumerateCollection in batches (#8823)
* Read docs in EnumerateCollection in batches

* Read docs in IndexExecutor in batches

* Fixed stats with batching

* Fixed a bug in RocksDBPrimaryIndexRangeIterator::nextCovering
2019-04-25 11:56:19 +02:00
Jan Christoph Uhde 677a79026c Foxx Security (#8845) 2019-04-25 09:56:29 +02:00
Michael Hackstein efe451e8fc
Reinclude performance optimization of Return in Subquery (#8844)
* Removed template parameter from ReturnExecutor and enforce it to be passthrough

* Revert "Removed template parameter from ReturnExecutor and enforce it to be passthrough"
This was unfortunately going into the wrong direction.

This reverts commit 6a488ee1d97f519c7382ebf783e4217cdb403458.

* Create a new block with exactly 1 Register for a ReturnBlock that is supposed to be used as Subquery result

* Fixed register assertoin for return block optimization

* nished comment where i stop in the midlle of a sent
2019-04-25 09:37:57 +02:00
Vasiliy 934313846a issue 526.12: store analyzer definitions in a separate entry of the serialized link meta (#8832) 2019-04-24 12:15:20 +02:00
Tobias Gödderz a16d5afb33 Added custom initializeCursor implementations for Index and EnumerateCollection (#8828)
* Added custom initializeCursor implementations for Index and EnumerateCollection

* Replace queue with deque to allow clear()

* Replaced queue member calls

* Fixed MSVC++ and C++14 compatibility
2019-04-24 10:41:49 +02:00
Vasiliy 83a26cb003 issue 546.1: do not load analyzers in cluster for non-user requests (#8822) 2019-04-23 16:01:01 +02:00
Vasiliy 80c508c296 issue 526.11.1: limit maximum analyzer properties size (#8830) 2019-04-23 14:14:21 +02:00
Markus Pfeiffer 1f2f5ec983 K_SHORTEST_PATHS queries only support one variable in FOR (#8784)
* K_SHORTEST_PATHS queries only support one variable in FOR

 * catch if the user gives more than one variable in grammar.y
 * also give a correct error message

* Test code that catches too many variables for K_SHORTEST_PATHS
2019-04-23 08:48:16 +02:00
Simon 569198a089 Abort el-cheapo transactions if servers fail (#8799) 2019-04-22 19:31:24 +02:00
Vasiliy 40ebdd0b58 issue 545.1.1: output short analyzer prefixes for user definitions (#8814) 2019-04-21 15:10:28 +02:00
Vasiliy 2de9510051 issue 539.1: backport from iresearch upstream: add support for text normalizing analyzer, make loading shared object ptional in the registry (#8813) 2019-04-20 23:20:15 +03:00
jsteemann 90f17e2ee1 ok, cannot simply make these SmallVectors :sad: 2019-04-20 11:15:06 +02:00
Dan Larkin-York 91ed0d6568 Fix issue with truncate and index selectivity estimates (#8805) 2019-04-20 10:14:15 +02:00
Vasiliy 52aa8a9be4 issue 526.10.1: store 'forPersistence' link definitions in the agency, manually query for analyzer definitions across the cluster (#8797) 2019-04-19 16:24:02 +03:00
Vasiliy cad86bcde0 issue 535.1: ensure recovery success if link recovery starts right at the previous marker (#8796)
* issue 535.1: ensure recovery success if link recovery starts right at the previous marker

* backport: initialize members

* backport: use string_ref instead if string copies
2019-04-19 02:00:49 +03:00
Tobias Gödderz 425b40d9a2 Feature/improve refcount performance (#8783) 2019-04-18 14:32:30 +02:00
Tobias Gödderz 748ba14071 Avoid deleting default move constructor of SortedCollectExecutor (#8778) 2019-04-18 10:48:41 +02:00
Dan Larkin-York 48fb15e94f Auth-related tests for audit logging (#8790) 2019-04-18 10:45:41 +02:00
Jan 2669544944
Bug fix/fix skip inaccessible (#8779) 2019-04-17 15:54:15 +02:00
Jan 6ee9206e46
clear traverser cache in-between (#8772) 2019-04-17 15:27:37 +02:00
Markus Pfeiffer 304e8f861d Fix k Shortest Paths with weights, reactivate cluster tests (#8761)
* Make find in ShortestPathPriorityQueue const

* Fix k Shortest Paths with weights, reactivate cluster tests
2019-04-17 15:10:59 +02:00
Kaveh Vahedipour dbc5e0e2b4 fixing maintenance exception handling local resources (#8758) 2019-04-17 13:34:41 +02:00
Simon 5bb9d2dc17 transaction manager tests (#8759) 2019-04-16 21:26:40 +02:00
Vasiliy 1a22d1360c issue 526.9.1: implement swagger interface, add documentation (#8730)
* issue 526.9.1: implement swagger interface, add documentation

* address review comments

* add ngram

* Formatting

* Move REST description to new Analyzers top chapter in HTTP book

* Missed a DocuBlock

* Add Analyzers chapter to Manual SUMMARY.md

* Move REST API description back to Manual

Headlines were broken

* Add n-gram example
2019-04-16 18:54:30 +03:00
Jan 80b021f915
speed up projections with RocksDBPrimaryIndex if there is no FILTER condition (#8770) 2019-04-16 17:40:30 +02:00
Jan 7c0c01c401
use the primary index when full-scanning a collection (#8548) 2019-04-16 16:50:03 +02:00
Michael Hackstein b3205dada8
USe smart-pointer in Priority Queue, it seems the usages have been correct everywhere (so no leaks) but memory responibility was hard to understand, should now be much simpler. (#8768) 2019-04-16 12:06:42 +02:00
Jan 7fd456a83b
don't reveal information via logs or to JavaScript apps (#8763) 2019-04-15 19:10:03 +02:00
Jan c4d8091f45
remove unused attributeExcludeHandler (#8760) 2019-04-15 18:55:59 +02:00
Jan 1d175f446d
do not use the TTL index for queries which it does not support (#8766) 2019-04-15 18:55:19 +02:00
Dan Larkin-York 777ba1a364 Improved audit logging (#8740) 2019-04-15 14:51:32 +02:00
Tobias Gödderz 62ed576c8e Resolved or removed some TODOs (#8756) 2019-04-15 14:49:12 +02:00
Jan 340e3c79b0
try to force cleanup on shutdown (#8754) 2019-04-15 12:40:09 +02:00
Jan 13b2d40aef
fix compile warnings (#8743) 2019-04-15 11:22:24 +02:00
jsteemann fe58c54b2d oops 2019-04-15 11:15:17 +02:00
Jan 69f7a8a00d
longer WAL file retention for test (#8736) 2019-04-15 10:16:34 +02:00
Jan 449ab1ed8e
Bug fix/cppcheck 13042019 (#8752) 2019-04-15 10:13:56 +02:00
Markus Pfeiffer a14386267a k Shortest Paths (#8715)
* Add k-shortest-paths finder
2019-04-12 21:58:18 +02:00
Tobias Gödderz 08afad7296 Remove AqlItemBlockShell (#8681)
* Added RemoteExecutor skeleton

* Moved RemoteBlock implementations to ExecutionBlockImpl<RemoteExecutor>

* Remove unnecessary include to avoid unused function warnings

* Fixed gcc compile error

* Moved Scatter/Distribute block implementations to their new Executor versions

* Applied clang-format

* Added factory, infos and a skeleton for the unordered view executor

* Removed assert based on wrong assumption

* Added members from IResearchViewBlockBase to IResearchViewExecutor

* Moved more code into the ViewExecutor, hopefully enough to produce a working version now

* Added missing reset code, made produceRow work mostly correct

* Removed superfluous parentheses to get more useful output from Catch

* Ported fix 923b6e81ac723d1fe37f8e7bf1ab81149f3a08ef

Original commit message was:
Fixed a race condition in RemoteBlock which was triggered during
shutdown overtaking getSome.

* Applied review comments

* Inject input row instead of an item block + pos into the expression context, plus fixed some tests

* Adapted test. Search tests are now green.

* Do not ask upstream when already DONE

* Removed `limit` from next()

* Simplified code that could handle producing more than one document

* Minor readability change

* Solved two TODOs noted in the review

* Removed leftover references to DistributeNode members in the DistributeBlock

* Reverted removal of "exhausted"

* WIP: Implemented variant with scorers

* Fixed compile errors of the last commit

* Fixed some asserts and calculations

* Fixed violated assertions

* Moved files from IResearch/ to Aql/

* Replaced recursive call with a loop

* Worked on a few TODOs

* Removed IResearchViewBlock

* Set input registers correctly

* Eliminated dependency to the Node in the Executor

* Don't misuse the volatility variables for initialization

* Extended a TODO note

* Removed obsolete includes

* Removed an obsolete include from the tests

* Added missing include

* Read PKs in batches

* Fixed merge conflict

* Fixed merge conflict

* Restrict prefetching of PKs to the number of rows in the current output block

* Fixed merge

* Fix IResearch ASan errors

* Revert "Restrict prefetching of PKs to the number of rows in the current output block"

This reverts commit e0fd8698a3.

* Revert "Read PKs in batches"

This reverts commit c06c4d7a36.

* Began some small step refactoring to introduce batch-reading correctly

* Extracted method fillBuffer

* Extracted method evaluateScores

* Minor changes

* Read data from iresearch index in batches

* Replaced std::deque<IndexResult> buffer by a new class

* Solved minor TODOs

* Fixed last commit

* Fixed merge conflict

* Removed accidentally re-added view blocks

* Implemented SharedAqlItemBlockPtr

* Replaced all AqlItemBlockShell, shared_ptr<AqlItemBlock>, unique_ptr<AqlItemBlock> with SharedAqlItemBlockPtr

* Removed AqlItemBlockShell

* Bugfixes

* Added missing noexcept (used in returnBlock())

* Added nullptr constructor/operator= and noexcept specs

* Removed references to the shell

* Implemented review comments

* Fixed a compile error clang somehow ignored

* Two bugfixes and additional asserts

* Fixed ASan error

* protected AqlItemBlock destructor, and some cleanup

* added SharedAqlItemBlockPtr include in QueryCursor.h

* Added some asserts

* Fixed merge conflicts

* protected returnBlock in AqlItemBlockManager
2019-04-12 19:52:01 +02:00
Jan 33c9e9e239 optimize away SortNode in case it is covered by an arangosearch view (#8701)
* optimize away SortNode in case it is covered by an arangosearch view

this implementation is a stub with hard-coded attribute names

* extend IResearchViewMeta with sorting order definition

* make 'IResearchViewMeta::Sort' compatible with 'SortCondition' API

* ensure ArangSearch sort is immutable after creation

* address review comments
2019-04-12 19:08:41 +03:00
Heiko 8e308680d8 Bug fix/exec block cleanup (#8710)
* remove unused functions

* more cleanup, virtual functions

* rm old functions

* more cleanup

* more cleanup, rm unused code

* rm of inheritRegisters and cleaerRegisters

* more cleanup, move functions into IMPL and cluster blocks

* used wrong shutdown function

* rm not reachable code

* moved lots of ExecutionBlock stuff to Impl and ClusterBlocks

* trace functions back to executionblock

* rm trace

* rm empty protected

* this getBlock addition, might be useless

* more fixes

* fixes for the distribute executor, hopefully almost done now

* removed obsolete todos

* shutdown var order

* applied requested changes

* re added const

* suppress a warning

* added forgotten test changes

* default destructor, removed not needed function

* refactor name

* Update tests/CMakeLists.txt

Co-Authored-By: hkernbach <hkernbach@users.noreply.github.com>
2019-04-12 16:11:03 +02:00
Markus Pfeiffer af400d0af7 Add hash and equals_to for EdgeDocumentToken (#8709) 2019-04-12 11:42:07 +02:00
Markus Pfeiffer b3224eed1d Add isQueryKilled callback to ShortestPathOptions and use it (#8739)
* Add isQueryKilled callback to ShortestPathOptions

* Use isQueryKilledCallback

in
 * ConstantWeightShortestPathFinder
 * AttributeWeightShortestPathFinder
 * ShortestPathExecutor
2019-04-12 10:39:01 +02:00
Michael Hackstein e5ce10cd60
Fixed compile warning of false-positive return-type (#8737)
* Fixed compile warning of false-positive return-type

* Actually fallback to the non-optimal but correct variant
2019-04-12 08:29:58 +02:00
jsteemann a07d272b1f Merge branch 'devel' of github.com:arangodb/arangodb into devel 2019-04-11 19:13:40 +02:00
jsteemann a15dd41113 initialize member 2019-04-11 19:12:53 +02:00
Michael Hackstein d2287b1b23
Bug fix/collect prefetch (#8611)
* Allow Collect Executors to prefetch rows

* Alphabthical odering of includes

* API change to prefetch the number of rows in use.
2019-04-11 17:33:26 +02:00
jsteemann c5571858ab fixed log uniqueness violation 2019-04-11 16:16:31 +02:00
Jan 4f62dd8dae
added AQL function DECODE_REV (#8606) 2019-04-11 15:59:04 +02:00
Simon 937d743ba6 Bug fix/pregel stuff (#8733) 2019-04-11 15:58:28 +02:00
Max Neunhöffer 80bfb85695
Port agency performance tuning for many shards to devel. (#8647)
* Port agency performance tuning for many shards to devel.
* Add more IDs to LOG_TOPIC calls.
* Even more IDs for LOG_TOPIC.
* Fix a duplicate LOG_TOPIC ID.
* Fix an old merging bug in devel.
* Don't hesitate between phases one and two for small clusters.
2019-04-11 11:14:56 +02:00
Jan e36f7d429e
Bug fix/fix scheduler shutdown task assertion (#8727) 2019-04-10 19:51:45 +02:00
Simon 676012ca3a snafu (#8728) 2019-04-10 19:14:34 +02:00
Jan 771a1a646d
don't analyze all calculations in a query for views if there are no views contained in the query (#8723) 2019-04-10 13:56:40 +02:00
Jan 44bc625317
improve documentation a bit (#8722) 2019-04-10 12:50:10 +02:00
Jan c6d3f8e052
Bug fix/pass on error messages (#8690) 2019-04-10 12:34:25 +02:00
Vasiliy 030637c1c7 issue 526.8: remove remaining deprecated code from analyzer feature, use simplified analyzer names for fields (#8689)
* issue 526.8: remove remaining deprecated code from analyzer feature, use simplified analyzer names for fields

* address test failures

* remove debug logging
2019-04-10 13:10:25 +03:00
Jan 892446ed23
keep g++ from complaining about potential nullptr dereference (#8721) 2019-04-10 11:03:41 +02:00
Simon 4e80e1b351 Simplify recovery code (#8699) 2019-04-09 21:48:04 +02:00
Jan c7500c0c95
finally fix AQL error messages in all contexts, so that they are usable (#8706) 2019-04-09 17:46:23 +02:00
Jan 675b006ebc
this addresses an issue described in ES-260, and is a forward-port of… (#8696) 2019-04-09 11:53:20 +02:00
Jan 6b9b9b0946
Bug fix/fix test muell (#8703) 2019-04-09 11:27:53 +02:00
jsteemann ed1e0336cb fix memleaks 2019-04-09 11:24:03 +02:00
Simon 2b594bdab5 Reduce # of memcpy from storage engine layer (#8685) 2019-04-08 22:43:29 +02:00
Jan 4f7923a971
remove replication clients handling out of vocbase code (#8676) 2019-04-08 19:15:28 +02:00
Jan 5897baa984
added db.<collection>.getResponsibleShard() (#8683) 2019-04-08 16:10:45 +02:00
Jan 5a83e4832a
preserve smart-join attribute in DC2DC as well (#8687) 2019-04-08 08:47:12 +02:00
Vasiliy 0410588723 issue 526.7.1: remove deprecated functions, update tests to set up required analyzers (#8688)
* issue 526.7.1: remove deprecated functions, update tests to set up required analyzers

* address merge issues

* address more merge issues
2019-04-05 18:10:42 +03:00
jsteemann 04fe5f816c make tools complain less 2019-04-04 23:20:15 +02:00
jsteemann 83ed1d85eb use prefix increment to please cppcheck 2019-04-04 23:07:50 +02:00
jsteemann 9d7f893511 suppress "potential null pointer dereference" warning 2019-04-04 23:07:04 +02:00
jsteemann 1b03991eec fix compile warning 2019-04-04 22:53:25 +02:00
Tobias Gödderz d1416bed74 AQL by line: IResearch blocks as executors (#8387)
* Added RemoteExecutor skeleton

* Moved RemoteBlock implementations to ExecutionBlockImpl<RemoteExecutor>

* Remove unnecessary include to avoid unused function warnings

* Fixed gcc compile error

* Moved Scatter/Distribute block implementations to their new Executor versions

* Applied clang-format

* Added factory, infos and a skeleton for the unordered view executor

* Removed assert based on wrong assumption

* Added members from IResearchViewBlockBase to IResearchViewExecutor

* Moved more code into the ViewExecutor, hopefully enough to produce a working version now

* Added missing reset code, made produceRow work mostly correct

* Removed superfluous parentheses to get more useful output from Catch

* Ported fix 923b6e81ac723d1fe37f8e7bf1ab81149f3a08ef

Original commit message was:
Fixed a race condition in RemoteBlock which was triggered during
shutdown overtaking getSome.

* Applied review comments

* Inject input row instead of an item block + pos into the expression context, plus fixed some tests

* Adapted test. Search tests are now green.

* Do not ask upstream when already DONE

* Removed `limit` from next()

* Simplified code that could handle producing more than one document

* Minor readability change

* Solved two TODOs noted in the review

* Removed leftover references to DistributeNode members in the DistributeBlock

* Reverted removal of "exhausted"

* WIP: Implemented variant with scorers

* Fixed compile errors of the last commit

* Fixed some asserts and calculations

* Fixed violated assertions

* Moved files from IResearch/ to Aql/

* Replaced recursive call with a loop

* Worked on a few TODOs

* Removed IResearchViewBlock

* Set input registers correctly

* Eliminated dependency to the Node in the Executor

* Don't misuse the volatility variables for initialization

* Extended a TODO note

* Removed obsolete includes

* Removed an obsolete include from the tests

* Added missing include

* Read PKs in batches

* Fixed merge conflict

* Fixed merge conflict

* Restrict prefetching of PKs to the number of rows in the current output block

* Fixed merge

* Fix IResearch ASan errors

* Revert "Restrict prefetching of PKs to the number of rows in the current output block"

This reverts commit e0fd8698a3.

* Revert "Read PKs in batches"

This reverts commit c06c4d7a36.

* Began some small step refactoring to introduce batch-reading correctly

* Extracted method fillBuffer

* Extracted method evaluateScores

* Minor changes

* Read data from iresearch index in batches

* Replaced std::deque<IndexResult> buffer by a new class

* Solved minor TODOs

* Fixed last commit

* Fixed merge conflict

* Removed accidentally re-added view blocks

* Implemented review comments
2019-04-04 23:40:10 +03:00
Dan Larkin-York 8f49fde98f Fix RocksDB recovery ticks (#8682) 2019-04-04 20:38:44 +02:00
Dan Larkin-York b029f67e68 Fix replication index conflicts. (#8659) 2019-04-04 16:41:06 +02:00
Heiko 066ed742af Bug fix/aql line cleanup (#8598) 2019-04-04 15:57:41 +02:00
Lars Maier 06526b0a32 Feature devel/allowed paths jwt (#8678) 2019-04-04 13:55:02 +02:00
jsteemann 2b3e18418a added static variables for debugging 2019-04-04 10:27:05 +02:00
Jan 1160961af8
added debugging for replication-fuzz fails (#8674) 2019-04-04 10:20:49 +02:00
Jan 5a19a0320b
remove/fix parameters in crud methods (#8675) 2019-04-03 19:55:15 +02:00
Jan f16b75440c
make ownership a bit more transparent, API-wise (#8653) 2019-04-03 18:47:04 +02:00
Jan d1d1fe555b
Bug fix/better error message in case something goes wrong http wise (#8670) 2019-04-03 18:44:10 +02:00
jsteemann 557637fa46 turn down log level for unimportant message 2019-04-03 16:08:40 +02:00
Jan 0764e045fe
optimize lookups by shard key for smart vertex collections (#8641) 2019-04-03 15:15:46 +02:00
Simon 7cd84a785a Remove Obsolete code (#8657) 2019-04-03 13:40:44 +02:00
Jan 744845c9bb
fix small issues (#8646) 2019-04-03 11:06:05 +02:00
Jan ec6a52fb0e
fix smart join optimization when another optimizer rule (reduce-extraction-to-projection) turned full scans into index accesses (#8660) 2019-04-03 10:42:21 +02:00
Vasiliy f4919dc173 issue 526.6: implement REST and V8 handlers for the iresearch analyzer feature (#8626)
* issue 526.6: implement REST and V8 handlers for the iresearch analyzer feature

* address typo

* remove excess comments

* temporarily comment out tests failing on MacOS

* temporarily comment out more MacOS-only test failures
2019-04-02 19:23:28 +03:00
Jan 4af7fa8f46
count HTTP requests from traversals (#8645) 2019-04-02 18:00:11 +02:00
Jan 616ea94f24
Bug fix/cleanup 31032019 (#8632) 2019-04-01 17:14:11 +02:00
Max Neunhöffer 02281d3be4
Handle InitDone correctly. (#8552)
* precondition plan / version in compaction / store TTL removal independent of local _ttl set
* Agency init loops break when shutting down.
* assertion failures in store on restarting following agents
* Minor porting fixes from 3.4
2019-04-01 17:01:05 +02:00
Jan 24bcc7cc9f
create _frontend collection lazily (#8631) 2019-04-01 10:36:14 +02:00
Jan b6df220821
cleanup replication contexts (#8630) 2019-04-01 09:35:08 +02:00
jsteemann ef7e6ec85c initialize variable 2019-03-29 23:43:45 +01:00
Jan 7bf23bf238
add shutdown protection for PregelFeature (#8628) 2019-03-29 19:36:10 +01:00
Tobias Gödderz e42a097d54 Calculation executor v8 performance (#8511) 2019-03-29 18:24:59 +01:00
Jan 531b55f225
introduce option `--log.time-format` (#8604) 2019-03-29 17:15:33 +01:00
Tobias Gödderz 1ac2c314de Fixed several ASan errors in the catch tests (#8624) 2019-03-29 16:00:53 +01:00
Jan 9ab9cc7857
disambiguate internal exceptions (#8623) 2019-03-29 15:59:37 +01:00
Vasiliy 3a3c360765 issue 526.5: add analyzer retrieval functionality (#8592) 2019-03-29 13:23:36 +01:00
Heiko 7a44359bb0 Bug fix/gharial rm vertex smart fix (#8622) 2019-03-29 11:11:01 +01:00
Jan bccd2f3d58 acquire mutex when serializing conductor state (#8620) 2019-03-29 09:23:34 +01:00
Dan Larkin-York ffc05c05c0 Fix handling of index name conflicts during replication. (#8571) 2019-03-28 18:53:43 +01:00
KVS85 2d5bf58c94 Remove USE_IRESEARCH definition and usage (#8613) 2019-03-28 17:23:51 +01:00
Jan a5e80fa7ed
remove redundant parameter from update API (#8607) 2019-03-28 12:50:20 +01:00
Jan 0106da4ba3
spring cleaning (#8605) 2019-03-28 10:36:47 +01:00
Jan 14720b85be
add AQL functions CRC32 and FNV64 (#8600) 2019-03-28 03:06:33 +01:00
Michael Hackstein a12a28b094
Bug fix/fixes asan uninitialized by line (#8588)
* Fixed maybe-uninitialized warnings by removing unnecessary boost:optionals

* Fixed use after free

* Update arangod/Aql/SingleRemoteModificationExecutor.cpp

* Fixed another autocast number=>bool thanks c !

* Fixed wrong usage of almost identically named variables
2019-03-27 20:54:36 +01:00
Andrey Abramov 930b09cd93
[3.4] bug-fix/issue-#8294 (#8430) (#8585)
* [3.4] bug-fix/issue-#8294 (#8430)

* fix invalid optimizations for multi-valued attributes

* fix broken optimizations for multivalued attributes

* adjust tests

* add `IN_RANGE` function

* add tests

* add some shallow integration tests

* fix optimization for IN operator

# Conflicts:
#	arangod/IResearch/IResearchFeature.cpp
#	arangod/IResearch/IResearchViewOptimizerRules.cpp
#	tests/IResearch/IResearchFilterBoolean-test.cpp

* fix compilation errors

* fix another compilation issue

* address compilation errors

* fix tests
2019-03-27 18:33:16 +03:00
Simon 417ee266d4 Fuse transaction begin request for non baby operations (#8566) 2019-03-27 11:31:39 +01:00
Jan d6d3e3daa4
initialize some member variables, added TODOs (#8545) 2019-03-26 12:57:32 +01:00
Vasiliy 778417cdf0 issue 526.4.1: add analyzer removal and feature validation functionality (#8575) 2019-03-26 14:17:40 +03:00
Jan 207c978d1e
Bug fix/move a few actions from js to cpp (#8549) 2019-03-26 10:02:21 +01:00
Jan 80a6e621ee
don't allocate memory so often in ClusterComm requests (#8550) 2019-03-26 00:31:56 +01:00
Jan Christoph Uhde c3f7961b88 apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
Simon 75c3cadd67 Hide in progress indexes (#8564) 2019-03-25 18:31:12 +01:00
Simon bcc26926de Support Transactions in RestCursorHandler (#8539) 2019-03-25 17:04:11 +01:00
Michael Hackstein 48b709ae16
Feature/subquery by line (#8553)
Subquery Executor by line
2019-03-25 17:02:07 +01:00
Jan Christoph Uhde 763cf1168c stop after receiving first error message (#8555) 2019-03-25 13:46:02 +01:00
Michael Hackstein 863af5f3d9
Fixed sequence point warning in all rows fetcher (#8556) 2019-03-25 13:29:16 +01:00
Jan e078f35285
fixed typos, removed unneeded includes (#8547) 2019-03-25 12:09:37 +01:00
Jan f2ab6da5f8
dont whine about --server.jwt-secret if it isn't used (#8546) 2019-03-25 12:08:43 +01:00
Jan Christoph Uhde 5711854531 add SingleRemoteModificationExecutor (#8245) 2019-03-25 07:07:57 +01:00
Jan Christoph Uhde 5d5b77abb8 add ModificationExecutor (#8179)
All modification operator as Executors
2019-03-24 20:48:38 +01:00
Michael Hackstein f1e4f370c3
Feature/aql sorted collect (#8524)
Sorted Collect Executor
2019-03-24 19:51:59 +01:00
jsteemann 871c987b68 eliminate dead store 2019-03-24 18:45:10 +01:00
Michael Hackstein 20d3141486
Feature/aql gather executors (#8514)
Implemented AQL Gather Executors by line
2019-03-24 17:09:07 +01:00
jsteemann d5de286568 cppcheck 2019-03-23 22:29:42 +01:00
Jan 0a1ab07c64
address review concerns (#8544) 2019-03-23 22:10:19 +01:00
jsteemann 22fecdd3b7 fix compile warning 2019-03-23 20:39:40 +01:00
Jan 39a3f5bc4e
reintroduce smart joins after temporarily reverting them in devel (#8543) 2019-03-23 20:36:02 +01:00
Tobias Gödderz ff06c5244f Suppress false positives about "potential null pointer dereference" (#8501) 2019-03-23 17:41:33 +01:00
Dan Larkin-York 44810a1218 Improved index error messages. (#8532) 2019-03-22 20:26:09 +01:00
Dan Larkin-York be2cccfa28 Add RocksDB background error listener. (#8535) 2019-03-22 20:25:04 +01:00
Jan cfd3418115
microoptimizations (#8519) 2019-03-22 16:53:21 +01:00
Jan 4812ad9146
fix /_api/cluster/endpoints URL for active failover (#8520) 2019-03-22 16:52:26 +01:00
Jan Christoph Uhde 0b14599b67 better AQL error messages (#8503) 2019-03-22 16:49:08 +01:00
Simon f4ecf8cd9e Fix asan error in truncate (#8523) 2019-03-22 15:22:28 +01:00
jsteemann 6a6947d268 fix compile warning 2019-03-22 11:55:45 +01:00
Simon 3ada15fc35 The Legendary El Cheapo (#8485) 2019-03-22 11:38:33 +01:00
Jan a35f6ccf10
fix type of hidden startup option `--rocksdb.recycle-log-file-num` (#8517) 2019-03-22 11:21:53 +01:00
Michael Hackstein 14bcc37e36 Fix a race in RemoteExecutor (#8516) 2019-03-22 10:52:16 +01:00
jsteemann 864a7581e0 Merge branch 'devel' of github.com:arangodb/arangodb into devel 2019-03-21 19:57:47 +01:00
jsteemann dc381a99df Revert "Feature/ncc1701 (#8440)"
This reverts commit 59ad583796.
2019-03-21 19:18:46 +01:00
jsteemann d300000bf2 Revert "fix a compile warning"
This reverts commit 45d460f934.
2019-03-21 19:18:41 +01:00
Jan f9fe1de82f
prevent assertion failures when creating smart graphs with invalid options (#8502) 2019-03-21 18:51:47 +01:00
jsteemann 45d460f934 fix a compile warning 2019-03-21 16:53:17 +01:00
Jan Christoph Uhde 679ac12395 use abort as SIGABRT has CORE as default action (#8510) 2019-03-21 15:55:21 +01:00
Max Neunhöffer 55706e3c74
Make addfollower jobs less aggressive. (#8490)
* Make addfollower jobs less aggressive.
* CHANGELOG.
2019-03-21 15:24:31 +01:00
Jan 59ad583796
Feature/ncc1701 (#8440) 2019-03-21 15:05:36 +01:00
Jan 00ac1db850
add RocksDB options `--rocksdb.allow-fallocate` and `--rocksdb.limit-open-files-at-startup` (#8493) 2019-03-21 14:21:35 +01:00
Vasiliy 405b60c2b7 issue 526.3: update analyzer feature to store analyzer definitions in per-vocbase system collections (#8452)
* issue 526.3: update analyzer feature to store analyzer definitions in per-vocbase system collections

* address merge issues

* address another merge issue
2019-03-21 14:23:36 +03:00
Jan 77c37723d6
some very small optimizations (#8484) 2019-03-21 09:57:05 +01:00
Lars Maier 4d49285754 [devel]agency appends entries with leaders timestamp (#8478)
* agency's append entries with leader's timestamp
* compatibility with appendEntries protocol without timestamps
* Updated changelog.
2019-03-21 09:52:58 +01:00
Heiko ce51797609 Feature/aql hashed collect (#8337)
Implementation of Hashed Collect Executor
2019-03-21 07:19:26 +01:00
Jan 0bef1c1098
dont attempt to remove non-existing WAL files (#8474) 2019-03-20 17:58:28 +01:00
Kaveh Vahedipour 5038dfe685 supervision must not copy snapshots into jobs (#8425)
* supervision must not copy snapshots into jobs
* CHANGELOG.
2019-03-20 17:07:54 +01:00
Kaveh Vahedipour 237e079614 leader check needs to sit inside waitfor loop (#8445)
* leader check needs to sit inside waitfor loop
* Do not wait in Supervision for commits of new writes.
* CHANGELOG.
2019-03-20 16:34:54 +01:00
Jan 6d107beeda
don't run compact() on a collection after a truncate() was done in th… (#8468)
* don't run compact() on a collection after a truncate() was done in the same transaction

running compact() in the same transaction will only increase the data size on disk due to RocksDB not being able to remove
any documents physically due to the snapshot we take at transaction start.
Decoupling the truncate transaction from the compact operation allows finishing the truncate transaction first, so we can
get rid of the snapshot. Running compact afterwards is then free to physically remove all the data.
As a nice side effect this change will also speed up the truncation of larger collections, because the compact will run
faster.

This change also exposes db.<collection>.compact() in the arangosh, in order to manually run a compaction on the data
range of a collection should it be needed for maintenance.

* fix documentation anchors
2019-03-20 16:27:54 +01:00
Tobias Gödderz 9203579218 Initialize alternativeRegId (#8480) 2019-03-20 15:00:08 +01:00
jsteemann 11efed7510 fix compile warnings 2019-03-20 14:28:19 +01:00
Lars Maier e598148707 Bug fix/jwt secret file logging (#7976)
* Print with correct log topic.

* Moved message to a place where logger is enabled.
2019-03-20 14:14:13 +01:00
Dan Larkin-York 04ef4595e3 Fix replication issue with index ID/name conflicts (#8448) 2019-03-20 14:06:02 +01:00
Tobias Gödderz f97d0a211f Implement ScatterExecutor and DistributeExecutor (#8292) 2019-03-20 13:40:20 +01:00
Jan 2c4accdf34
micro improvements for rocksdb options (#8433) 2019-03-19 12:47:57 +01:00
Jan 5dbd67c8fd
fix compile warnings about operator<< (#8456) 2019-03-19 12:33:26 +01:00
Dan Larkin-York 2eadab33e7 Index hints (#8431) 2019-03-19 09:14:18 +01:00
Vasiliy 29b941a677 issue 526.2.1: add upgrade step for legacy static analyzers (#8417) 2019-03-18 23:22:23 +03:00
Jan 23f7fc1368
fix some memleaks (#8432) 2019-03-18 18:11:37 +01:00
Simon 49cc3bcd1e Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
Tobias Gödderz 8d649903f7 Aql by line mixed fixes (#8349) 2019-03-14 19:38:41 +01:00
Wilfried Goesgens d88bc376a6 When updating documents with array indices and unique values we mustn't disable indexing in rocksdb (#8404) 2019-03-14 13:35:38 +01:00
Jan a1897d4e84
expose ARANGODB_USE_CATCH_TESTS define, make TEST_VIRTUAL be based on it (#8410) 2019-03-14 12:53:57 +01:00
Dan Larkin-York 413e90508f Named indices (#8370) 2019-03-13 18:20:32 +01:00
Jan 3156e481de
fix test (#8402) 2019-03-13 15:24:55 +01:00
Kaveh Vahedipour fa98e94d23 Supervision must not waitfor if no longer leading (#8403)
* Supervision must not waitfor if no longer leading

* Supervision must not waitfor if no longer leading
2019-03-13 13:18:10 +01:00
Jan be53ccda97
avoid a few dynamic memory allocations in the optimizer (#8393) 2019-03-13 12:55:19 +01:00
jsteemann d0dba4f941 make sure some tick invariants always hold true 2019-03-12 16:47:12 +01:00
Jan 9d3327c6ea
Bug fix/rearm cursors (#8363) 2019-03-12 15:28:33 +01:00
Max Neunhöffer 2a4f606df2
Various agency improvements. (#8380)
* Ignore satellite collections in shrinkCluster in agency.
* Abort RemoveFollower job if not enough in-sync followers or leader failure.
* Break quick wait loop in supervision if leadership is lost.
* In case of resigned leader, set isReady=false in clusterInventory.
* Fix catch tests.
2019-03-12 15:25:16 +01:00
Max Neunhöffer 30adf5e2d9
Fix an agency crash. (#8381)
* Check if transaction failed before accessing the result.
* FailedFollower has the same bug.
* Add CHANGELOG.
2019-03-12 15:24:37 +01:00
Vasiliy f5f572dd29 issue 527.1: ensure the cause of the failure is reported to the user (#8371) 2019-03-11 23:42:34 +03:00
Jan 12e11a5197
port of replication improvements from 3.4 (#8308) 2019-03-11 13:37:18 +01:00
Jan 85227e00e4
make geo-index-optimizer rule work with multiple loops (#8353) 2019-03-11 12:26:07 +01:00
Tobias Gödderz fc5f75a452 Implement RemoteExecutor (#8280) 2019-03-11 10:16:55 +01:00
Michael Hackstein 0403d6cb6f
Bug fix/prune neighbors and explain (#8304)
* Fixed Neighbors prune on depth0

* Fixed the Explainer output

* Rmeoved debug output
2019-03-11 10:13:57 +01:00
Jan 4c6c61ca33
document `includeFoxxQueues` attribute and persist it (#8351) 2019-03-08 18:43:35 +01:00
Jan f6d817b8ba
remove some unused stuff (#8350) 2019-03-08 15:52:39 +01:00
Kaveh Vahedipour 098d2d086c fix compaction behaviour of followers (#8348) 2019-03-08 10:39:49 +01:00
Kaveh Vahedipour ee751e8ba3 [devel] clear compilation warnings (#8345) 2019-03-08 10:35:09 +01:00
Jan 9f9426e36c
Bug fix/allow creating foxx queues inside transactions (#8339)
* allow creating a foxx queue from within a transaction

* added tests
2019-03-07 14:28:39 +01:00
Jan e28b908bbe
fix an assertion failure when plans are shut down in an invalid state (#8334) 2019-03-07 14:21:08 +01:00
Jan c82e0c2ca0
add option `--console.history` to arangosh (#8327) 2019-03-07 13:05:54 +01:00
jsteemann c8a53d9771 fix ASan warnings 2019-03-06 21:11:45 +01:00
m0ppers f4abe08b21 🚨 Fix struct vs class warning (#8329) 2019-03-06 14:42:56 +01:00
Vasiliy e97cd8a0fb issue 526.1: initial support for vocbase-prefixed analyzer names (#8319)
* issue 526.1: initial support for vocbase-prefixed analyzer names

* backport: add tests for new functionality, add temporary workaround for legacy analyzers

* address review comments

* fix typo
2019-03-06 15:13:19 +03:00
Kaveh Vahedipour 4b464aeb97 oversight (#8324)
* oversight of an abort
* fix waitFor trap in supervision
2019-03-05 23:31:18 +01:00
Vasiliy b1e30937bb issue 520.1.1: decrease link commit interval to 1 second, add workaround for MMFiles not recovering document insertions via WAL (#8313) 2019-03-05 14:50:54 +03:00
Kaveh Vahedipour 68178ba165 [devel] supervision bug fix backports (#8314)
* back ports for supervision fixes from 3.4 part 1

* back ports for supervision fixes from 3.4 part 2
2019-03-04 19:27:24 +01:00
jsteemann 29496d72e3 remove unused method 2019-03-04 09:54:26 +01:00
Michael Hackstein e84c71b62f
Prefetch in Filter Executor (#8212)
Prefetch number of rows in filter executor as well. Fixes the GO Test
2019-03-01 17:53:21 +01:00
Jan 08a6561adc
Bug fix/small issues 21022019 (#8229) 2019-03-01 17:20:10 +01:00
Jan 43c2850ec3
fix test in active failover mode (#8305) 2019-03-01 17:01:12 +01:00
Vasiliy 7130ffa427 issue 525.1: ensure RocksDB CreateIndex/DropIndex WAL markers are properly written during recovery (#8282)
* issue 525.1: ensure RocksDB CreateIndex/DropIndex WAL markers are properly writen during recovery

* account for changes in devel

* skip writing DropIndex marker in recovery
2019-03-01 15:58:11 +03:00
Andrey Abramov d86fb726e6
ArangoSearch index encryption (#8214)
* update iresearch

* add index encryption support

* update iresearch

* encrypt ArangoSearch index using rocksdb encryption provider

* fix merge issue

* update iresearch

* fix cmake

* minor fixes after update

* update iresearch

* partially revert changes from commit 492d05c1f1 since they cause iresearch configuration failures

* Update arangod/IResearch/IResearchRocksDBLink.cpp

Co-Authored-By: gnusi <gnusmas@kvolitek.ru>

* partially revert changes from commit 492d05c1f1 since they cause iresearch configuration failures

* fix cmake configuration for MAX

* another attempt to fix cmake on mac

* Fix 3rdparty cmake for Windows
2019-03-01 15:56:40 +03:00
Dan Larkin-York 4459cde000 Make coordinator short ID transient (#8234) 2019-03-01 09:48:36 +01:00
Jan 2c1eee547d
abort ongoing transactions in all cases (#8291) 2019-02-28 14:36:56 +01:00
Jan 5d2ab0c901
port from 3.4 (#8275) 2019-02-28 14:36:29 +01:00
Michael Hackstein 6e8d43b2da
Feature/aql traversal prune (#8255)
Allow PRUNE in the AQL Traverser.
2019-02-27 11:43:06 +01:00
Heiko b6224c65bb Bug fix/geo optimization cleanup (#7637)
* docu geo

* cleanup, reuse of code

* Update Geo.md

Fix indention, improve links, fix description of GEO_MULTIPOLYGON() parameter.

* One array level can be omitted if the Polygon has no holes
2019-02-27 09:01:40 +01:00
Andrey Abramov 804c6e21e3
backport: Fix bug #8213 (#8273)
* backport: Fix bug #8213

* rename variable

* fix compilation error

* fix tests
2019-02-26 23:47:15 +03:00
Jan 3755b4ab7d
remove unused includes (#8269) 2019-02-26 18:59:01 +01:00
Simon 5b4fd3d989 Nullptr checks (#8263) 2019-02-26 08:53:07 +01:00
Simon dc24d7fa4e Sync Foxx Queues (#8250) 2019-02-25 17:13:14 +01:00
Vasiliy 24b7f1e214 issue 519.1: fix typo, add tests, supress extraneous test log output (#8248) 2019-02-25 17:31:03 +03:00
Vasiliy 7b7f5d82ab issue 521.1: do not mark loadPlan as valid unless all instances were created successfully (#8235)
* issue 521.1: do not mark loadPlan as valid unless all instances were created successfully

* add extra validation
2019-02-25 15:34:02 +03:00
Jan Christoph Uhde 808fb694d0 WIP - improve auto-resync (#8020) 2019-02-22 17:42:04 +01:00
Jan d46acbb156
Bug fix/make ttl index work with datestrings too (#8208) 2019-02-22 16:09:51 +01:00
Vasiliy 69479f1dce issue 523.1: address build issues, ensure FlushFeature subscriptions are cleared during stop(), assert that they are deallocated (#8193)
* issue 523.1: address build issues, ensure FlushFeature subscriptions are cleared during stop(), assert that they are deallocated

* backport: account for Flush subscriptions validly surviving past FlushFeature::stop()

* fix comment typo
2019-02-22 00:08:17 +03:00
Dan Larkin-York cd54271af0 Add TTL to query options to standardize usage across components. (#8203) 2019-02-21 20:29:37 +01:00
Jan 43f4163b0f
Bug fix/small issues 21022019 (#8218) 2019-02-21 15:49:07 +01:00
Heiko 06bb099c14 feature/aql count collect executor (#8182)
* added count collect executor
2019-02-21 15:18:53 +01:00
Heiko 658623934c Feature/aql index executor (#8146)
Moved Index Block to Index Executor
2019-02-21 11:19:57 +01:00
Jan d5ddf51037
fix shutdown of query cache (#8190) 2019-02-20 18:35:56 +01:00
Jan 7596bac39c
improve error messages when restoring from invalid JSON data (#8210) 2019-02-20 18:34:35 +01:00
Heiko 4557dfc0d5 do not allow edge definitions with empty from or to arrays, added als… (#8198) 2019-02-20 18:32:33 +01:00
Heiko 924115a5d2 Feature/aql distinct collect executor (#8181)
* init commit

requested changes

added tests

removed old distinct collect block code

distinct exec test

* devel merge and added tests including input data

* added test

* added one more input variable, added another waiting test
2019-02-20 16:17:46 +01:00
Michael Hackstein 74c57dce37
Bug fix/clustercomm queue cleanup (#8191)
Cleanup of unused queues in ClusterComm
2019-02-20 14:29:18 +01:00
Jan 1798036ea0
Bug fix/optimizations 18022019 (#8180) 2019-02-19 19:24:04 +01:00
Jan 2b956d5b79
fixed issue #8165 (#8194) 2019-02-19 18:20:01 +01:00
Jan 44c6a2d732
Feature/ttl index (#8169) 2019-02-19 14:12:21 +01:00
Michael Hackstein cb4d870c6a
SortExecutor optimization for few lines from upstream (#8192)
* Added an optimization where the SortExecutor prefetches all rows from above and only allocates a result block of the expected size

* Fixed catch tests

* APplied review fixes
2019-02-19 13:25:28 +01:00
Tobias Gödderz e3f5a88762 Forbid ambiguous casts to and from ResultT (#8147)
* Forbid ambiguous casts to and from ResultT

* Reformat

* Changed enabled_if checks to check for implicit casts to Result

* Added comments
2019-02-19 12:50:57 +01:00
Wilfried Goesgens 492d05c1f1 Feature/upgrade v8 7.1.302.28 (#8088) 2019-02-19 11:15:34 +01:00
Jan dd6329da25
when creating a new database with an initial user, set the database p… (#8184) 2019-02-18 16:16:53 +01:00
Dan Larkin-York f4c2347fbd Make Result final (#8157) 2019-02-15 20:05:30 +01:00
Michael Hackstein 1ef0d3d1c8
Inline Return and CalculationExecutor. Also avoid an unnecessary copy. (#8170) 2019-02-15 13:05:08 +01:00
Tobias Gödderz 1adb438412 Calculate registersToKeep correctly to avoid redundant copying of empty registers (#8168) 2019-02-15 12:55:18 +01:00
Luschgy b7b84beebf Feature/aql blocks by line (#6553)
* Fixed hidden merge conflict

* Added BlockFetcher, added a minimal test for SingleRowFetcher

* move RegInfo in types.h

* fix getSomeLogic

* Added the AqlItemMatrix implementation. Not yet tested!

* Fixed nr called => Waiting ratio in AllBlocksFetcherMock

* fix compiling

* add RegInfo to produceRow

* BlockFetcherHelper now returns a matrix

* pass RegInfo as requested into AqlItemRow ctor

I would still keep it out as the ItemRow should be a thin view.

* allow to change the AqlItemRows cheaper / remove _sourceRow member

* implement copyRow for AqlItemRow

* organize cleanup for outputblock used in getsome / shrink if necessary

* Added tests for SingleRowFetcher, cleanup in AqlItemRow

* start mocking

* Added test helpers, began work on a more complex test for SingleRowFetcher

* Re-added RegInfo again to AqlItemRow

* helper, added test case for FilterExecutor

* merge fixed compile

* Removed trx name where it is actually not used

* Made some functions TEST_VIRTUAL for mocking.

* implemented Sort executor

* Fixed the BlockFetcherHelper API, to always return a matrix if it is not waiting

* Implemented a SortExecutor test with data

* disable borken test

* Fixed test on SortExecutor. Green now, needs some more testing

* change a bit how the AqlItemRow is used in a test

* Added another test for the SingleRowFetcher

* Added more tests for SingleRowFetcher

* fix getRegisterInfo

* Moved RegInfo into ExecutorInfos. Also now use the FilterExecutor implementation in production code instead of FilterBlock. Starting integration testing.

* add more asserts

* Fixed undefined behaviour in TestCode.

* Do not shrink an empty output block

* switch to block pointers in AqlItemRow

* return blocks in the row fetcher

* Updated grammar.cpp

* Updated (fixed) tests to verify returnBlock

* Improved const-ness

* Changed BlockFetcher constructor in order to make it mockable

* Implemented BlockFetcherMock and rewrote some tests with it

* Updated a comment

* Updated comments

* init commit - EnumerateListExecutor, including EnumerateListExecutorInfos

* add potential fix for ItemMatrix

* Replaced fakeit with BlockFetcherMock in another GIVEN block

* Replaced the last fakeit mocks with BlockFetcherMock and removed fakeit

* Updated function definition

* included missing arary included

* Renamed AqlItemRow to InputAqlItemRow

* Split AqlItemRow into Input~ and Output~ classes

* EnumerateListExecutor + Tests

* Added tests for AqlItemRows

* Added test file for AqlItemRows...

* Made the ostream operator for AqlItemBlocks available to Logger and Catch info

* build error

* Added a second test for AqlItemRows. Need to make input space invalid now, sth. acidential referencing will show up

* Introduce a block ID in the InputAqlItemRow

* Copy output values correctly, avoid InputAqlItemRow pointers

* Added a test for registerClearout

* Fixed tests

* Added a test for adding new values

* Added a test for an incomplete row write to not count as produced.

* Fixed getSome and a test

* Added a test for larger AQL values in AqlItemRows

* Fixed compile error in hidden merge conflict

* Added tests for Filter counter in FilterExecutor

* OutputAqlItemRow now takes responsibility of the block

* Handed responsibility of blocks in ExecutionBlockImpl to OutputAqlItemRow

* EnumerateListExecutor should be close to its finish. Tests need to be fixed, not ready yet.

* better swap

* OutputAqlItemRow now takes ExecutorInfos

- added several assert
- implemented a more strict and safe produced() logic

* enum list test

* Added a more specific error message

* Removed OutputAqlItemRow.changeRow()

* fix invalid block freeing

* changed order of input/output registers

* Fixed a test

* Fixed matrix width in test

* fix failure tests

* finished enumlist tests

* Implemented AllRowsFetcher and tests for it

* Bugfix in skipSome stub

* insert sort and enumerate list executors

into exectuion nodes' create functions

* fixed singlerowfetcherhelper, added tests

* small fixes

* add missing Infos

* restore accidentally deleted scorer

* make it compile

* fix executor info creation / usage

* make use of output var in EnumarateListNode

* Added Executor::Stats and FilterStats

* Extended FilterExecutor tests with stats, added node tracing to getSome

* Fixed Sort-&EnumerateList- Executor to use the new return type with stats

* Fixed compile error in tests

* Changed *ExecutorInfo constructors and classes to contain the necessary register informations

* Made an ExecutorInfo construction more readable

* Updated comments

* Fixed checks in OutputAqlItemRow::setValue()

* Add comparison method to SortRegister. Forbid construction without one.

* Implemented ExecutionBlockImpl::initializeCursor

* more mocking inside ExecutionBlockImplTest

* Minor changes

* Avoid AqlValueGuard destroying the value copied into the output block

* Disabled failure tests that do not apply to the new Sort implementation

* further mocking of test modules

* Removed constexpr for compatibility with outdated gcc versions

* add some failure tests - getsome works differently

therefor we do not test the old behavior

* fix sort node

* clean up alq item matrix

* Removed the transaction methods from read-only access to AqlValues (get and at) and repliced by CollectionNameResolver where necessary. Still left: some calls extract VPackOptions from the Transaction. Compare needs a BuilderLeaser only.

* textexecutionhelper, execimpl test

* Eliminated FilterBlock

* Eliminated the EnumerateListBlock

* first successful running test of executorblockimpl

* Eliminated SortBlock

* fixed testexecutor helper

* Made the ExecutorInfos private to the executors again.

* Implement and use AqlItemBlockShell (#6562)

* Added AqlItemBlockShell

* Minor changes

* Mostly replaced AqlItemBlock with ~Shell.

Current state:
- arangod compiles
- OutputAqlItemRow has yet to be changed
- catch tests have yet to be fixed

* Use AqlItemBlockShell in OutputAqlItemRow

* Added registersToKeep to AqlItemBlockShell

* Removed ExecutorInfos from OutputAqlItemRow

* Split AqlItemBlockShell into Input~ and Output~

* Changed tests so they compile again - they're still not yet working.

* Fixed tests

* fixed building, modified impl test

* Removed now superfluous BlockFetcherMock functions

* more execimpl testing

* Removed block IDs

* more impl testing

* Reduced dependencies of BlockFetcher construction

* Bugfix, cleared documentation

* Removed debug-output

* Adressed minor code review remarks

* Moved method definitions into .cpp files to avoid includes

* Added assertions

* Added comments

* Addressed several more review comments

* Added missing includes

* more testing, not finalized yet

* added missing header file

* added a test for execution block impl

* removed old comment

* Improved lookup algorithm to identify correct block/row combination in AqlItemMatrix

* added test for ExecutionBlockImpl

* move utility to the right position

* Bugfix and a TODO note

* Bugfix: use a uniform ResourceMonitor in tests

* Made OutputAqlItemRow::setValue clone by default and copy on move

* Replaced the getRow lookup with a binary search

*  enumerate tests

* Disable emplacing of AqlValues in ItemBlock

* Reenabled std::enable_if will warn until oskar is using c++17 as standard.

* Add helper function to create a shared pointer of an unordered_map<RegisterId>

* CalculationExecutor (#6570)

* add CalculationExecutor skeleton

* first shot of CalculationExecutor

* fix minor bugs

* handle references

* use new shared pointers

* commit to share work

* fix failure test

* reformat with clang-format

* add test for CalculationExecutor

* fix CalcualtionExecutor test

* clean up

* Removes unused code

* clean up includes

* fix/remove comments

* add changes requrested by hacki

* ReturnExecutor (#7932)

* add skeleton to CMakeLists.txt

* build most parts of the ReturnExecutor

* This commit removes ReturnBlock and adds some debug messages

removed inheritRegisters functionality

* finish ReturnExecutor

* add test for return executor

* remove unused code

* add stats and clean up includes

* verify result in ReturnExecutorTest and move *Stats to "Aql/Stats.h"

* Fixed algorithm to find correct row in a MultiRow Input

* fix full count and failure tests (#7969)

* fix full count and failure tests

* fix filter test

* WIP: fixes

* fixed

* NoResultsExecutor (#7953)

* add NoResultsExecutor

* clean up

* some review changes

* fix test

* fix

* fix WAIT -> DONE

* remove unused code (#7995)

* create skeleton for SingletonExecutor (#7957)

* create skeleton for SingletonExecutor

* WIP: continue implementation

* WIP: add fetcher skel

* WIP: add inject function to ConstFetcher

* rename SingletonExecutor to IdExecutor

* WIP: replace singleton node

* WIP: More Debugging on IdExecutor

* WIP: IdExecutor

* WIP: add failure tests

* make iresarch test work but not pass

* WIP: add ConstFetcherHelper

* fix test

* fix tests

* fix iresearch tests

* fix wording

* add review changes

* add review change to SingleRowFetcher as well

* fix test

* fix error when increasing index

* temporarily remove fold-expression

* clean up

* Fix gcc compile error

* Feature/aql limit executor (#7982)

* limit executor

* removed not needed tri assert

* rm _invariable in limitnode

* find out if we are in a subquery

* queryDepth in limit infos

* added missing queryDepth

* finalizing limit executor

* added more tests, fixed a condition

* add assert to test

* added missing fullcount check

* typo

* minor changes, fixed test

* test

* wrong check

* fixed tests

* false merge

* remove basic blocks

* remove basic block includes

* include sort order

* removed not needed basic blocks

* removed not needed basic blocks

* fix test

* Feature/remove input output shells (#8090)

* Added template parameters to allow for block pass-through to be chosen at compile time

* Adapted the tests to match the new template parameters

* Adapted ConstFetcher and IdExecutor to match the new templated fetcher

* Implemented pass-through, fixed SingleRowFetcherTest

* Fixed implicit merge conflicts

* Fix assumptions that are violated by block pass-through

* Added 2 regression tests

* Fixed test expected data

* Fix nullptr dereference

* Fix handling of non-invalidated input variables

* Fix nullptr dereference

* Fix handling of non-invalidated input variables

* Fixed compile error

* Fixed a useless and leaking allocation

* Try a less implicit fix

* Allow IdExecutor and ConstFetcher to be used with pass-through

* Performance patches from @mchacki

* Fixed merge conflicts, and bugs in ConstFetcher

* Fixed atMost pass-through, and blocks that call their parents too often

* Removed InputAqlItemBlockShell (except from tests)

* Removed OutputAqlItemBlockShell (except for tests)

* Moved implementations of OutputAqlItemRow methods in the header

* Moved SingleRowFetcher::fetchRow to the header to allow inlining

* Reenabled returnInheritedResults optimization

* Enable passThrough for ReturnExecutor with inherited results

* Specialized CalculationExecutor to avoid unneccessary conditional jumps

* Made tests compile again (but are currently broken)

* Fixed ReturnExecutor test

* Move created InputRows out of AqlItemMatrix

* Limit- and EnumerateList Executors no longer fetch from upstream after DONE

* Added comments

* Added experimental AqlItemBlock optimizations

* Removed _numEntries, added comments

* Allow executors to pass an "atMost"-limit to the SingleRowFetcher (for LIMIT)

* Let the LimitExecutor pass atMost upstream

* Bugfix for FullCount

* Feature/aql enumeratecollection executor (#8028)

* initial commit

* enum coll executor

* buildable version of enumeratecollectionexecutor

* wrong usage of outVariable

* Added template parameters to allow for block pass-through to be chosen at compile time

* Adapted the tests to match the new template parameters

* Adapted ConstFetcher and IdExecutor to match the new templated fetcher

* more fixes, still some tests failing

* Implemented pass-through, fixed SingleRowFetcherTest

* Fixed implicit merge conflicts

* adding missing set value (remember optimize todo), optimized constructor

* removed old enumerate collection blocks

* Fix assumptions that are violated by block pass-through

* Added 2 regression tests

* Fixed test expected data

* Fix nullptr dereference

* Fix handling of non-invalidated input variables

* Fix nullptr dereference

* Fix handling of non-invalidated input variables

* Fixed compile error

* Fixed a useless and leaking allocation

* added broken uncompilable executor test

* Try a less implicit fix

* fix mocking

* enumerate collection executor test

* remove class, use only static function.

* clean up test after merging with main branch

* Allow IdExecutor and ConstFetcher to be used with pass-through

* Performance patches from @mchacki

* Fixed merge conflicts, and bugs in ConstFetcher

* Fixed atMost pass-through, and blocks that call their parents too often

* Removed InputAqlItemBlockShell (except from tests)

* Removed OutputAqlItemBlockShell (except for tests)

* Moved implementations of OutputAqlItemRow methods in the header

* Moved SingleRowFetcher::fetchRow to the header to allow inlining

* Reenabled returnInheritedResults optimization

* Enable passThrough for ReturnExecutor with inherited results

* Specialized CalculationExecutor to avoid unneccessary conditional jumps

* Made tests compile again (but are currently broken)

* Fixed ReturnExecutor test

* Limit- and EnumerateList Executors no longer fetch from upstream after DONE

* Removed an assertion which seems to be incorrect during bootstrap.

* Inlined AQL ItemMatrix and removed unused elements in other Executors

* Now inline + Move in AqlItemMatrix, seems to be overall best performing

* Bugfix: Do not returnInheritedResults on DBServers

* Fixed LIMIT test, and made it more thorough.

* Fixed createion of NoResultBlock creation in IResearch Nodes. Also relaxed an assertion

* Reactivated failure point, now identical with anotherone in OutputRow, need to unified

* Bug fix: do not mutate the offset in the LimitExecutor (#8109)

* Introduced test

* Fixed LimitExecutor to not mutate its infos, so it works correctly in subqueries

* Fixed crashes in CatchTests

* Fixed non-maintainer build

* try to fix subqueries

* Fix isInSubQuery for non-singleton nodes.

* remove useless while true

* Feature/aql blocks by line dan sort (#8143)

* Add SortNode::SorterType to SortExecutorInfoss.

* prepare imple of sort executor

* WIP: add some code for dan sort

* WIP: working at pushRows

* WIP - try to add Dan's heap-sort

* re add missing test

* 2 fixes

* fix

* Dan's tests are working

* remove unused variable

* remove SortBlock.cpp from CMakeLists.txt

* remove hack and provide an extra method to set the _baseIndex

* Simplified ContrainedSortExecutor.

* fix forgotten variable

* update doc

* Assert that we do not use functions that might return wrong results.

Preconditions or invariants the functions rely on are broken. Therefore
the functions can not be used. This is asserted in maintainer mode.

* add function to restore row invariant

* do not emplace and pop_back if not necessary

* Use clear registers in case we can move the rows.

* WIndows opst zirkus

* Actually destroy AqlItemValue

* Feature/traversal executor by line (#8000)

* Added stubs for TraversalExecutor, no implementation, not compiled in yet

* Included production code of TraversalExecutor and made it compile. Now implement

* Implemented production code for trivial tests, if no row is reaching the traverser.

* Fixed TraversalExecutor code to pull all rows from above and added tests. No traversal yet, this is next

* Intermediate blind commit might not work

* Fixed compile issue in test code

* Created a shared place for Mocks in tests and moved the StorageEngineMock there, also started a shared place for mock servers, most test will need the same server in order to work.

* Fixed travesalExecutor tests. Now able to create tests with actual input.

* Added successful test in TraversalExecutor, that Traverser as started with correct start vertices (by inputRegister)

* Further test cases

* Added stubs for TraversalExecutor, no implementation, not compiled in yet

* Included production code of TraversalExecutor and made it compile. Now implement

* Implemented production code for trivial tests, if no row is reaching the traverser.

* Fixed TraversalExecutor code to pull all rows from above and added tests. No traversal yet, this is next

* Intermediate blind commit might not work

* Fixed compile issue in test code

* Created a shared place for Mocks in tests and moved the StorageEngineMock there, also started a shared place for mock servers, most test will need the same server in order to work.

* Fixed travesalExecutor tests. Now able to create tests with actual input.

* Added successful test in TraversalExecutor, that Traverser as started with correct start vertices (by inputRegister)

* Fixed leftovers from rebase

* Refixed mocks in different folder

* Fixed Mock import

* Fixed Calculators Exector Test to use the unified mocked server.

* Implemented logic for the TraversalExecutor. Also added tests for it. Not fully complete though

* Added validation of result values

* Added usage of constant register in traversal executor

* Included filter variables in traersal executor. Added test for const input. And moved MMDR into base traverser class for simplicity

* Added ostream operators on AQLValue and AqlInputRow. Not 100% done yet but good enough

* Added a shutdownable ExecutionBlock. Some blocks need to implement a specific shutdown still. I added this class to make it easier to eliminate them when the time is due.

* Removed ostream operator for INPUT row again, does for some reason not compile on Linux0o

* Fixed initialization order

* Removed classwrapper for shutdown.

* Applied review changes

* Refixed failing tests, API is not subject to change

* Fixed CatchTest (wrong usage of string literal in test case)

* Feature/shortest path executor (#8042)

* Added stubs for TraversalExecutor, no implementation, not compiled in yet

* Included production code of TraversalExecutor and made it compile. Now implement

* Implemented production code for trivial tests, if no row is reaching the traverser.

* Fixed TraversalExecutor code to pull all rows from above and added tests. No traversal yet, this is next

* Intermediate blind commit might not work

* Fixed compile issue in test code

* Created a shared place for Mocks in tests and moved the StorageEngineMock there, also started a shared place for mock servers, most test will need the same server in order to work.

* Fixed travesalExecutor tests. Now able to create tests with actual input.

* Added successful test in TraversalExecutor, that Traverser as started with correct start vertices (by inputRegister)

* Further test cases

* Added stubs for TraversalExecutor, no implementation, not compiled in yet

* Included production code of TraversalExecutor and made it compile. Now implement

* Implemented production code for trivial tests, if no row is reaching the traverser.

* Fixed TraversalExecutor code to pull all rows from above and added tests. No traversal yet, this is next

* Intermediate blind commit might not work

* Fixed compile issue in test code

* Created a shared place for Mocks in tests and moved the StorageEngineMock there, also started a shared place for mock servers, most test will need the same server in order to work.

* Fixed travesalExecutor tests. Now able to create tests with actual input.

* Added successful test in TraversalExecutor, that Traverser as started with correct start vertices (by inputRegister)

* Fixed leftovers from rebase

* Refixed mocks in different folder

* Fixed Mock import

* Fixed Calculators Exector Test to use the unified mocked server.

* Implemented logic for the TraversalExecutor. Also added tests for it. Not fully complete though

* Added validation of result values

* Added usage of constant register in traversal executor

* Included filter variables in traersal executor. Added test for const input. And moved MMDR into base traverser class for simplicity

* Added ostream operators on AQLValue and AqlInputRow. Not 100% done yet but good enough

* Added a shutdownable ExecutionBlock. Some blocks need to implement a specific shutdown still. I added this class to make it easier to eliminate them when the time is due.

* Removed ostream operator for INPUT row again, does for some reason not compile on Linux0o

* Fixed initialization order

* First draft of shortest path executor

* Fixed logic bugs, Local AQL tests succeed

* Added first version of ShortestPathExecutor tests. Edge output tests are missing yet.

* Added EDGE output tests

* Replaced TraversalStats with NoStats, they have never been tracked...

* Removed obsolete ShortestPathBlock.

* Removed classwrapper for shutdown.

* Applied review changes

* Refixed failing tests, API is not subject to change

* windows macro opst circus

* Clear registers per block, not per row (#8164)

* Fixed compilation under linux again...
2019-02-14 19:13:08 +01:00
Jan 820ba5dd7c
micro optimizations (#8156) 2019-02-13 16:14:28 +01:00
Simon 9622f0d13f Properly translate cluster comm errors (#8151) 2019-02-12 18:07:09 +01:00
Jan Christoph Uhde 77dc65ee89 fix while loop in in-iterator (#8153) 2019-02-12 18:00:58 +01:00
Jan a911ea64bf
issue #8137: NULL input field generates U_ILLEGAL_ARGUMENT_ERROR (#8140) 2019-02-12 17:56:01 +01:00
Vasiliy 98b024d787 issue 466.6: remove unused code, remove hardcoded view meta values (#8130) 2019-02-11 16:32:04 +03:00
Vasiliy c52911e9f5 issue 466.5: switch to using WAL markers instead of FlushThread for recovery (#8124) 2019-02-07 17:43:01 +03:00
Manuel Pöter cf461d3d9c Make single server key generators lockfree. (#8118) 2019-02-07 15:02:18 +01:00
jsteemann 004c1cd642 fix warnings 2019-02-07 13:20:27 +01:00
Jan 1a1f6935c6
🚨 Fix clang warnings (#8123) 2019-02-07 13:06:03 +01:00
Jan 2bb1e1d3e1
fix issue #8108 (#8122) 2019-02-07 13:03:13 +01:00
Simon a392bbe224 Fix race in supervised scheduler (#8117) 2019-02-06 15:56:22 +01:00
Kaveh Vahedipour 22639f53f1 Failed servers now transactionally adds along the leader/follower jobs (#8096)
* failed servers now transactionally adds along the leader/follower jobs
* one pending still left
* typos
2019-02-05 13:56:27 +01:00
Simon 581f9f362b test for broken indexes (#8103) 2019-02-05 09:38:31 +01:00
Simon 7127b6edb7 fix error handking in V8Cursor::New (#8104) 2019-02-05 09:37:30 +01:00
Jan 6d467a9f9f
use PutUntracked to insert entries into non-unique indexes (#8098) 2019-02-05 09:34:06 +01:00
Tobias Gödderz 4b7dc8cd28 Sorted COLLECT: avoid nullptr deref when skipping and fix non-invalidated input variables (#8038)
* Added 2 regression tests

* Fixed test expected data

* Fix nullptr dereference

* Fix handling of non-invalidated input variables

* Try a less implicit fix

* Updated CHANGELOG
2019-02-04 16:38:13 +01:00
Simon 1123bc10c0 Check authentication for cluster APIs (#8051) 2019-02-04 14:47:44 +01:00
Vasiliy ea48789c54 issue 466.4: implement persistence of IResearchLink WAL flush marker (#8059)
* issue 466.4: implement persistence of IResearchLink WAL flush marker

* address enterprise test failure

* address test failures

* treat missing collections/indexes as potentially removed

* change view asertios to match collection assertions

* convert assertions to exceptions since they are possible

* revert assertion removal since assertions are actually valid for coordinator

* address scenario where link is dropped twice

* check for data store state before returning error

* revert last change since it's not valid for MMFiles
2019-02-04 16:36:13 +03:00
Jan 366af1782b
some more debug logging for replication (#8082) 2019-02-04 12:39:34 +01:00
Dan Larkin-York efb8364d99 Optimize memory usage in AQL by using constrained heap sort when reasonable (#7990) 2019-01-31 22:46:57 +01:00
Jan 0053a72a6a update velocypack (#8076) 2019-01-31 17:31:14 +01:00
Jan d45906e569
Bug fix/31012019 (#8078) 2019-01-31 17:27:18 +01:00
Jan f466cdda6a
return V8 context after usage not only on DB servers, but also for st… (#8079) 2019-01-31 17:26:38 +01:00
Jan 755a2779ae
dont free expressions internals in cluster too often (#8081) 2019-01-31 17:26:03 +01:00
Simon 655d594949 Fix background indexing (#8065) 2019-01-31 11:49:57 +01:00
Simon fd70b6fc34 Background Indexing (#8039) 2019-01-29 09:31:32 +01:00
Tobias Gödderz 93ea32a00a Added tests for parseVersion (#7708) 2019-01-29 09:27:29 +01:00
Jan f7d94daba2
port some changes from 3.4 (#8011) 2019-01-29 09:26:57 +01:00
Jan a578f2e82b
fix some cppcheck complaints (#8053) 2019-01-29 09:26:25 +01:00
jsteemann 8c5e7423b2 Revert "Do not acquire snapshot for single read (#8041)"
This reverts commit 91931ace4d.
2019-01-28 16:05:27 +01:00
Manuel Pöter ecf4d9d62a Fix race conditions in thread management. (#8032) 2019-01-28 15:44:46 +01:00
Simon 91931ace4d Do not acquire snapshot for single read (#8041) 2019-01-28 13:15:51 +01:00
Simon b1dc8fb804 reduce timeout for write-lock (#8034) 2019-01-28 09:21:30 +01:00
Simran 33220fb589 Doc - Deprecate --server.jwt-secret startup option (#7947) 2019-01-28 09:12:18 +01:00
Jan 65dc15bc61
Bug fix/misc issues (#8013)
* added missing return statements

* only spend up to 10 seconds for initially fetching the list of collections in arangosh

fetching the list of collections is a blocking operation, and the default timeout for this is very high.
If the server is blocked by whatever reason, then the shell is unusable until the collections list request returns.
To avoid this, the initial request is limited to 10 seconds, so the shell can be used afterwards.

* if an index cannot be used for sorting, its sort

cost was previously returned as 0. this will in fact favor
indexes that can be used for filtering but not for sorting
over indexes that can be used for both.

this change is to report the sort cost for indexes that
cannot be used for sorting to n * log(n), where n is the
number of documents that optimizer expects to come out of the
index after filtering
2019-01-28 08:55:22 +01:00
Vasiliy 22ea8bc293 issue 466.2: update iresearch to revision 9f179cea9037c702115d0884c88e742a30921cd1 (#8010)
* issue 466.2: update iresearch to revision ee15310f1450035c7d3ba664c6886ef7a39eb6bb

* update iresearch to commit 9f179cea9037c702115d0884c88e742a30921cd1
2019-01-24 16:11:04 +03:00
Andrey Abramov d1e9373244
improve logging and add tests (#8027) 2019-01-24 13:32:21 +03:00
Andrey Abramov 36cfec1cce
evaluate sort mode of view gather block more precisely (#8008)
* evaluate sort mode of view gather block more precisely

* minor cleanup

* add missing line
2019-01-22 12:22:36 +03:00
Jan cabeb8fc7b
make use of projections if the projected data is used by an IndexNode's condition (#8001) 2019-01-21 23:11:17 +01:00
Vasiliy e09f932dd3 issue 466.1.1: initial commit of FlushFeature redesign with WAL markers (#7980)
* issue 466.1.1: initial commit of FlushFeature redesign with WAL markers

* convert an std::shared_ptr destructor into a TRI_DEFER(..)
2019-01-21 17:50:42 +03:00
Andrey Abramov a2d0b9a3d1
Feature/arangosearch restrict collections (#7989)
* add ability to restrict collections scope of ArangoSearch view in query

* fail if collection which is not registered with a view was specified in options

* allow bound parameters to be used with ArangoSearch view options, add unit tests

* fix tests

* add tests for cluster

* fix issue in deseralization logic

* fix cluster tests, extend integration tests

* more tests

* fix failing cluster test

* address review comments

* address test issues
2019-01-21 17:49:37 +03:00
Jan 6944115de6
various optimizations (#7994) 2019-01-21 13:40:39 +01:00
Jan 1e3b323a46 move some date functionality into lib (#7997) 2019-01-21 10:43:37 +01:00
Jan f3597510cf
fix scrambling of AstNodes that were in use multiple times (#7979) 2019-01-18 18:30:51 +01:00
Simon ba102323cc Refactoring index interface (#7971) 2019-01-17 16:33:46 +01:00
Jan 8e7b0067c7
Bug fix/fix catch issues (#7970) 2019-01-17 14:24:09 +01:00
Jan 9635df56eb
added "peakMemoryUsage" query result figure (#7952) 2019-01-17 13:58:18 +01:00
Vasiliy 1b61f64b22 issue 504.1: post-review changes (#7965) 2019-01-17 11:01:38 +01:00
Vasiliy 8b94be9bf1 issue 504: return Result instead of int from all ClusterInfo functions (#7954) 2019-01-16 18:07:27 +03:00
Simon 86fe11024b Fix stream cursor bug (#7956) 2019-01-16 13:24:41 +01:00
Simon f748aee240 Added collectAll, updated fuerte (#7949) 2019-01-16 11:31:08 +01:00
Tobias Gödderz a1d3bc3e94 Foxx queue jobs hanging after Foxxmaster crash (#7922)
* Fixed bug where the Foxxmaster doesn't reset jobs after a crash when it should, or a non-master coordinator removes jobs in progress during startup

* Added a regression test

* Updated CHANGELOG

* Fixed non-maintainer compile
2019-01-14 16:08:08 +01:00
Vasiliy fac48ddbc1 issue 511.9.1: track DataSource instance instead of only its name in QueryCache (#7943)
* issue 511.9.1: track DataSource instance instead of only its name in QueryCache

* address use of invalid function

* fix expected test result

* address merge issue
2019-01-14 16:25:18 +03:00
Jan 5670698d7b
fix issue #7933: Regression on ISO8601 string compatibility in AQL (#7935) 2019-01-14 13:51:13 +01:00
Jan 9ce9312239
speed up containers that contain ExecutionNodes' variables (#7937) 2019-01-14 13:38:56 +01:00
Andrey Abramov 360b9f456c
reformat arangosearch sources (#7941) 2019-01-11 20:32:54 +03:00
Vasiliy 0fcf2c5784 issue 511.8: remove a redundant IResearchLinkDrop marker, it does the exact same thing as IndexDrop that is also written to the WAL (#7923)
* issue 511.8: remove a redundant IResearchLinkDrop marker, it does the exact same thing as IndexDrop that is also written to the WAL

* add a comment for deprecated markers
2019-01-11 18:09:23 +03:00
Jan e42befdc52
do not simplify non-deterministic conditions (#7926) 2019-01-11 14:48:34 +01:00
Wilfried Goesgens 457e14b970 add windows suspend/resume hooks as @char101 sugested for others (#7833)
* add windows suspend/resume hooks

* disable procdump
2019-01-11 12:41:27 +01:00
Jan Christoph Uhde f65853e30f make use of sortedness of rocksdb primary index (#7788) 2019-01-11 09:40:22 +01:00
jsteemann 1fb6922a64 prevent compiler warning 2019-01-11 08:53:29 +01:00
Andrey Abramov d4a010baf9
Bug fix/internal issue #316 (#7911)
* allow using scorers outside ArangoSearch view context

Signed-off-by: Andrey Abramov <andrey@arangodb.com>

* ensure query is properly optimized after replacement of scorer functions

* do not apply `handleViewsRule` to queries without views

* simplify optimization rule for ArangoSearch views

* show ArangoSearch view scorers in query explanation

* fix tests

* fix tests

* add stub for scorer related tests

* reformat

* check variable depth in `ViewExpressionContext::getVariableValue`

* add some tests

* address js test failures

* address jslint errors

* ensure `IResearchViewNode` exposes variables used in scorers

* ensure scorers with expressions are deduplicated

* fix deduplication for indexed access

* more tests

* partially address review comments

* address review comments

* simplify code

* remove irrelevant, commented out code

* ensure array comparisons are properly handled

* update changelog & loki
2019-01-10 21:04:19 +03:00
Jan fa7de56cf8
upgrade to boost 1.69.0 (#7910) 2019-01-09 17:17:33 +01:00
Vasiliy 5959f7f8e8 issue 511.7.3: restore single-document optimization, implement call to update data-store options, add IResearchView upgrade step (#7918)
* issue 511.7.3: restore single-document optimization, implement call to update data-store options, add IResearchView upgrade step

* address merge issue

* address another merge issue

* and another merge issue

* run ./utils/reformat.sh on the source tree

* address review comments
2019-01-09 17:16:02 +03:00
Jan fe81007438
support db._explain with all plans (#7895) 2019-01-08 18:06:46 +01:00