* add initial implementation of scatter view rule and node
* add tests for `IResearchViewNode` and `IResearchViewScatterNode`
* add missing check
* modify IResearch execution nodes to use references instead of pointers
* use view id in searialized `ExecutionNode` representation instead of the name
* add cluster mode stubs and checks
* very first attempt to distribute IResearchViewNode
* further implementation of cluster-wide arangosearch views
* fix invalid json format
* add tests for coordinator iresearch view
* allow to retrieve a list of existing views on a coordinator
* more tests for coordinator iresearch view
* some fixes to enable query explanation
* remove Collection dependency from RemoteNode
* remove unnecessary remote ArangoSearch view scatter
* fix explanation appearance
* add some assertions
* minor fixes
* implement IResearchViewCoordinator::updateProperties
* fix view DDL issues
* handle link modifications in DDL operations
* add coordinator implementation of iresearch view links
* fix tests
* further coordinator based view DDL implementation
* further IResearchViewCoordinator implementation
* add initial implementation of AgencyMock
* fix some tests
* code cleanup
* extend test + some fixes
* more tests for IResearchViewCoordinator
* fix tests for IResearchLinkCoordinator
* some fixes after merge
* fix tests
* remove declaration of nonexistent (previously removed) method
* some fixes after review
* remove string duplication
* more tests and fixes
* more fixes and tests
* more tests
* one more test
* fix 'use-after-free' asan error
* fix non-enterprise tests issues
* fix infinite loop by setting _lastSyncTime within runBackgroundJob(). add code to make agency callback ignore _lastSyncTime limit.
* create change notes for this PR and previous PR 5114
* Initial low level interface for thread crash reporting (and management).
* Add a member version of isClusterRole()
* isolate heartbeat thread creation to new StartHeartbeatThread(). create heartbeat thread even if not a cluster or if an agent.
* update runDBServer() and runCoordinator() to shutdown more quickly by polling isStopping() at additional locations.
* copying updates from different branch / PR
* basic thread crash logging. Not yet tied into Agency arangod or have any specific threads posting crashes
* make Supervision thread a CriticalThread
* sandwich CriticalThread between Thread and other classes to create long term, repeating thread crash reporting.
* restore code lost upon branch update relating to new startHeartbeatThread() function
* add CriticalThread.cpp to build
* add new runAgentServer() function to loop for Agents. Make Heartbeat thread derive from CriticalThread.
* remove debug line
* shutdown quicker on db server and coordinator heartbeat threads
* Adjust the new condition variable usage to follow normal coding patterns. Probably was ok. But why take the chance. And simplify future maintenance.
* Supervision goes to Maintenance mode, when /arango/Supervision/Maintenance exists
* coordinator route stands
* stop updates in transient, when supervision off
* Started Implementing the ServerBasedlocking. There now is a container that can contain multiple query snippets. It now has to setup the necessary calls to the Servers
* Added backwards linking of QueryEngines, sth. DBServers can contact their Coordinators.
* Added LogTopic AQL
* Made AccessMode::Type Hashable
* Created a Mapping Server => LockLevel => Shard and createad a JSON object containing the Lock information for a complete AQL query per server
* Added code to build coordinator engines
* Finished with first draft of Coordinator-side of new DBServer based locking.
* Added a _api/aql/setup route that creates and locks all snippets/collections for one DBServer in a single go
* Fixed some Coordinator parts
* Index node now gracefully reports if it could not find it's collection when created from vpack. Otherwise it just hardly crashed...
* Modified the Coordinator Snippet collector to be able to handle subqueries properly.
* Started adding GraphNode handling. WIP. Need to deploy engines properly. Coordinator crashes on Graph tests
* Fixed compiler errors
* WIP: EngineInfoContainer
* Separated the EngineInfoContainers for Coordinator and DBServer into different files. They diverged more than anticipated
* Added forgotten files. THe DBServer container now creates the TraverserEngine Mapping and moves it into the Infos. They are not keeping it yet and need to add it to the message as well.
* The DBServer engine infos now persist the TraverserEngine infos. Need to add them to messages though.
* The new aql exec-engine now sends out traverserEngines as well
* Formatting and adding DEBUG level output
* Made the RestAQLHandler aware of the TraverserEngineRegistry. Also created the engines now. Return format changed server-side coordinator side needs fix.
* Adapted the Coordinator side for the DBServer based Shard Locking
* The DBServer based Locking now honors restrictions to certain shards
* Fixed a strange double lock bug in the new AQL Server based locking technique. Add some DEBUG output
* Fixed usage of MAINTAINERMODE macro. The assertion was never active
* Added TestCase for ContainerCoordinatorTest to cmake
* Added -DTEST_VIRTUAL to CMAKE. This is used to define virtual functions for mocking ONLY on test-builds.
* Fixed usage of ENABLE_MAINTAINER_MODE ifdef. CLANG format
* On non-enterprise builds ENTERPRISE_VERT defaults to TEST_VIRTUAL => virtual in test else non-virtual
* Added TEST_VIRTUAL to ExecutionEngine, Query and QueryRegistry
* Added first testcase for EngineInfoContainerCoordinator not yet ready.
* Mode CreateBlock a member function of engine, we have the engine in our hands anyways no need to make it static. Included some more TEST_VIRTUAL functions.
* Fixed clang/MacOs compile error. Added some more TEST_VIRTUAL declarations
* Finally fixed the first buildEngines UnitTest \o/
* Added a unit-test for backward linking of dependencies in CoordinatorPlanner
* Added multi-snippet test for EngineInfoContainerCoordinator
* Removed QueryRegistry.h from central header files and replaced by a forward declartion.
* Added a createBlocks method on the ExecutionEngine. It should be responsible to create all those blocks at once. Adapted the UnitTests as well. Not included Tests for the new createBlocks functionality. Need to mock the options feature first
* Added another test that Coordinator Snippets of queries can be created correctly
* Fixed Coordinator-site cleanup of QueryRegistry, if any of the query creations fails with error, incl UnitTest.
* Added first test for RestAqlHandler::setup. It does only test the setup and gives prepartion for real testing.
* Added a assertion of http return code. Still no creation of queries is tested. Requires a huge amount of mocking.
* fix some deadlocks found by evil lock manager (tm)
* fix duplicate lock
* fix indentation
* ensure proper lock dependencies
* fix lock acquisition
* removed useless comment
* do not lock twice
* create either a V8 transaction context or a standalone transaction context, depending on if we are called from within V8 or not
* AQL micro optimizations
* use explicit constructor
* only use V8DealerFeature's ConditionLocker for acquiring a free V8 context
entering and exiting the selected context is then done later on without having to hold the ConditionLocker
* remove some recursive locks
* Disable custom deadlock detection when Thread Sanitizer is enabled
* Changing ifdef's
* grr
* broke gcc
* Using atomic for ApplicationServer::_server
* fix premature unlock
* add some asserts
* honor collection locking in cluster
* yet one more lock fix
* removed assertion
* Allow the clustercomm to send nolock headers on count. This is used form within AQL
* IsLocked on transactions will now always yield true IF LOCK_NEVER is set. We simply assume someone else holds the lock for us. Also LOCK_NEVER is now set on collection/count if noLock header is send.
* Moved the flag if collections need to be locked into the TraverserEngines.
* Added enterprise-satellite hooks in EngineInfoContainerDBServer
* Removed now obsolete code
* Replaced throwing of Exception by an ResultObject
* Added some more tests and moved adding snippet to query engine more to the outside.
* Added the AQL result type
* Make the branch compile again
* Register WITH collections for Graphs in the new Collector.
* Fixed test code for failing query clone. Idea was to once clone successfully and second time to fail, we verify that first clone is cleaned up properly. However test failed on first clone...
* Removed a double builderClose
* Added Changelog entry
* Removed empty if
* Removed obsolete todo
* Properly initialize the AqlResult with nullptr on error case
* Updated comment
* Simplified Assertion
* Removed debug output object...
* Added additional catch case for std::exception to get some more error info
* Clarified evaluation order for move case
* Added Explicit
* Fixed cleanup of Coordinator if Registry fails to insert query.
* Allow to use other locks than Read/Write for AQL collections. Not yet in API.
* Updated Comments for other Locks on DBSide. Adapted Destruction CatchTests
* Fixed double builderClose and removed unnecessary double commits
* Added a comment to clarify the state
* Moved error output to trace. Leftover from debugging
* Added some tests for complex subquery patterns
* Added a 'fireAndForgetRequests' methods to cluster comm which allows to send out a bunch of messages but does not wait for their results
* Properly cleanup leftovers of queries if the instantiation step already failed
* Added code comment for fireAndForget
* Added indexes to subquery test to make the plan a bit easier
* The cleanup on DBServerEngines in error case now also cleans up traverser engines.
* Removed unnecessary includes
* Removed debug logging
* Fixed hidden merge conflict
* fixed the missed changes to plan after agency callback is registred for create collection
* Force check in timeout case.
* Sort out RestAgencyHandler behaviour for inquire.
* Take "ongoing" stuff out of AgencyComm.
* Cherry Picking LDAP changes
* Adding missing merges
* Fixing remaining mentions of FeatureCacheFeature
* Fix jslint
* Fixing some failed tests
* Fixing cluster authentication issue, red tests
* Fixing ldap testsuite, adding trace logging
* Fixint ldap tesuite setup and LDAP recognition
(cherry picked from commit 686d28a779)
* Fixing wrong assert
* Adding changelog entry, making requested changes from code review
* Fixing dump_authentication, fix typos
* improvements found during code review
* oops
* more use of sessionstorage
* fix tests
* Fixing broken handling, disallowing adding of local users when disabled
* Fixing testInvalidGrants
* Removing undefined auth level externally
* Fixing previous commit
* added tests for ldap search mode
* intentionally removed `after` methods from tests
because they are executed before the tests start
no cleanup is performed right now after the authentication tests
however, a cleanup is done at start of every test
* ldap tests all modes
* forward port changes from 3.3
* added generated files
* forward port missing changes for web UI
* added generated files
* added generated files
* let's not miss failedserver removal
* remove resetting of FailedServers in test code
* Only call abortRequestsToFailedServers at most every 3 seconds.
* UI: document/edge editor now remembering their modes (e.g. code or tree)
* changed shardDistribution api behaviour, added PUT route to only fetch collection based shard distribution
* ui: optimized shards view, added missing cleanup function in nodes view
* broken test
* shard distribution tests not fit the new api behaviour
* variables as reference
* CHANGELOG
* add parameter to increase timeouts per 4096 size of total request package
* remove log output
* change initial timeout math from integer to double ... avoids reviewer confusion.
* fix some deadlocks found by evil lock manager (tm)
* fix duplicate lock
* fix indentation
* ensure proper lock dependencies
* fix lock acquisition
* removed useless comment
* do not lock twice
* create either a V8 transaction context or a standalone transaction context, depending on if we are called from within V8 or not
* AQL micro optimizations
* use explicit constructor
* only use V8DealerFeature's ConditionLocker for acquiring a free V8 context
entering and exiting the selected context is then done later on without having to hold the ConditionLocker
* remove some recursive locks
* Disable custom deadlock detection when Thread Sanitizer is enabled
* Changing ifdef's
* grr
* broke gcc
* Using atomic for ApplicationServer::_server
* fix premature unlock
* add some asserts
* honor collection locking in cluster
* yet one more lock fix
* removed assertion
* some more bugfixes
* Fixing assert
(cherry picked from commit 1155df173bfb67303077fbe04ee8d909517bfd21)
* fix MSVC compile warning
* tidy up statistics
* remove undocumented db.__save V8 method, previously used for the statistics gathering from JavaScript
* Removed unused active(...) method in Agent
* Inception's restart from persistence allows peer with empty active RAFT list to join
* Agency's UUID is persisted outside of the database comparable to coordinator and db server action.
* Publicized Methods to UUID stuff in ServerState
* Inception method documentation
* added --agency.disaster-recovery-id to allow for specification of known former agency id. this is a very dangerous option potentially.
* Delete a unused methods.
* separate _id and _recoveryId
* populating active list with entire pool
* Improve logging.
* reject gossip from unknown agent, if pool is complete
* Switching from ttl to supervision based failover mechanism
* Allowing canceling of ongoing actions
* refactored asyncjobmanager
* refactoring some code
* adding read-only flag
* Fixing some bugs
* Fixing tests
* Canceling ongoing operations
* removing some unused code + some asserts
* catching some exceptions to reduce log pollution, removing unnecessary code, removing tests for _changeMode
* fixing "createsANewDatabaseWithAnInvalidUser"
* Current work
* proper ifs
* Migrate resthandler to c++ and implement mode
* readonly server mode spec test
* Add changelog
* change code so it expects a full object and not just a string
* Fix jslint
* Added a more sophisticated test for shardDistribution format
* Updated shard distribution test to use request instead of download
* Added a cxx reporter for the shard distribuation. WIP
* Added some virtual functions/classes for Mocking
* Added a unittest for the new CXX ShardDistribution Reporter.
* The ShardDsitributionReporter now reports Plan and Current correctly. However it does not dare to find a good total/current value and just returns a default. Hence these tests are still red
* Shard distribution now uses the cxx variant
* The ShardDistribution reporter now tries to execute count on the shards
* Updated changelog
* Added error case tests. If the servers time out the mechanism will stop bothering after two seconds and just report default values.
* 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
* Switching from ttl to supervision based failover mechanism
* Allowing canceling of ongoing actions
* refactored asyncjobmanager
* refactoring some code
* adding read-only flag
* catching some exceptions to reduce log pollution, removing unnecessary code, removing tests for _changeMode
* fixing "createsANewDatabaseWithAnInvalidUser"
* auth = off does not longer make everyone superuser
* Fixing cluster_sync and maybe resilience
* 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
* intermediate commit
* Refactoring the ExecContext
* Fixing authentication
* Added start script
* some fixes
* fixed access to nullptr
* some c++
* fixed misleading message
* Made DatabaseGuard movable. Also adapted map insertions to _vocbase in Syncer classes, which failed to compile under older GCC versions
* added support for global flag to replication handler
* Started Refactoring in replication-static
* Fixing syncer code
* store applier configuration
* Static replication tests now test replication in a non system Database
* added flags to replication feature
* Adding some extra checks
* Fixing issue with rocksdb rest replication handler
* replication static now runs _system and otherdatabase replication tests.
* Fixing crash on startup
* Replication_sync now tests _system as well as other Database
* Fixing up heartbeat thread, adding global flag to rest handler
* Fixing wrong assert
* some cleanup, probably some tests are broken
* Made non-system db version of replication-ongoing tests
* fix determine-open-transaction
* Fixed ongoing tests. And added a test where we drop a database on slave while replication is still ongoing
* test fixes
* Activated ongoing other db tests. Also added a test that drops the DB on master, while the slave is still syncing.
* some better error reporting
* gradually switch to Result
* createCollection -> create
* re-activate using of collection ids for now
* enable auto-start
* Fixed create collection in replication ongoing test
* Added first draft of a test for global replication
* move to Result
* use system database for global applier
* improved error reporting
* fixed invalid URLs
* add test case filter
* load existing global applier configuration
* improve error reporting
* Added further tests for global replication
* Fixed global replication test, it now properly waits for replication. Timeouts after 10 seconds.
* Removed erronious assertion
* improve error reporting
* intermediate commit
* Added a test-case for global replication where the Master already has some data and the slave is clean
* fix deletion of replication contexts
* Fixed JSLint
* compiling code
* fix typo
* do not fail for global applier when no database is configured
* intermediate commit
* syncer supports switch for 3.3 / 3.2
* fixed errors
* Fixing some replication bugs
* Fixing some assertions
* Fixed missing commit markers
* Fixing assertion on database drop
* Attempt to fix deadlock in applier and assertion
* Fixing some stupid things
* Support for collection parameter
* Acidentally turned off some tests
* Grrr
* Fixing wrong method call
* Fixed startscript
* Fixed assignmet instead of equality check typo
* Added a test far interrupted replication. For now it justs tests basics on _system database.
* Improved index tests on replication.
* properly initialize variable
* fixed some replication problems
* MMFiles wal access support
* fix replication issues
* Started mmfiles replication support
* fixing a bug
* Fixing an issue
* fixing some mmfiles stuff
* fix test
* reload users
* prevent pure virtual method call
* intermediate commit
* Making from exclusive
* do not call getMasterState if child syncer
* some reformatting
* Adding global support for handleCommandSync
* Fixing assertion
* removing some debug logs
* Changing return codes
* Fixing some issues in the rest handler
* Make replication less susceptible to errors
* remove some debug output
* return last log tick
* remove waits from tests
* fix two tests
* changing header for open-transactions call
* some fixes
* fix test
* invalidate cached databases
* merging request and execcontext
* try to fix assertion error
* renamed method
* fix compile warning
* small changes
* Always use execcontext
* Fixing an assert
* fix replication issues
* try to fix collection lookups
* try to fix master/slave start
* Changing comments in heartbeat thread
* fix wrong signature of READ_LOCKER_EVENTUAL
* log server role in testing mode
* Fixed authentication, removed execContext in favor of request context
* Adding cluster rest api
* Fixing cluster rest handler
* Fixing cluster callback
* Some refactoring
* Queue creation is not a single operation
* Allowed for leader redirects
* Setting start of batch
* Disabling 2.8 compat tests
* fix start/stop bugs
* jslint
* various little changes
* add flag for exposing jwt
* indentation
* cleanup
* Some changed to guid
* fixing tcp to http, vst
* changed endpoint header
* small fixes
* Reorder servers by health status
* Higher timeout
* Changing error messages
* update the fromTick when fetching multiple batches from the coordinator
* more debug info
* Reducing copy pasted code
* change uid generation
* reducing logspam
* more exceptions for redirects
* more exceptions
* attempt to fix uniqids in cluster
* centralize printing of HTTP errors in replication
* debug output
* fix messages for authentication
* cleanup
* removing --cluster.my-id, --cluster.my-local-info
* Added leadership race to bootstrap, determine foxxmaster on boostrap, removing obsolete code
* improve error reporting in RestAqlHandler
* Changing heartbeat thread, fixing cluster_sync
* some more debug output
* added master
* attempt to make tests more deterministic
* added logging about indexes
* added some safety checks to the logger
* slighty better error messages
* fix location header for SSL
* fix error message
* try to make tests more deterministic
* change error code from TRI_ERROR_INTERNAL (which we want to avoid) to TRI_ERROR_FAILED
* Fixing broken webinterface access
* reverting groovy change
* Fixing read-only internal users
* Using superuser rights for dashboard now
* Adding mode field to _admin/server/role
* added mode TRYAGAIN
* remove inventory lock (does not seem necessary here)
* remove invalid assertion
* fixing agency bugs
* Removing debug output
* return proper errors in case of "method not allowed"
* Fixed up some info messages
* jslint
* improve error reporting in RestAqlHandler
* added logging about indexes
* added some safety checks to the logger
* slighty better error messages
* fix location header for SSL
* fix error message
* try to make tests more deterministic
* change error code from TRI_ERROR_INTERNAL (which we want to avoid) to TRI_ERROR_FAILED
* don't add items into the array if we have an empty list member.
* we mustn't display 100% here, since its a rounding error. If, the checkmark would be set.
* rather use string cutting to round so we don't get into the 100% trap.
* 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
* Fixed ModifyDocument on coordinator. It uses the internally optimized function to extract _key values, which fails on Compact objects
* do not crash server when passing invalid document key type
* 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
* Get rid of a compiler warning in community edition.
* Teach /_api/replication/clusterInventory to report Plan/Version and readiness.
This is first implemented in the ClusterInfo library.
Then the clusterInventory code uses it and checks readiness.
Readiness of a collection means that it is created and all shards
and all replications have been created and are in sync.
* added debugging methods
* try to fix invalid access in case of error
* remove unused members
* bugfixes and comments
* all agency fixes in
* merge bug
* partially unguarded Agent::lead fixed
* all agency fixes in
* added nrBlocked to thread startup eval
* added nrBlocked to thread startup eval
* recombination of cases in State::get
* some maps replaced with unordered_maps
* optimized maps some
* added V8 context lifetime control options `--javascript.v8-contexts-max-invocations` and `--javascript.v8-contexts-max-age`
* make thread scheduling take into account most of the tasks dispatched via the io service
* Added virtual attributes for enterprise on Methods.cpp
* Working no access collections
* align a comment
* Documentation and test fix
* fixing community build
* added unique id to cluster, added access to Health
* added agents to health api
* added agents to health api
* added agents to health api
* transaction information for api
* agents listed like other servers
* missing line through merge conflict
* Take out 503 timeouts altogether.
* Overhaul of AgencyComm::sendWithFailover loop.
* Let performRequests optionally ignore 404 coll not found.
* Fix error message "database not found" when AgencyComm failed.
* Add log entries in Agency if locks are acquired too slowly.
* Reexecute the javascript cluster sync stuff even if there was no plan/current change...So failed sync jobs can retry later...
* Cover callbacks in Communicator by lock. This fixes https://github.com/arangodb/planning/issues/370
* Put in delay in waiting for leader in agency test.
* Schmutz logging to heartbeat topic.
* Add more lock time diagnostic in agent.
* Switch on agencycomm tracing in coordinator.
* working documents rest handler
* fixed cluster tests
* Consolidating database APIs
* clang-format
* Fixing issue with user creation through db._createDatabase
* replaced and refactored api-index and index api
* fixed cluster
* renaming some files
* added user methods
* removed files intended for later
* Fixed CC build
* Fixed method signature
* Fixing shell_server, shell_client tests
* add warmup documentation - #188
* warn when relinking build directory
* add warmup documentation - #188
* warn when relinking build directory
* Renamed warmup to loadIndexesInMemory which is a better name for the current implementation of this feature.
* Adapted WebUI to state 'load indexes in memory' instead of 'warmup'
* Added loadIndexesInMemory documentation.
* Renamed loadIndexesInMemory => loadIndexesIntoMemory
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.
* Improve Foxx cluster resilience
Fixes#2083Fixes#2384Fixes#2408
Addresses #1892
* Port old Foxx API
* Implement single-file services
* Add console.errorStack/warnStack/infoStack helpers
* Simplify serviceInfo validation
* Extract github/upload logic into Aardvark and old FM API
* Move generator logic into Aardvark
* Move zip/js buffer logic into FM core
* Add Foxxmanager tests
* Send empty response when no README
* Disambiguate script arg format
Historically we allow passing an array of positional arguments or an arbitrary first argument.
This is surprising behaviour, so we should just always treat the value as a first argument.
* Rebuild bundle in development mode
* Nicer HTTP docs formatting
* Create Foxx HTTP docs
* Simplify service upload handling
* Remove inline swagger docs
* Implement public download route
* Consistency
* Rebuild aardvark
* Move bundle route into /_api/foxx/_local
* Rebuild Swagger API docs
* Add changes to CHANGELOG
* More docs
commit 19a7210119cc284af64251b202f690ab62bf615c
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 23:20:10 2017 +0200
Allow access to /_api/user/ without database check in VST as in HTTP.
This is a try to fix#2465
commit f973c1335652540174bf6b78df42290bded357da
Merge: 30bdc4c 365de45
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 21:32:15 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 30bdc4ca38e028d58cebea8268683d9f94e87ad7
Merge: 14acaea 086f6a2
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 14:52:23 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 14acaea8cb5fff2c1c8c27eee32294bfd612f629
Merge: 5bd0e79 fb088d3
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:40:29 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 5bd0e79ab053447f94f2fd959a33b1e15302b6a8
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:36:23 2017 +0200
Fix bug in authentication in VST
commit 9a999ce5e629aee5816a4f61b194b086d11fd169
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:24:35 2017 +0200
Open up endpoints /_open/* in VST without being authenticated
commit 32f62db42af6d5bfc24214ebb4ca7c1fb473b55e
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:11:31 2017 +0200
Simplify logic by not using boost::optional.
commit 925ce2f7b890c6f14205fd3e98553939d89bec61
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:11:20 2017 +0200
Add JWT case for authentication for VST
commit f1d7f67a9fc20c91ca000e9a4dad91e0f50f1652
Merge: 040ace3 7a9ccc9
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 08:58:51 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 040ace3e9dce47ddea5f51d29f0153a70d257c9e
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 08:23:16 2017 +0200
Write out chunk buffer using little endian uints
commit 66ad4c0e8d3bc94091664505986b00e7cff39f2f
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 08:12:38 2017 +0200
Move maxChunkSize query to constructor, remove dead code
commit f7b4c26cc09c6d512362340c6bf6061bbaae61a9
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 17:57:14 2017 +0200
Do not take protocolVersion from request for VST.
commit c76d6685f9507701715abf882f0ac0e192ead59f
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:20:58 2017 +0200
Remove dead code for compression which did never work well.
commit b823765b7c041dc5d143f7ab2e13d92f5f42d3eb
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:09:53 2017 +0200
Fix renaming to make compiler happy.
commit b327830012d146f4f4e2d0f0467dab351fbd3bd0
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:07:36 2017 +0200
Rename _defaultPortVpp to _defaultPortVst.
commit 5eb98a9e64d702476e8ec098b7506b1a63145d64
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:06:28 2017 +0200
Rename header guards VPP -> VST.
commit a3e96be26d49d6151898d8d757ede6225ac6abd2
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:05:55 2017 +0200
Rename VppRequest and VppResponse files to Vst.
commit 1d5f6f196490c3cf9312be5927b967b4abc03b67
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:04:19 2017 +0200
Change names of header guards VPP -> VST.
commit f004b25fbef75050b34bcd4eae4eb17b8b467230
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:03:19 2017 +0200
Rename files VppNetwork.h and VstMessage.h
commit c04d3aec19e8f0a8a3b90cd48e7736bff037359d
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 12:59:15 2017 +0200
Implement correct chunk header for sending out VelocyStream 1.1 messages.
commit 73aeedfbbef24d5929c44bd26c16343480514270
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 01:11:23 2017 +0200
A lot more renaming VPP -> VST.
commit 2acedc77f16a82251bc4f9e39526184e2a6f0dec
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:49:20 2017 +0200
Rename header guard.
commit 2ade43946aa5ea0048dab81eed5ffd931ce35ea8
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:48:01 2017 +0200
Rename files VppCommTask.* to VstCommTask.*
commit 0ffcda02a51cbad35e5ec06117d397aac37323cd
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:46:31 2017 +0200
Rename class VppCommTask to VstCommTask.
commit 9478c6c56c995b014b7a14408544b76fa676a317
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:30:47 2017 +0200
Rename protocol versions to VST in ProtocolVersion enum.
commit 0b69b7add6d7b5155ac71b8257def282ab4a1637
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:29:29 2017 +0200
Recognize incoming chunk headers in VST/1.1 format.
commit f40173c4fc6dc48613ae67ac3fd810d002c9b6cd
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:11:54 2017 +0200
Recognise and remember VST/1.0 and VST/1.1 protocol versions.
commit 29c798dc1af2d650c41eb9ed06f635786faf10f6
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:11:23 2017 +0200
Create protocol version VST/1.1 and disable vst+ prefix for endpoints.
* 'devel' of https://github.com/arangodb/arangodb:
Cluster: expose body as V8 buffer in asyncRequest
Cluster: expose getFoxxmaster in V8
make rspec backtrace more compact
* 'engine-api' of https://github.com/arangodb/arangodb: (46 commits)
Merged RocksDBPathBasedIndex into RocksDBVPackIndex.
fix handling of externals
fix toArray()
fix returning documents
Added hash-, skip list, persistent indexes
harmonize filtering - filter on full filename.
mini modifications
standardize starting of servers for replication tests
Edge index compliant with design doc
another fix for #2404
Moved „removeLargeRange“ method to commons
Added length byte to IndexValue keys.
fixed issue #2404
Added drop to primary index
Added drop() to indexes
Fixes a coordinator crash in Clustered Traversal. In case of failover during query planning.
Fixed edge index
Expand on CORS documentation
Let ArangoDB handle the allow-credentials header
make the authentication tests run on directories
...
commit 873bc5950028248bf209d0c53fc9eb93938e3610
Merge: 8e4457a 3487097
Author: Michael Hackstein <michael@arangodb.com>
Date: Mon Mar 27 14:00:27 2017 +0200
Merge branch 'devel' of github.com:arangodb/arangodb into devel-feature/traversal-cache
commit 8e4457a96754bea3437e8d44c0ef9db2366ee86d
Author: Michael Hackstein <michael@arangodb.com>
Date: Mon Mar 27 13:59:44 2017 +0200
Removed old VPackSlice based getVertex API in traversers.
commit 2e0716eeeec1ec56b96571a18074539f5e27cb40
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri Mar 24 09:09:02 2017 +0100
Fixed logic error in SingleServerEdgeCursor readAll. The cursorId was not propageted properly, which cased filter-evaluations to fail
commit cea85c2ac1163ed0a989c492b8039ed4f7622325
Merge: 538f216 45a4fac
Author: Michael Hackstein <michael@arangodb.com>
Date: Fri Mar 24 08:17:31 2017 +0100
Merge branch 'devel' of github.com:arangodb/arangodb into devel-feature/traversal-cache
commit 538f216cbefcdfb4d06fe16a42f223cecae8598b
Merge: 5f4afee 8bfcb49
Author: Simon Grätzer <simon@graetzer.org>
Date: Thu Mar 23 16:33:44 2017 +0100
Merge branch 'devel-feature/traversal-cache' of https://github.com/arangodb/arangodb into devel-feature/traversal-cache
commit 5f4afee54094ea6d2a0cfec1abfb75451f228a23
Author: Simon Grätzer <simon@graetzer.org>
Date: Thu Mar 23 16:33:38 2017 +0100
VertexGetter StringRef methods
commit 8bfcb490d7a907ebd7dcc9e6f38a8d29baa7c7e5
Author: Michael Hackstein <michael@arangodb.com>
Date: Thu Mar 23 16:32:38 2017 +0100
Fixed AqlValues created by traverser-cache. They are now not using externals anymore which cased everything to crash
commit 614cdedb7e30e35f65f289b310c38b2585eb03e4
Merge: 773b0a5 416777b
Author: Michael Hackstein <michael@arangodb.com>
Date: Thu Mar 23 12:52:19 2017 +0100
Merge branch 'devel-feature/traversal-cache' of github.com:arangodb/arangodb into devel-feature/traversal-cache
This state is still red
commit 773b0a5e51f87875fa9bf1440dd002b2e1fcfd2a
Author: Michael Hackstein <michael@arangodb.com>
Date: Thu Mar 23 12:48:53 2017 +0100
Added Implementation or readAll in Cluster EdgeCursor. This commit is still red.
commit 82ebbd6ec84918d43bbc64174bc251efa548a4de
Merge: e52b210 35dffc4
Author: Michael Hackstein <michael@arangodb.com>
Date: Thu Mar 23 11:37:31 2017 +0100
Merge branch 'devel-feature/traversal-cache' of github.com:arangodb/arangodb into devel-feature/traversal-cache
This commit is not green.
commit 416777b60a8a0c741d11e9c654745866d0dfa15d
Author: Simon Grätzer <simon@graetzer.org>
Date: Thu Mar 23 11:25:35 2017 +0100
Fixed errornous ClusterEdgeCursor implementation of `readAll
commit e52b21025a5f56e2cfc03e3c129da83793f19846
Author: Michael Hackstein <michael@arangodb.com>
Date: Thu Mar 23 11:01:17 2017 +0100
Fixed API for Traversals: All functions now use StringRefs to identify vertices and edges which are presisted within the traverser-cache.
commit 35dffc439c156366b1110c6770c1565021934632
Author: Simon Grätzer <simon@graetzer.org>
Date: Wed Mar 22 20:26:41 2017 +0100
Fixed a few cluster issues
commit 73cf4fe41c363f6c034a1daeacee1630d7e827a5
Author: Simon Grätzer <simon@graetzer.org>
Date: Wed Mar 22 17:26:12 2017 +0100
Fixed EdgeCursor bug
commit 2f7329b4e9711740b423cf2963c6cf3f880c4bdf
Merge: bb9b129 8e5edf5
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed Mar 22 14:32:07 2017 +0100
Merge branch 'devel-feature/traversal-cache' of github.com:arangodb/arangodb into devel-feature/traversal-cache
commit 8e5edf5fbe93f34d3340099619baa9a56a738887
Author: Simon Grätzer <simon@graetzer.org>
Date: Wed Mar 22 14:09:43 2017 +0100
Fixing compile errors
commit bb9b1294c9ff91f62bc27775a4c7a69c5daca2fd
Merge: 048a4c6 8e51e3b
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed Mar 22 11:39:17 2017 +0100
Merge branch 'devel' of github.com:arangodb/arangodb into devel-feature/traversal-cache
commit 048a4c65e11d6fd9cb25a58ee97ed756a419a067
Merge: 693607e c6b177d
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed Mar 22 11:34:57 2017 +0100
Solved merge conflicts. Build is still red.
commit c6b177dfc348df0f49f07cd67e83b873871fe6c5
Author: Simon Grätzer <simon@graetzer.org>
Date: Tue Mar 21 23:04:28 2017 +0100
Fixed off by one error, and crash
commit 5dbc9eb58f1d21e5a530806d7ad7e52058234b83
Merge: 463e352 db8c255
Author: Simon Grätzer <simon@graetzer.org>
Date: Tue Mar 21 17:46:01 2017 +0100
Merge branch 'devel-feature/traversal-cache' of https://github.com/arangodb/arangodb into devel-feature/traversal-cache
# Conflicts:
# arangod/Graph/BreadthFirstEnumerator.cpp
commit 463e3520636c19ae7a7c1d445099f336c5bde31e
Merge: 4e75f29 b8cabbe
Author: Simon Grätzer <simon@graetzer.org>
Date: Tue Mar 21 17:00:17 2017 +0100
Merge branch 'devel-feature/traversal-cache' of https://github.com/arangodb/arangodb into devel-feature/traversal-cache
# Conflicts:
# arangod/Graph/BreadthFirstEnumerator.cpp
commit 693607ea92ab3116a628c08c59a983a6fdf8b5f4
Author: Michael Hackstein <michael@arangodb.com>
Date: Tue Mar 21 16:26:57 2017 +0100
Moved specialized NeighborsEnumerator into its own files.
commit db8c25587ebcdeff8b32d08cf2d97d723bf2b3fe
Author: Michael Hackstein <michael@arangodb.com>
Date: Tue Mar 21 15:16:39 2017 +0100
Replaced SingleServerBreadthFirst with using Callbacks in readAll method of EdgeCursor
commit 4e75f29de95edeea35573b128a0a13e04c9e65d2
Merge: 8716936 6de86c5
Author: Simon Grätzer <simon@graetzer.org>
Date: Tue Mar 21 14:32:12 2017 +0100
Merge branch 'devel-feature/traversal-cache' of https://github.com/arangodb/arangodb into devel-feature/traversal-cache
commit b8cabbedebb16c09c8168ec8b5a4499e98c705f4
Author: Michael Hackstein <michael@arangodb.com>
Date: Tue Mar 21 11:17:23 2017 +0100
Removed _enumertedPath from BreadthFirstEnumerator. Less string copying expected now.
commit 8716936bd480f4b7c85ece6fc1a51335f1942258
Author: Simon Grätzer <simon@graetzer.org>
Date: Tue Mar 21 11:05:04 2017 +0100
Traverser: changed method definitions
commit 14af02fbc08b7e2ed6b0cbb918ff509ffaef76bf
Author: Michael Hackstein <michael@arangodb.com>
Date: Tue Mar 21 10:45:13 2017 +0100
Removed usage of _enumeratedPath in lastEdge/Vertex to AQL. Goal is to delete this struct in the class, as it does unneccessary copies
commit 06a20ab0549d97b47eda98d3428e3390619ca5ec
Author: Simon Grätzer <simon@graetzer.org>
Date: Tue Mar 21 10:39:21 2017 +0100
Intermediate changes
commit 3a9a5f7c7ad186c669c3986f6f89c5a26b835ee0
Author: Michael Hackstein <michael@arangodb.com>
Date: Tue Mar 21 10:34:43 2017 +0100
Logic of BreadthFirstEnumerator now points to the last path returned instead of the next path to return. This will allow to get rid of enumeratedPath in there.
commit 6de86c548220a3ad21c53fb1de691070774130ec
Author: Michael Hackstein <michael@arangodb.com>
Date: Tue Mar 21 10:17:25 2017 +0100
Extracted BreadthFirstEnumerator out of PathEnumerator files. Only moving of code.
commit acd1d9eba5d7ea23e0d6beab831a42dc61a385a5
Merge: a99ad3c 1ab8c44
Author: Michael Hackstein <michael@arangodb.com>
Date: Mon Mar 20 13:13:16 2017 +0100
Merge branch 'devel' of github.com:arangodb/arangodb into devel-feature/traversal-cache
commit a99ad3c624d7ae4815776f165d65f19e43167e56
Author: Simon Grätzer <simon@graetzer.org>
Date: Fri Mar 17 13:25:45 2017 +0100
Added TraverserCache to SingleServerTraverser
commit e88ae1e53d99b55546329413e7b4a5edc48c4875
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed Mar 15 13:36:05 2017 +0100
Fixed compiler Issues in TraverserCache
commit 9d89cdc0297813f24064b46a67a43cde9a3d0297
Merge: 9d41804 f18ad19
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed Mar 15 09:43:06 2017 +0100
Merge branch 'devel' of github.com:arangodb/arangodb into devel-feature/traversal-cache
commit 9d4180480c7bc37f1f64b6e3141dae611f8d399c
Author: Michael Hackstein <michael@arangodb.com>
Date: Wed Mar 15 09:42:53 2017 +0100
Started implementing a Traverser Cache Abstraction that is used to store already fetched documents.
An invalid rev should lead to a 1200 ("conflict") error rather than a
1239 ("illegal document revision") error. This is more intuitive and
in line with the corresponding change in the HTTP API. No tests needed
adjustment.