1
0
Fork 0

updated CHANGELOG

This commit is contained in:
Jan Steemann 2015-05-21 10:49:53 +02:00
parent d5a8b0c4ba
commit 8a2283a0bf
1 changed files with 97 additions and 51 deletions

148
CHANGELOG
View File

@ -4,19 +4,24 @@ v2.6.0 (XXXX-XX-XX)
* added server startup option `--server.session-timeout` for controlling the timeout of user sessions
in the web interface
* front-end: display query execution time in AQL editor
* add sessions and cookie authentication for ArangoDB's web interface
* front-end: renamed AQL query *submit* button to *execute*
ArangoDB's built-in web interface now uses sessions. Session information ids are stored in cookies,
so clients using the web interface must accept cookies in order to use it
* front-end: added query explain feature in AQL editor
* web interface: display query execution time in AQL editor
* front-end: demo page added. only working if demo data is available, hidden otherwise
* web interface: renamed AQL query *submit* button to *execute*
* web interface: added query explain feature in AQL editor
* web interface: demo page added. only working if demo data is available, hidden otherwise
* removed startup option `--log.severity`
* added optional `limit` parameter for AQL function `FULLTEXT`
* make fulltext index also index text values that are contained in direct sub-objects of the indexed
* make fulltext index also index text values contained in direct sub-objects of the indexed
attribute.
Previous versions of ArangoDB only indexed the attribute value if it was a string. Sub-attributes
@ -52,7 +57,7 @@ v2.6.0 (XXXX-XX-XX)
* PUT /_api/simple/lookup-by-keys
* PUT /_api/simple/remove-by-keys
* properly prefix document address URLs with the current database name for calls to
* properly prefix document address URLs with the current database name for calls to the REST
API method GET `/_api/document?collection=...` (that method will return partial URLs to all
documents in the collection).
@ -60,18 +65,46 @@ v2.6.0 (XXXX-XX-XX)
database name, e.g. `/_api/document/mycollection/mykey`. Starting with 2.6, the response URLs
will include the database name as well, e.g. `/_db/_system/_api/document/mycollection/mykey`.
* added dedicated collection export HTTP REST API
ArangoDB now provides a dedicated collection export API, which can take snapshots of entire
collections more efficiently than the general-purpose cursor API. The export API is useful
to transfer the contents of an entire collection to a client application. It provides optional
filtering on specific attributes.
The export API is available at endpoint `POST /_api/export?collection=...`. The API has the
same return value structure as the already established cursor API (`POST /_api/cursor`).
An introduction to the export API is given in this blog post:
http://jsteemann.github.io/blog/2015/04/04/more-efficient-data-exports/
* subquery optimizations for AQL queries
This optimization avoids copying intermediate results into subqueries that are not required
by the subquery.
A brief description can be found here:
http://jsteemann.github.io/blog/2015/05/04/subquery-optimizations/
* return value optimization for AQL queries
This optimization avoids copying the final query result inside the query's main `ReturnNode`.
A brief description can be found here:
http://jsteemann.github.io/blog/2015/05/04/return-value-optimization-for-aql/
* speed up AQL queries containing big `IN` lists for index lookups
`IN` lists used for index lookups had performance issues in previous versions of ArangoDB.
These issues have been addressed in 2.6 so using bigger `IN` lists for filtering is much
faster.
A brief description can be found here:
http://jsteemann.github.io/blog/2015/05/07/in-list-improvements/
* allow `@` and `.` characters in document keys, too
This change also lead to document keys being URL-encoded when returned in HTTP `location`
This change also leads to document keys being URL-encoded when returned in HTTP `location`
response headers.
* added alternative implementation for AQL COLLECT
@ -103,7 +136,10 @@ v2.6.0 (XXXX-XX-XX)
suffixing a `COLLECT` statement with `OPTIONS { "method" : "sorted" }`. This will override the
optimizer guesswork and only produce the *sorted* variant of `COLLECT`.
* re-factored cursor HTTP REST API for cursors
A blog post on the new `COLLECT` implementation can be found here:
http://jsteemann.github.io/blog/2015/04/22/collecting-with-a-hash-table/
* refactored HTTP REST API for cursors
The HTTP REST API for cursors (`/_api/cursor`) has been refactored to improve its performance
and use less memory.
@ -171,7 +207,6 @@ v2.6.0 (XXXX-XX-XX)
A more detailed description of `UPSERT` can be found here:
http://jsteemann.github.io/blog/2015/03/27/preview-of-the-upsert-command/
* adjusted default configuration value for `--server.backlog-size` from 10 to 64.
* issue #1231: bug xor feature in AQL: LENGTH(null) == 4
@ -272,50 +307,61 @@ v2.6.0 (XXXX-XX-XX)
15
]
* Breaking Changes:
* Disallow batchSize value 0 in HTTP `POST /_api/cursor`:
* AQL command: `GRAPH_SHORTEST_PATH` now only returns IDs and does not extract data any more.
It yields an additional option `includeData` which is an object, taking exactly two keys:
* `edges` set to true will extract all data stored alongside the edges of each path.
* `vertices` set to true will extract all data stored alongside the vertices of each path.
The default value of these parameters has been set to `false`
The HTTP REST API `POST /_api/cursor` does not accept a `batchSize` parameter value of
`0` any longer. A batch size of 0 newer made much sense, but previous versions of ArangoDB
did not check for this value. Now creating a cursor using a `batchSize` value 0 will
result in an HTTP 400 error response
* JS Module: general-graph:
All graph measurements returning exactly one value returned an array containing exactly this one value.
Now they will return the value directly.
Modified functions are:
* `graph._absoluteEccentricity`
* `graph._eccentricity`
* `graph._absoluteCloseness`
* `graph._closeness`
* `graph._absoluteBetweenness`
* `graph._betweenness`
* `graph._radius`
* `graph._diameter`
* INCOMPATIBLE CHANGE:
* First started Arango Databases will create the '_graph' collection without waitForSync, so default behaviour
of Create & Delete operations on whole graphs change:
* POST /_api/graph would by default return HTTP 201 Created, will now return 202 Accepted
* DELETE /_api/graph/`graph-name` would by default return with HTTP 200, will now return 202 Accepted
unless waitForSync is specified as parameter, or the '_graph' collections waitForSync attribute was set.
The AQL function `GRAPH_SHORTEST_PATH` now provides an additional option `includeData`.
This option allows controlling whether the function should return the complete vertices
and edges or just their IDs. Returning only the IDs instead of full vertices and edges
can lead to improved performance .
* Improved GRAPH_SHORTEST_PATH computation
This involved a change in the default behaviour.
The default setting will now only print the distance and the ids of nodes.
We have added an optional boolean parameter `includeData` if this is set to `true`
all documents and edges in the result will be fully expanded.
We have also added an optional parameter `includePath` of type object.
It has two optional subattributes `vertices` and `edges` both of type boolean.
If provided, `includeData` is set to `true`, all vertices and edges in the result will
be fully expanded. There is also an optional parameter `includePath` of type object.
It has two optional sub-attributes `vertices` and `edges`, both of type boolean.
Both can be set individually and the result will include all vertices on the path if
`includePath.vertices == true` and all edge if `includePath.edges == true` respectivly.
So if you want to get the exactly old result back you have to set
```
GRAPH_SHORTEST_PATH(<graph>, <source>, <target>, {includeData: true, includePath: {edges: true, vertices: true}})
```
`includePath.vertices == true` and all edges if `includePath.edges == true` respectively.
The default behaviour is now independent of the size of documents as the extraction part could be optimized.
Also the internal algorithm to find all pathes from one source to several targets has been massively improved.
The default value of `includeData` is `false`, and paths are now excluded by default.
This makes the default function results incompatible with previous versions of ArangoDB.
To get the old result style in ArangoDB 2.6, please set the options as follows in calls
to `GRAPH_SHORTEST_PATH`:
GRAPH_SHORTEST_PATH(<graph>, <source>, <target>, { includeData: true, includePath: { edges: true, vertices: true } })
* INCOMPATIBLE CHANGE:
All graph measurements functions in JavaScript module `general-graph` that calculated a
single figure previously returned an array containing just the figure. Now these functions
will return the figure directly and not put it inside an array.
The affected functions are:
* `graph._absoluteEccentricity`
* `graph._eccentricity`
* `graph._absoluteCloseness`
* `graph._closeness`
* `graph._absoluteBetweenness`
* `graph._betweenness`
* `graph._radius`
* `graph._diameter`
* Create the `_graphs` collection in new databases with `waitForSync` attribute set to `false`
The previous `waitForSync` value was `true`, so default the behavior when creating and dropping
graphs via the HTTP REST API changes as follows if the new settings are in effect:
* `POST /_api/graph` by default returns `HTTP 202` instead of `HTTP 201`
* `DELETE /_api/graph/graph-name` by default returns `HTTP 202` instead of `HTTP 201`
If the `_graphs` collection still has its `waitForSync` value set to `true`, then the HTTP status
code will not change.
* added support for HTTP push aka chunked encoding
@ -380,9 +426,9 @@ v2.6.0 (XXXX-XX-XX)
* speed up building up primary index when loading collections
* added `count` attribute to `parameters.json` file. This attribute indicates the number of
live documents in the collection on unload. It is read when the collection is (re)loaded to
determine the initial size for the collection's primary index
* added `count` attribute to `parameters.json` files of collections. This attribute indicates
the number of live documents in the collection on unload. It is read when the collection is
(re)loaded to determine the initial size for the collection's primary index
* removed remainders of MRuby integration, removed arangoirb
@ -390,7 +436,7 @@ v2.6.0 (XXXX-XX-XX)
* simplified `exports` property in Foxx manifests. You can now specify a filename directly if you only want to export variables from a single file in your Foxx app.
* added support for Node.js-style exports in Foxx exports. Your Foxx exports file can now export arbitrary values using the `module.exports` property instead of adding properties to the `exports` object.
* added support for node.js-style exports in Foxx exports. Your Foxx exports file can now export arbitrary values using the `module.exports` property instead of adding properties to the `exports` object.
* added `scripts` property to Foxx manifests. You should now specify the `setup` and `teardown` files as properties of the `scripts` object in your manifests.