* late document materialization for view draft
* MaterializeType
* asserts and removed std::function
* std::map -> std::array
* Common search ast nodes code to a separate file
* Unit tests for create and clone a node
* js tests
* tmp unfinished
* Replace variables for late materialization
* Move removing
* Removed wrong clears
* Fixed variable replacement
* removed old tests (for separate materialization)
* check if late materialization arangosearch rule is enabled
* js test. added space
* moved a function to anonym namespace
* Subquery assert
* Review improvements
* Review improvements 2
* View node state to a separate var (microoptimization)
* Fixed index assert
* alignment
* C++ unit tests
* Index late materialization draft
* Index late materialization. Refactoring.
* Index late materialization. Expansion draft.
* HashIndexMock
* Refactoring.
* Hash index mock expansion fixes
* Fix compare of attributes.
* Hash index mock. Last expansion support.
* Hash index mock. Take value for array from document, not equal key.
* Optimizations.
* Query tests
* lateMaterialized improvements
* velocypack fixes and tests for index node
* Fix after merge.
* Const expression in a condition test
* Clone tests
* More tests
* Fix for materialized view (nullptr var)
* Fixed index vars registers count planning
* javascript tests
* Fixed cluster tests
* Cluster support
* MaterializeExecutor and MaterializerExecutorInfos refactoring
* More tests
* js tests rocksdb only
* js test. Removed print()
* js testd added skiplist
* C++ unit tests for invalid json
* js test var i
* js tests == -> ===
* iFix js tests ===
* jslint ;
* int unsigned int fix
* double deletion fix
* refactoring
* Added const for collection source
* override final, added materialize namespace, fixed femove in hash index mock
* Removed expansion support. Index can contain null value in case of several object with same fields
* isNumber<>
* Optimization for single collection case
* Renaming
* refactoring
* Unit tests. Added checking documents
* !sliceIt.valid() instead of !(!=)
* Fix primary index (object instead of array)
* Edge collection test
* Windows compilation fix
* IndexExecutor getCallback optimization
* ADB_UNLIKELY
* explainer.js
* removed unsused variable in js test
* fix explainer.js
* do not use several indexes with js test
* Removed several indexes implementation
* space
* fix explainer.js
* fix explainer.js
* code alignment
* Applied review cAdded sceleton optimizer functionomments
* Added mask for rule
* Applied review cAdded sceleton optimizer functionomments
* Added mask for rule
* adding plan traversal for rule
* Rule execution block developing
* Experiment with additional block
* LIMIT node modifications
* implemented late materialization base version.
* Code cleanup
* Added check for variable usage
* Implemented serialization and cloning
* Fixed build errors
* Implemented late materialization for LimitNode
* Moved materialization to Sort Node
* Removed LimitNode modiications
* Implemented skipRows to speedup single server
* Added tests for optimizer rule
* fixed build
* Fix mac build
* Fixed mac build
* Fixed PR test run errors
* Added tmp fix for cluster test runs
* removed debug print
* Make materialization stick to last sort node. Add late materialization to explainer
* Updated optimization rule to search optimal SortNode to do materialization
* Refined optimization rules for cluster
* Added tests for SortExecutor and IResearchViewNode
* Fixed mac buid. Removed misplaced assertion.
* Fixed build
* Updated tests. Coded cleanup
* Code cleanup
* made function name for SortedExecutor match name in ConstraintSortedExecutor
* cleanup
* Fixed test run
* made scoring results stable across cluster
* Make optimize rule stop if sort node for limit node is not suitable
* Disabled constrained sort for materializing SortNode
* reverted SortNode modifications
* Implemented separate materializer node
* Fixed tests to account new materialize node
* Code cleanup
* reverted debugging change
* Fixed test jslint error and comments
* MaterializeNode renamed
* enum value renamed for materialize node
* Code cleanup
* code cleanup and optimization
* Fixed clang warning
* Applied review comments
* Out variable planning moved to materialize node
* inlined getters in ReadContex
* Added startup error for bad temporary directory setting.
If the temporary directory (--temp.path) setting is identical to the database
directory (`--database.directory`) this can eventually lead to data loss, as
temporary files may be created inside the temporary directory, causing overwrites of
existing database files/directories with the same names.
Additionally the temporary directory may be cleaned at some point, and this would lead
to an unintended cleanup of the database files/directories as well.
Now, if the database directory and temporary directory are set to the same path, there
will be a startup warning about potential data loss (though in ArangoDB 3.4 allowing to
continue the startup - in 3.5 and higher we will abort the startup).
* Added a minReplicationFactor field in Collections. It is not possible to modify it yet and noone cares for it
* Added some assertion son minReplicationFactor
* Transaction API will now reject writes as soon as minimal replication factor is NOT fulfilled
* added minReplicationFactor to the user interface, preparation for the collection api changes
* added minReplicationFactor to VocBaseCollection, RestReplicationHandler, RestCollectionHandler, ClusterMethods, ClusterInfo and ClusterCollectionCreationInfo
* added minReplicationFactor usage to tests
* TODO TEMOPORARY COMMIT FOR TESTING PLEASE REVERT ME
* minReplicationFactor now able to change via collection properties route
* fixed wrongly assert
* added minReplicationFactor to the graph management ui
* added minReplicationFactor to the gharial api
* Fixed off-by-one error in minReplicationFactor. We actually enforced one more.
* adjusted description of minReplicationFactor
* FollowerInfo Refactoring
* added gharial api graph creation tests with minimal replication factor
* proper cleanup of shell collection tests, removed lots of duplicate code, preparation for some new tests
* added collection create tests using invalid/valid names, replicationFactor and minReplicationFactor
* Debug logging
* MORE Debug logging
* Included replication fast lane
* Use correct minreplicationfactor
* modified debug logging
* Fixed compileissues
* MORE Debug logging
* MORE Debug logging
* MORE Debug logging
* MORE Debug logging
* MORE Debug logging
* MORE Debug logging
* MORE Debug logging
* Revert "MORE Debug logging"
This reverts commit dab5af28c0.
* Revert "MORE Debug logging"
This reverts commit 6134b664bd.
* Revert "MORE Debug logging"
This reverts commit 80160bdf3b.
* Revert "MORE Debug logging"
This reverts commit 06aabcdfe1.
* Removed debug output
* Added replication fast lane. Also refactored the commands as i cannot take it any more...
* Put some requests of RocksDBReplication onto CATCHUP Lane.
* Put some requests of MMFilesReplication onto CATCHUP Lane.
* Adjusted Fast and MED lane usage in Supervised scheduler
* Added changelog entry
* Added new features entry
* A new leader will now keep old followers in case of failover
* Update arangod/Cluster/ClusterCollectionCreationInfo.cpp
Co-Authored-By: Tobias Gödderz <tobias@arangodb.com>
* Fixed JSLINT
* Unified lane handling of replication handlers
* Sorry forgotten in last commit
* replaced strings with static strings
* more use of static strings
* optimized min repl description in the ui
* decr initial loop variable
* clean up of the createWithId test
* more use of static strings
* Update js/apps/system/_admin/aardvark/APP/frontend/js/views/collectionsView.js
Co-Authored-By: Tobias Gödderz <tobias@arangodb.com>
* Added some comments on condition, renamed variable as suggested in review
* Added check for min replicationFactor to be non-zero
* Added assertion
* Added function to modify min and max replication factor in one go
* added missing semicolon
* rm log devel
* Added a second information to follower info that can keep track of followers that have been in sync before a failover has taken place
* Maintenance reports previous version now to follower info. instead of lying by itself. The Follower Info now gets a failover save mode to report insync followers
* check replFactor against nr dbservers
* Add lie reporting in CURRENT
* Reverted most of my recent commits about Failover situation. The intended plan simply does not work out
* move replication checks from logical collection to rest collection handler
* added more replication tests
* Include assert only if we are not in gtest
* jslint
* set min repl factor to zero if satellite collection
* check replication attributes in v8 collection
* fixed ires tests
* fixed wrong assert
* properly check uint
* repl factor attr check
* adjusted test to be more preciese now
* Fixed race on atomics comparison
* Fixed invalid number type
* Update tests/js/common/shell/shell-cluster-collection.js
Co-Authored-By: Tobias Gödderz <tobias@arangodb.com>
* Review fixes
* More review fixes
* migrate mochaGrep into --testCase parametrizing
* fix filter forwarding for spawned arangoshs - add mocha version
* sometimes we have the string undefined to ignore
* move IResearchViewSort into separate unit
* ensure sort is propagated to IResearchLink
* update iresearch and extend some tests
* implement insertion of sorted values, store value comparator in link
* add tests for VPackComparer
* minor cleanup
* fix issue with sort definiton propagation
* propagate error message from index factory
* add integration tests for sorted indexes, single server
* initial implementation of IResearchViewMergeExecutor
* move iresearch::VPackComparer to separate translation unit
* store collection in IndexReadBuffer for IResearchViewMergeExecutor
* set primary sort from optimizer rule
* add some tests for sorted view case
* extend IResearchViewNode tests
* simplify primary sort definition
* pretty print order condition covered by arangosearch in query explanation
* fix compilation with g++-8
* address catch test failures
* fix tests
* adjust arangosearch optimizer rule to optimize sort in case of cluster
* make tests for sorted indexes work in cluster too
* fix tests
* extend js tests for sorted indices
* fix keyword in query explainer
* ensure sort-limit rule works with views
* backport ngram analyzer fix from upstream
* address jslint errors
* modify IResearchViewSort to support boolean direction specification format
* add some tests
* add tests
* add skip functionality
* extend tests
* add more catch tests
* inline some methods
* address jslint errors
* extend catch tests to reproduce the failure
* add some tests for check fullcount
* add more tests
* extend tests
* temporarily comment out broken tests
* extend js tests
* address review comments
* address jslint errors
* update iresearch