* forward-port AQL optimizations from 3.3
* fix restrict-to-single-shard rule
* added tests for specific cases
* ModificationNodes now can know if they are restricted or not
* OptimizerRule now updates the ModificationNode instead of setting ownName on remote node.
* The DBServerEngine container now only sends a subset of snippets (those which are relevant) It is able to restrict any part of the query to a certain shard or even a list of shards
* ExecutionEngine CreateBlocks in ClusterMode now returns Result instead of throwing.
* Adapted Coordinator side to a bitter mapping of RemoteNode => QuerySnippets. This is still ongoing work.
* Fixed Coordinator enginecontainer test and finisehd implementation of EngineInfoContainerDBServer. Seems to work so far, need to adapt test to prove it.
* Adapted test for modification nodes and restrict to shard.
* restrictTo can now be de-/serialized on Modification Nodes
* Fixed Community Compile Error
* Added a test for Indexes/EnumerateCollection nodes
* EnumerateCollection and IndexNode now have options to be restricted to a single shard, opt rule not yet updated
* DBServer part of planning now checks Enumerate and IndexNodes for single shard optimization
* Added tests for simple single shard optimization on IndexNodes
* Adapted optimzierrule for SingleShard optimierung on IndexNodes
* Fixed an issue with externally restricted shard ids in combination with shard_id based optimization
* Added a test for multiple single shard optimizations on the same collection
* Removed collection/Shard duplicate check of optimize to single shard rules
* Updated Explainer to handle optimize to single shard
* Let more tests pass an optimized AQL variant
* Temporarily disabled a tests that can only be solved after some work in transaction
* remove some non-unused V8 persistents
* do not throw that many bogus assertions
* do not rely on server role being defined
* slightly better debug output for V8 context debugging
* fix collection ids in inventory response
* simplify bootstrap a bit
* slightly better error handling
* make elapsed time a queryable value
* use less memory for stub collections
* added assertions that will always make sense
* added assertions
* do not garbage-collect while waiting
* less copying of parameters
* do not show "load indexes into memory" buttons for mmfiles engine
as all indexes are in memory anyway
* when a collection is truncated via the web interface, flush the WAL and rotate all active journals
this will make close all open journals on leader and followers and make them subject to compaction opportunities
* fix invalid server id values being passed from web interface to backend
* introduce afterTruncate method for indexes
* added test case for issue #3447
* updated CHANGELOG
* don't warn about replicationFactor for system collections
* check that the queries actually use the geo index and not some other index
* properly report error in web interface
* fix some internals checks that made truncate fail for bigger collections in maintainer mode
* also run a compact() operation after a serious truncate
in order to make iteration over the truncated range much faster
when the collection is next accessed
* increase default maximum number of V8 contexts to at least 16
* properly initialize all properties
* use faster comparison
* properly detect and handle "method not allowed"
* code-style
* remove unused variable
* narrow variable scope
* handle non-existance of AuthenticationFeature
* remove dead code
* replace some C string handling with std::strings
* moved assertion to the correct place
* honor number of array members for IN operator
* slightly adjust error messages
* slighty adjust some error messages
* try to fix issue with lingering replication contexts on shutdown
* clean up heartbeat thread a little bit
* small fixes
* Make isRestore work in the cluster.
This covers sharded collections with default sharding and non-default
sharding.
* always use locally generate revision ids for storing and looking up documents
* 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
* fixed issue #3075
* update the known issues document, as some issues have already been fixed
* speed up equality lookups in unique vpack indexes
* Allow for re-use of RocksDBKey objects through transaction leaser.
* Converted all RocksDBKey variants to non-static constructors.
* fixed issue #3075
* update the known issues document, as some issues have already been fixed
* speed up equality lookups in unique vpack indexes
* fixed wording
* cleaning up several duplicate versions of Index::memory, Index::cleanup, Index::drop, integrating branch issue-383-ensure-delete
* fixing wrong column family
* reduce extractions to projections
* recycle string buffers in SocketTask
* micro optimizations for mmfiles indexes
* added special lookup function for _key
* moved function into the correct file
* speed up key buffer allocations a bit
* added noexcept specifier
* correctly name variable
* explicitly move bounds
* fix and speedup from/toPersistent functions
* reuse string from ManagedDocumentResult for multiple lookups
* use move-assign
* a bit less work for single server
* speedup AQL function HASH
* single fetch optimization
* performance optimization for the case when no documents need to be returned
* make reduce-extraction-to-projection a RocksDB-only optimizer rule
* cppcheck
* try to fix compile error on MacOS
* bug fix for MacOSX
* missing namespace (in Windows compile)
* reduce extractions to projections
* recycle string buffers in SocketTask
* micro optimizations for mmfiles indexes
* added special lookup function for _key
* moved function into the correct file
* speed up key buffer allocations a bit
* added noexcept specifier
* correctly name variable
* explicitly move bounds
* fix and speedup from/toPersistent functions
* reuse string from ManagedDocumentResult for multiple lookups
* use move-assign
* a bit less work for single server
* speedup AQL function HASH
* single fetch optimization
* performance optimization for the case when no documents need to be returned
* make reduce-extraction-to-projection a RocksDB-only optimizer rule
* Testing hash for documents
* fixing logspam error
* added base support for kHash in the edge index
* Current version of hash enabled edge index
* removed rocksdb key type byte, dynamic prefixes for hash-index
* Fixing issues with key classes
* Fixing merge conflict
* Fixing version with semi-working hash index
* fixing various issues
* Fixing hanger in EdgeIndexIterator nextExta, when _cache is disabled. Reenable cache
* Fixing geo index bounds, and fillIndexes error handling
* Adding back failure point
* Fixing RocksDBKey::vertexId
* Added version check on startup
* Fixing version check
* added one more check
* properly detect column families at startup
* Adding additional sanity checking
* Adding missing column family
* some fixes
* Turned off geoindex sync
* fixed error
* added asserts (untested)
* Adding more asserts
Squashed commit of the following:
commit bc0472d212b2efef0d7b1b8a36f2b43e8432ba86
Merge: eb47631 5f87674
Author: Michael Hackstein <michael@arangodb.com>
Date: Mon May 29 09:39:31 2017 +0200
Merge branch 'devel' of github.com:arangodb/arangodb into feature/rocks-index-warmup
commit eb476310b0ca6165be10b37b960933886c2757f5
Merge: d725f21 32149d2
Author: Michael Hackstein <michael@arangodb.com>
Date: Mon May 29 09:00:41 2017 +0200
Merge branch 'devel' of github.com:arangodb/arangodb into feature/rocks-index-warmup
commit d725f21f7d61f7c79ba31fc0338881e35f4d8f48
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 15:53:23 2017 +0200
Activated collection warmup in Cluster Mode. Added a test for collection warmup (SingleServerOnly)
commit 132bf4f9565b0dcf4ec9f84e93897b482a67ce7f
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 12:46:20 2017 +0200
Implemented client-side warmup. It can now be triggered via http and arangosh
commit 78ea449dff86118814a2f87bdb59dc16544d92b6
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 11:25:40 2017 +0200
Fixed assertion.
commit dae80f6277dde1a52eadda506858cc36e235bd55
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 11:08:46 2017 +0200
Improved the CuckooIndexEstimator computeEstimate function. It is now much better on collections with many different values
commit 7abf57876511ba369d7a577e1995d4575e98c7c8
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 11:06:43 2017 +0200
Edge index warmup will now first check if a document is stored and if not will insert it. Furthermore it resizes the cache with an estimate of how many documents will be most likely inserted
commit 890d8ad4cdfd155249f060fedd5c798b9531d556
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 11:04:47 2017 +0200
Adjusted thresholds in transactional cache. Wastly increased the amount of tries to get the lock. Lowered the fill-grade boundaries
commit 60972ab7151a3acb78e1aae4149de11d0da7aceb
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 10:45:38 2017 +0200
Added new Logtpopic CACHE that should be used to log important information regarding caches, like debug ouput on evictions / resizing, or memory-pressure resizing going on
commit 2dfacb9aef6e3fde169032514baca386786d059c
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 10:44:21 2017 +0200
Fixed an assertion in index iterator. It expected _from/_to to be cached but we modified to cache entire document
commit f05beccef65853c30eda1859a39c28ea2295bc71
Merge: 13c6abf 5c46430
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri May 26 07:56:58 2017 +0200
Merge branch 'devel' of github.com:arangodb/arangodb into feature/rocks-index-warmup
commit 13c6abfbc2ddb451a689011110411df68247435e
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed May 24 09:52:01 2017 +0200
Added a getExtra feature for the edgeIndex. It now returns the complete edge as extra (temporary). Modified the EdgeCache to cache token and edge document (temporary). Added a warmup Function to collections that is used to warmup the index caches on demand.
* 'devel' of https://github.com/arangodb/arangodb: (54 commits)
attempt to fix races in replication
grunt build
use exclusive transaction in syncer
change feature order around
dashboard
added api cluster api routes
add selection of storage engine
use some parallelism
micro optimizations
Fix truncate for geo
added assertions
remove unused include
try to fix initial sync problem
remove unnecessary includes
Finally fix the error where suddenly an array of dbservers are being called
Update queryView.js
initialize bool variable
remove debug output
removed unused private field
Wrong index number
...
* origin/feature/engine-api/edgeindex-report-as-single-index:
change mmfiles indexes to work with slightly changed API
fix rocksdb engine index reporting but break report for mmfiles engine
update error messages