arangodb.com/2014/11/20/arangodb-2-3

The new query optimizer is ready to rock the world. We are proud to announce the release of ArangoDB 2.3, available for download now. ArangoDB 2.3 is available for Linux, Windows and Mac and provides support for 16 programming languages. Overhauled Query Optimizer The query optimizer and executor for AQL queries have been completely overhauled. Especially the optimization of distributed queries has been improved significantly. The query optimizer can now apply much more optimizations than in previous versions of ArangoDB. We have tried to keep the new version as compatible as possible with ArangoDB 2.2. Have a look at Jan’s blog post “Tour around new AQL query optimizer” or read the optimizer documentation to get familiar with this new feature. Powerful Foxx Enhancements We can’t wait to get your feedback, so we’ve released some great new Foxx features in 2.3 with more to come in the next release. With the new job queues feature you can run async jobs to communicate with external services, Foxx queries make writing complex AQL queries much easier and Foxx sessions will handle the authentication and session hassle for you. Features and Improvements in Detail The following list shows in detail which features have been added or improved in ArangoDB 2.3. ArangoDB 2.3 also contains several bugfixes that are not listed here. Please check the documentation for a complete list of changes and upgrading information. AQL improvements Framework improvements AQL queries are now sent through a query optimizer framework before execution. The query optimizer framework will first convert the internal representation of the query, the abstract syntax tree, into an initial execution plan. The execution plan is then send through optimizer rules that may directly modify the plan in place or create a new variant of the plan. New plans might again be optimized, allowing the optimizer to carry out several optimizations. After creating plans, the optimizer will estimate the costs for each plan and pick the plan with the lowest cost (termed the optimal plan) for the actual query execution. With the explain() method of ArangoStatement users can check which execution plan the optimizer picks or retrieve a list of other plans that the optimizer did not choose. The plan will reveal many details about which indexes are used etc. explain() will also return the of optimizer rules applied so users can validate whether or not a query allows using a specific optimization. Executionaaa


Comments (0)

Sign in to post comments.