mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
b5c7906dce
33
CHANGELOG
33
CHANGELOG
|
@ -4,13 +4,15 @@ devel
|
|||
* --server.maximal-queue-size is now an absolute maximum. If the queue is
|
||||
full, then 503 is returned. Setting it to 0 means "no limit".
|
||||
|
||||
* fixed issue #2450
|
||||
|
||||
* fixed issue #2453
|
||||
v3.2.alpha4 (2017-04-25)
|
||||
------------------------
|
||||
|
||||
* fixed issue #2448
|
||||
* fixed issue #2450: Bad optimization plan on simple query
|
||||
|
||||
* fixed issue #2442
|
||||
* fixed issue #2448: ArangoDB Web UI takes no action when Delete button is clicked
|
||||
|
||||
* fixed issue #2442: Frontend shows already deleted databases during login
|
||||
|
||||
* added 'x-content-type-options: nosniff' to avoid MSIE bug
|
||||
|
||||
|
@ -81,6 +83,10 @@ devel
|
|||
Enabling this option activated some proprietary timers for only selected
|
||||
events in arangod. Instead better use `perf` to gather timings.
|
||||
|
||||
|
||||
v3.2.alpha3 (2017-03-22)
|
||||
------------------------
|
||||
|
||||
* increase default collection lock timeout from 30 to 900 seconds
|
||||
|
||||
* added function `db._engine()` for retrieval of storage engine information at
|
||||
|
@ -118,7 +124,7 @@ devel
|
|||
when unused.
|
||||
|
||||
Waiting for an unused V8 context will now also abort if no V8 context can be
|
||||
acquired/created after 60 seconds.
|
||||
acquired/created after 120 seconds.
|
||||
|
||||
* improved diagnostic messages written to logfiles by supervisor process
|
||||
|
||||
|
@ -235,7 +241,7 @@ v3.2.alpha1 (2017-02-05)
|
|||
* fix potential port number over-/underruns
|
||||
|
||||
* added startup option `--log.shorten-filenames` for controlling whether filenames
|
||||
in log message should be shortened to just the filename with the absolute path
|
||||
in log messages should be shortened to just the filename with the absolute path
|
||||
|
||||
* removed IndexThreadFeature, made `--database.index-threads` option obsolete
|
||||
|
||||
|
@ -245,18 +251,27 @@ v3.2.alpha1 (2017-02-05)
|
|||
|
||||
* generated Foxx services now use swagger tags
|
||||
|
||||
|
||||
v3.1.19 (XXXX-XX-XX)
|
||||
--------------------
|
||||
|
||||
|
||||
* Fixed a StackOverflow issue in Traversal and ShortestPath. Occured if many (>1000) input
|
||||
values in a row do not return any result. Fixes issue: #2445
|
||||
|
||||
v3.1.19 (XXXX-XX-XX)
|
||||
--------------------
|
||||
* fixed issue #2448
|
||||
|
||||
* fixed issue #2442
|
||||
|
||||
* added 'x-content-type-options: nosniff' to avoid MSIE bug
|
||||
|
||||
* fixed issue #2441
|
||||
|
||||
* fixed issue #2440
|
||||
|
||||
* Fixed a StackOverflow issue in Traversal and ShortestPath. Occured if many (>1000) input
|
||||
values in a row do not return any result. Fixes issue: #2445
|
||||
|
||||
* fix occasional hanging shutdowns on OS X
|
||||
|
||||
|
||||
v3.1.18 (2017-04-18)
|
||||
|
|
|
@ -4,11 +4,80 @@ Incompatible changes in ArangoDB 3.2
|
|||
It is recommended to check the following list of incompatible changes **before**
|
||||
upgrading to ArangoDB 3.2, and adjust any client programs if necessary.
|
||||
|
||||
AQL
|
||||
---
|
||||
|
||||
* AQL breaking change in cluster:
|
||||
The SHORTEST_PATH statement using edge-collection names instead
|
||||
of a graph name now requires to explicitly name the vertex-collection names
|
||||
within the AQL query in the cluster. It can be done by adding `WITH <name>`
|
||||
at the beginning of the query.
|
||||
|
||||
Example:
|
||||
```
|
||||
FOR v,e IN OUTBOUND SHORTEST_PATH @start TO @target edges [...]
|
||||
```
|
||||
|
||||
Now has to be:
|
||||
|
||||
```
|
||||
WITH vertices
|
||||
FOR v,e IN OUTBOUND SHORTEST_PATH @start TO @target edges [...]
|
||||
```
|
||||
|
||||
This change is due to avoid dead-lock sitations in clustered case.
|
||||
An error stating the above is included.
|
||||
|
||||
|
||||
REST API
|
||||
--------
|
||||
|
||||
* Removed undocumented internal HTTP API:
|
||||
* PUT _api/edges
|
||||
|
||||
The documented GET _api/edges and the undocumented POST _api/edges remains unmodified.
|
||||
|
||||
* change undocumented behaviour in case of invalid revision ids in
|
||||
`If-Match` and `If-None-Match` headers from returning HTTP status code 400 (bad request)
|
||||
to returning HTTP status code 412 (precondition failed).
|
||||
|
||||
|
||||
JavaScript API
|
||||
--------------
|
||||
|
||||
* change undocumented behaviour in case of invalid revision ids in
|
||||
JavaScript document operations from returning error code 1239 ("illegal document revision")
|
||||
to returning error code 1200 ("conflict").
|
||||
|
||||
|
||||
Foxx
|
||||
----
|
||||
|
||||
JWT token issued by the built-in [JWT session storage](../Foxx/Sessions/Storages/JWT.md) now correctly specify the `iat` and `exp` values in seconds rather than milliseconds as specified in the JSON Web Token standard.
|
||||
* JWT tokens issued by the built-in [JWT session storage](../Foxx/Sessions/Storages/JWT.md) now correctly specify the `iat` and `exp` values in seconds rather than milliseconds as specified in the JSON Web Token standard.
|
||||
|
||||
This may result in previously expired tokens using milliseconds being incorrectly accepted. For this reason it is recommended to replace the signing `secret` or set the new `maxExp` option to a reasonable value that is smaller than the oldest issued expiration timestamp.
|
||||
This may result in previously expired tokens using milliseconds being incorrectly accepted. For this reason it is recommended to replace the signing `secret` or set the new `maxExp` option to a reasonable value that is smaller than the oldest issued expiration timestamp.
|
||||
|
||||
For example setting `maxExp` to `10**12` would invalidate all incorrectly issued tokens before 9 September 2001 without impairing new tokens until the year 33658 (at which point these tokens are hopefully no longer relevant).
|
||||
For example setting `maxExp` to `10**12` would invalidate all incorrectly issued tokens before 9 September 2001 without impairing new tokens until the year 33658 (at which point these tokens are hopefully no longer relevant).
|
||||
|
||||
|
||||
Command-line options changed
|
||||
----------------------------
|
||||
|
||||
* --server.maximal-queue-size is now an absolute maximum. If the queue is
|
||||
full, then 503 is returned. Setting it to 0 means "no limit". The default
|
||||
value for this option is now `0`.
|
||||
|
||||
* the default value for `--ssl.protocol` has been changed from `4` (TLSv1) to `5` (TLSv1.2).
|
||||
|
||||
* the startup options `--database.revision-cache-chunk-size` and
|
||||
`--database.revision-cache-target-size` are now obsolete and do nothing
|
||||
|
||||
* the startup option `--database.index-threads` option is now obsolete
|
||||
|
||||
* the option `--javascript.v8-contexts` is now an absolute maximum. The server
|
||||
may start less V8 contexts for JavaScript execution at startup. If at some
|
||||
point the server needs more V8 contexts it may start them dynamically, until
|
||||
the number of V8 contexts reaches the value of `--javascript.v8-contexts`.
|
||||
|
||||
the minimum number of V8 contexts to create at startup can be configured via
|
||||
the new startup option `--javascript.v8-contexts-minimum`.
|
||||
|
|
101
LES-TODOS
101
LES-TODOS
|
@ -1,101 +0,0 @@
|
|||
done
|
||||
----
|
||||
- create new branch
|
||||
- factor out transactions from LogfileManager
|
||||
- concept "collection locks"
|
||||
- 3 states: READ / WRITE / EXCLUSIVE for locks
|
||||
- index implementations => moved & renamed to StorageEngine
|
||||
- move engine files into MMFiles directory
|
||||
- split IndexElement
|
||||
- rename *IndexElement to MMFiles*
|
||||
- move fulltext & geoindex & skiplist helper code into MMFiles
|
||||
- rename "RocksDBIndex" to "PersistentIndex"
|
||||
- Delete OperationCursor->getMore. Replace by getMoreTokens
|
||||
- remove ReadCache
|
||||
- Index API
|
||||
- Indexes always return std::vector<TOKEN>
|
||||
- Rename OperationCursor->getMoreMptr => getMoreTokens, "returns" std::vector<TOKEN>&
|
||||
- GeoIndex hands out TRI_revision instead of Tokens
|
||||
- FulltextIndex hands out TRI_revision instead of Tokens
|
||||
- trx::InvokeOnAllElements : uses SimpleIndexLookupElements => Has to use Tokens instead?
|
||||
- remove TransactionState include from Transaction.h
|
||||
MMFiles reference removals from files:
|
||||
* arangod/V8Server/v8-query.cpp
|
||||
- StorageEngine specific IndexFactory:
|
||||
- create indexes from VPack
|
||||
- enhance/validate given VPack index definitions (set default values, reject illegal ones)
|
||||
- Implement new IndexIterator API next(callback, limit)
|
||||
- Primary
|
||||
- Hash
|
||||
- Skiplist
|
||||
- Persistent
|
||||
- Geo
|
||||
- Fulltext
|
||||
- index API
|
||||
- StorageEngine specific AQL functions
|
||||
- Register for specific function names => branches to StorageEngine impl
|
||||
- Storage Engine can implement these functions with specific code and interna
|
||||
- e.g.: Geo, Fulltext
|
||||
- Replace Usage of new callback-based IndexIterator
|
||||
- move engine-specific parts of transaction.cpp into engine
|
||||
- Logical => Physical
|
||||
- keyGenerator
|
||||
- dropIndex(p) => phys->dropIndex(p, true)
|
||||
- DML API
|
||||
- DDL API
|
||||
- StorageEngineAPI readDocument requires 2 functions:
|
||||
- void readDocument(TOKEN id, VPackBuilder& result) => Collects the document and inserts it asis into result. Does NOT clear result.
|
||||
- void readDocument(TOKEN id, std::vector<std::string> const& attributePath, VPackBuilder& result) => Collects the document and writes only the value at the given attributePath (e.g. `a.b.c`) into result. Does NOT clear result.
|
||||
in progress
|
||||
|
||||
-----------
|
||||
- check for illegal includes
|
||||
- fix includes during API conversion
|
||||
|
||||
to do
|
||||
-----
|
||||
- rename TRI_df_marker_* to something storage-engine specific
|
||||
- applyForTickRange has to be moved to MMFilesCollection (used in replication-dump)
|
||||
- add new serialization RW lock to LogicalCollection. all DML ops must acquire it in read mode, the explicit lock command must acquire it in write mode.
|
||||
- AqlValue needs a (lazy evaluated) type TOKEN that handles collection ID and TOKEN inplace.
|
||||
- slice() => looksup the value in the Database
|
||||
- We need to keep in mind the cluster. If a DBServer creates this token-type it has to be translated BEFORE the register is teleported to coordinator
|
||||
- Remove temporary wrapper LogCol::readDocument()
|
||||
- InitialySyncer.cpp knows details of StorageEngine MMFiles
|
||||
|
||||
MMFiles are known to the following files:
|
||||
* arangod/Replication/InitialSyncer.cpp
|
||||
* arangod/RestHandler/RestExportHandler.cpp
|
||||
* arangod/RestHandler/RestWalHandler.cpp
|
||||
* arangod/RestHandler/RestReplicationHandler.cpp
|
||||
* arangod/RestServer/arangod.cpp
|
||||
* arangod/StorageEngine/EngineSelectorFeature.cpp
|
||||
* arangod/Utils/CollectionExport.cpp
|
||||
* arangod/Utils/CollectionKeys.cpp
|
||||
* arangod/V8Server/v8-replication.cpp
|
||||
* arangod/V8Server/v8-collection.cpp
|
||||
* arangod/V8Server/v8-vocbase.cpp
|
||||
* arangod/VocBase/replication-dump.cpp
|
||||
* arangod/VocBase/vocbase.cpp
|
||||
|
||||
- IndexFactory needs a function to stringifyIndexes and rename idxFoo => IdxZirkusBar
|
||||
|
||||
- Implement new IndexIterator API nextExtra(callback, limit)
|
||||
- Geo
|
||||
|
||||
- OperationOptions
|
||||
- recovoryMarker
|
||||
- re-enable RocksDB storage engine (e.g arangod.cpp)
|
||||
- implement RocksDB storage engine
|
||||
|
||||
Questions
|
||||
---------
|
||||
* For GeoIndex `ignoreNull: true` and `constraint: false` are only set in Cluster mode. Is that art or can it go away?
|
||||
|
||||
OpenIssues Hacki
|
||||
----------------
|
||||
* HashIndex Lookup into a still local buffer, could be replaced by callback as well.
|
||||
* SingleServerTraverser API does NOT takeover responsibility for slice data. getMore() hopes slices to not go away
|
||||
* This API can be improved if we make better use of those callbacks.
|
||||
* ShortestPathBlock does assume that slices do not walk away.
|
||||
* EdgeCollectionInfos in ShortestPath could share one conditionBuilder.
|
Loading…
Reference in New Issue