1
0
Fork 0
Commit Graph

168 Commits

Author SHA1 Message Date
Tobias Gödderz 82b0a5e745 De-inline in AQL (#10025)
* Enable IPO (LTO) via CMake

* Use separate IPO_ENABLED variable

* Enabled IPO for more binaries

* Enabled IPO for arangobackup

* Suppress an MSVC warning (though it is not unjustified...)

* Fix static builds, broken due to Policy CMP0060 introduced in cmake 3.3

* Removed policies superseded by minimum cmake version

* Disable IPO with google tests due to a g++ bug

* Disable IPO with google tests only on AUTO

* Disable warning for correct line

* Begin de-inlining Aql

* de-inlining Aql: 2nd batch

* de-inlining Aql: 3rd batch

* de-inlining Aql: 4th batch

* Moved code out of ifdef

* Enabled IPO for additional libs

* Fixed some problems found with IPO enabled

- Fixed ODR violation in Pregel
- Removed unused code in ClusterMethods
- Avoid possible uninitialized variable usage

* Set IPO globally, except for 3rdParty libs

* De-inlined AstHelper again (was undone due to a previous merge conflict)

* Added missing .cpp file

* Fixed compilation with MSVC

* Removed superfluous includes from deinlined AQL header files

* Added includes for size_t

* Deleted outdated files

* De-inlined files that were undone during the merge

* Removed includes from files that were undone during merge

* Fixed merge conflicts
2019-09-25 11:20:03 +02:00
Jan Christoph Uhde 0b8c75c7b7 one shard db - devel (#9395) 2019-09-23 15:48:37 +02:00
Jan c52f2a8315
refactoring (#9411) 2019-07-09 11:15:52 +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
Jan Christoph Uhde c3f7961b88 apply unique log ids (#8561) 2019-03-25 20:26:51 +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
Frank Celler ac9f375fb5 big reformat 2018-12-26 00:54:03 +01:00
Jan f5cf42e4f2
Bug fix/refactor query optimizer part2 (#7337) 2018-11-15 18:19:07 +01:00
Simon 311fb717f2 Bug fix/refactor query optimizer (#7228) 2018-11-05 18:30:12 +01:00
Jan 5022ccc24d
Bug fix/fixes 2508 (#6254) 2018-08-27 21:36:39 +02:00
Jan 0d48677619
Bug fix/aql optimizer improvements 2308 (#6241) 2018-08-24 13:42:22 +02:00
jsteemann 9e1e6c20e2 preparations for some more index usage 2018-08-22 09:53:33 +02:00
Jan b2b6c06cbf
Feature/efficiency (#3736) 2018-01-05 16:51:31 +01:00
Jan f1497e0df7 fixed issue #3395 (#3399) 2017-10-13 12:25:46 +02:00
Jan 5165155ed1 Bug fix/fixes 0609 (#3227)
* do not use V8 variant of AQL functions in early optimization stage when a C++ variant is available

* additionally, simplify AQL function definitions and aliases

* warn when more than 90% of max mappings are in use

* added C++ variant of replication catchup

* added `--log.role` option

* updated CHANGELOG

* removed non-existing scheduler.threads option from config

* removed useless __FILE__, __LINE__ invocations

* updated CHANGELOG

* allow a priority V8 context

* remove TRI_CORE_MEM_ZONE

* try to fix Windows errors & warnings

* cleanup

* removed memory zones altogether

* exclude system collections from collection tests
2017-09-13 16:28:21 +02:00
jsteemann 57dd92902c move engine-specific optimizer rules into engine 2017-03-07 13:10:58 +01:00
jsteemann ba44acdcff simplify optimizer API a bit 2017-02-06 15:43:49 +01:00
jsteemann c4d2ff3dce renaming 2017-01-23 15:36:11 +01:00
Jan Christoph Uhde 5234ac3621 Squashed commit of the following:
commit 3952bf2009
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 19 11:00:52 2016 +0100

    remove debug code

commit 004da0c614
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 19 10:52:42 2016 +0100

    only do not use geoindex in inner loop if we want to sort

commit 32e1c7eac4
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 19 09:16:09 2016 +0100

    manually cloning fixes the issue

commit 75823fe879
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 16 15:19:10 2016 +0100

    another try to fix the plan

commit 2a404cfabe
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Dec 14 12:21:21 2016 +0100

    add dump of ExectionPlan.

    Index Node seems to be created!

commit 0f8b496c57
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Dec 14 10:46:24 2016 +0100

    add debugging info for geoindex

commit 3d17672feb
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 13 17:03:01 2016 +0100

    better tests

commit 615b85e5f5
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 13 16:09:00 2016 +0100

    add tests - sort && filter and add check for IndexNodes

commit e5fcdb7386
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 13 15:53:44 2016 +0100

    partial rewrite - now we start at endnodes

    and work upward towards singleton node

commit 7d93fe0bdd
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 13 11:48:40 2016 +0100

    add link to geo-index doc to sourcefile to clarify goals

commit aac38c8a00
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 13 11:42:49 2016 +0100

    move collection acccesspath check to identify section

    so we can compare nodes

commit b8cc674219
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 13 10:59:02 2016 +0100

    prepare to fix filter-sort

commit 783a9aff89
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 12 16:24:52 2016 +0100

    check if nodes are really sorted

commit 1d5e28d969
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 12 15:36:43 2016 +0100

    fix geo-index for cluster case

commit 634eeabc0b
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 12 13:46:20 2016 +0100

    add cluster to .gitignore

commit ae33a790fb
Merge: 1acfd65 27099a1
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 12 13:31:54 2016 +0100

    Merge branch 'devel' into obi-geo-index

    * devel:
      Clarify the default value of req.body
      fix VS warning
      moveShard jobs running
      cppcheck
      cppcheck

commit 1acfd65467
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 12 13:30:38 2016 +0100

    work on geo-index in cluster

commit 32d0bdc846
Merge: b660672 ad4ba24
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 12 09:15:36 2016 +0100

    Merge branch 'devel' of github.com:arangodb/arangodb into obi-geo-index

    * 'devel' of github.com:arangodb/arangodb: (132 commits)
      try to fix travis build
      Generate unique Swagger operationIds
      Add support for Swagger tags
      Add swagger route to Foxx API
      Require at least one arg in route def
      ported velocypack compatibility fix from arangodb/velocypack
      use bulk allocator for index elements
      fix memleak
      fix test in cluster
      remove unused code
      fixed resilience
      Update zwagger
      Readd satellite node
      Fix link
      Document OAuth1
      Nicer OAuth2 docs
      properly start the tarball
      fix VS compile errors
      clones method in Jobs more useful
      we don't need the dpkg-shlibdeps workaround anymore.
      ...

commit b6606727ee
Author: jsteemann <jan@arangodb.com>
Date:   Thu Dec 8 11:13:10 2016 +0100

    fixes

commit 5416755049
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Dec 7 15:06:44 2016 +0100

    avoid use of geo-index-rule in cases where it could yield an invalid result

commit 3e24624c6e
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 6 15:56:22 2016 +0100

    back to performance

commit a941808ea8
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 6 10:29:38 2016 +0100

    remove debug code for performance testing

commit 2bae135b84
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 6 10:12:12 2016 +0100

    add test case

commit 71be8c215a
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Dec 6 10:00:11 2016 +0100

    node replacement is now working

commit d1a3e4482d
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 20:18:31 2016 +0100

    condition replace should be almost working

commit 275e36b603
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 19:49:10 2016 +0100

    add pointer that needs to be replaced with true

    in sort or filter condition

commit 6b93b9d2eb
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 19:38:01 2016 +0100

    bring functions in correct order

commit 5aabbb0ac0
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 16:21:21 2016 +0100

    fix const-ness so the condition can be modiefied

commit c84223d598
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 15:31:50 2016 +0100

    Add information if AstNode has been found in subexpression

    this information can be used in rewriting the condition and deciding
    if a sort node can be deleted or not

commit b0b660eb85
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 15:19:06 2016 +0100

    add iterative preorder walk for and conditions

commit 5dcf61c9ba
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 14:00:14 2016 +0100

    now work to a certain degree with binaray/naray-and in FILTER/SORT
    condition

commit 9b4e01eb3b
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 13:17:01 2016 +0100

    move geoIndexRule to a positon before inexes have been touched by
    optimizer

commit 9d04b37e58
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Mon Dec 5 12:46:23 2016 +0100

    within queries are now working

commit d858b9aa71
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 2 16:15:23 2016 +0100

    further implement within

commit 72d4790c68
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 2 12:22:07 2016 +0100

    remove boost::optional and make use of nodetype

commit e0220be12d
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 2 11:53:31 2016 +0100

    stronger split between identification of candidates and application of geo index rule

commit f27a22db06
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 2 11:20:09 2016 +0100

    fix debug code

commit fab9af483e
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 2 11:00:39 2016 +0100

    add extra log topic for development

commit 56b6be851c
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Fri Dec 2 10:44:42 2016 +0100

    add functions providing capability to check ast for parts of geoindex
    rules

commit 08ef943c83
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Thu Dec 1 23:01:50 2016 +0100

    fix tests

commit 56614ac8c8
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Thu Dec 1 16:30:09 2016 +0100

    switch unittests to chai and add failing test for FILTER condition

commit 8bb719c615
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Thu Dec 1 15:59:10 2016 +0100

    add first tests for geoindex

commit e619ef3e4e
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Thu Dec 1 12:21:51 2016 +0100

    now inspect sort and filter nodes

commit 5dbf5e14e3
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Thu Dec 1 10:03:24 2016 +0100

    refactor geoOptimization into smaller fucntions

    this prepares the creation of the within rules

commit 2110736d36
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Nov 30 16:50:02 2016 +0100

    fix logical error in nextBabies

commit 972af3af4c
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Nov 30 15:44:46 2016 +0100

    add within to geoindex iterator

commit 80c89d5f97
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Nov 30 15:25:11 2016 +0100

    geo condition is now build with a extra parameter for within

commit 8bafcdfe92
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Wed Nov 30 14:10:16 2016 +0100

    GeoIndexIterator now takes parameters via ConditionNode

commit 86c21eb733
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Nov 29 14:13:35 2016 +0100

    make use of geo index cursor api

commit 5b3be69e10
Author: Jan Christoph Uhde <Jan@UhdeJC.com>
Date:   Tue Nov 29 11:48:32 2016 +0100

    WIP first working version of geoindex via aql
2016-12-19 11:06:32 +01:00
Andreas Streichardt 11bd9381d5 Add satellite collections 2016-12-06 16:40:50 +01:00
Jan Christoph Uhde 9b2ad4dce1 add geo index rule 2016-11-24 18:18:51 +01:00
jsteemann fcacd76bca display index usage of traversals in AQL explainer output (previously missing) 2016-11-10 12:49:02 +01:00
Jan Steemann ca86704086 beautify handling of optimizer rules 2016-07-05 11:21:04 +02:00
Jan Steemann 1769299e95 make optimizer not skip "use-indexes-rule", even if enough plans have been created already 2016-07-04 16:31:14 +02:00
jsteemann f431afd23b micro optimizations 2016-05-13 15:21:33 +02:00
jsteemann e18012c92c remove unused functions 2016-05-01 23:14:57 +02:00
jsteemann ecd7de16cb added optimizer rule "inline-subqueries" 2016-04-15 17:21:22 +02:00
Jan Steemann 9163236f2b renamed optimizer rule "merge-traversal-filter" into "optimize-traversals" 2016-04-12 14:51:15 +02:00
jsteemann 4a7c9f0f68 simplified bloated comments 2016-04-09 11:27:30 +02:00
jsteemann 951c608ee6 cleanup 2016-02-26 23:20:41 +01:00
jsteemann b635983d9c removed unused functions and headers 2016-01-31 19:08:39 +01:00
jsteemann 1ca11411fd added (still disabled) optimizer rule `inline-subqueries` 2016-01-29 00:50:37 +01:00
Frank Celler 175e1e6b51 moved low level mutex in Mutex class 2016-01-27 15:31:02 +01:00
Jan Steemann 9046e1831b clang-format 2016-01-27 13:43:46 +01:00
Jan Steemann 3fc862f0ef changed locking macros 2016-01-26 15:39:12 +01:00
jsteemann 842384016d namespace cleanup 2016-01-21 00:20:22 +01:00
jsteemann 431900f17a changed namespace from triagens to arangodb 2016-01-17 00:44:53 +01:00
jsteemann 03c4a4fb23 renamed optimizer rule for collect optimization 2016-01-17 00:07:13 +01:00
Jan Steemann ad1163e3bb refactoring for Aql COLLECT 2016-01-07 13:35:12 +01:00
Jan Steemann 3ad20c0cae auto-generated headers 2016-01-06 18:41:51 +01:00
Jan Steemann a3b026d9d1 removed useless sections from code, unified include guards 2016-01-06 14:15:22 +01:00
Jan Steemann f422576ee0 clang-format 2016-01-05 17:43:24 +01:00
Max Neunhoeffer b10fafa501 Remove unused code. 2015-12-23 15:06:41 +01:00
jsteemann 50947dfae3 apply "sort-in-values" optimization for certain subqueries too 2015-12-23 00:44:47 +01:00
jsteemann a41f65b0ca optimizer simplifications 2015-12-21 01:43:16 +01:00
jsteemann 50818d9c80 simplifications 2015-12-18 23:54:14 +01:00
jsteemann 600c48375d added optimizer rule `sort-in-values` 2015-12-13 23:33:44 +01:00
jsteemann 18e47457a6 fixes 2015-12-11 13:29:18 +01:00
hkernbach 6d25ac57e9 Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-12-01 11:25:58 +01:00
jsteemann 37f72fa721 micro optimizations 2015-11-30 19:37:58 +01:00