* Duplicate wait1 implementation and seperate out wait datastructures.
* Address Philipp's comments.
* Temporarily address test failure problem by increasing timeout and reducing load in tests.
* Update stress tests to include distributed wait.
* Fetch missing dependencies from local scheduler.
* Factor out global scheduler policy state.
* Use object_table_subscribe instead of object_table_lookup.
* Fix bug in which timer was being created twice for a single fetch request.
* Free old manager vector.
* Give more informative error message when we do not know how to serialize a class.
* Check that passing arguments to remote functions and getting them does not change their values.
* fix serialization bug
* fix tests for common module
* Formatting.
* Bug fix in init_pickle_module signature.
* Use pickle with HIGHEST_PROTOCOL.
* Initial scheduler commit
* global scheduler
* add global scheduler
* Implement global scheduler skeleton.
* Formatting.
* Allow local scheduler to be started without a connection to redis so that we can test it without a global scheduler.
* Fail if there are no local schedulers when the global scheduler receives a task.
* Initialize uninitialized value and formatting fix.
* Generalize local scheduler table to db client table.
* Remove code duplication in local scheduler and add flag for whether a task came from the global scheduler or not.
* Queue task specs in the local scheduler instead of tasks.
* Simple global scheduler tests, including valgrind.
* Factor out functions for starting processes.
* Fixes.
* Fix bug in which worker import counters were treated incorrectly.
* Fix bug in which cached functions-to-run were double counted as exports. This also runs the functions-to-run on the driver only after ray.init is called.
* Only define reusable variables locally after ray.init has been called.
* Remove flaky reference counting tests. It's not clear that these tests make sense.
* Make numbuf pip install verbose.
* Export cached reusable variables before cached remote functions.
* Fix bug causing the worker to hang sometimes. This happens when the worker is trying to run a task, but it hasn't imported enough imports to run the task, so it continually acquires and releases a lock while checking if it has enough imports. However, for some reason, the import thread is waiting to acquire the same lock and never does so (or takes a very long time to do so). By dropping the lock before sleeping, this makes it easier for other threads to acquire the lock.
* Acquire locks using 'with' statements.
* Fix possible test failure.
* Try to start Redis multiple times with different random ports if the original attempt failed.
* Fix test in which we redefine a remote function.
* Update worker code and services code to use plasma and the local scheduler.
* Cleanups.
* Fix bug in which threads were started before the worker mode was set. This caused remote functions to be defined on workers before the worker knew it was in WORKER_MODE.
* Fix bug in install-dependencies.sh.
* Lengthen timeout in failure_test.py.
* Cleanups.
* Cleanup services.start_ray_local.
* Clean up random name generation.
* Cleanups.
* Properly reset reusable variables on the driver when remote functions are run locally on the driver.
* Cache functions to run on all workers that occur before ray.init is called.
* Re-implemented select, changed name to wait
* Changed tests for select to tests for wait
* Updated the hyperopt example to match wait
* Small fixes and improve example readme.
* Make tests pass.
* Make ray.init set python paths of workers.
* Decouple starting cluster from copying user source code
* also add current directory to path
* Add comments about deallocation.
* Add test for new code path.
* Revert "Make tests more informative (#372)"
This reverts commit fd353250c8.
* fix bugs, in particular deactivate worker service on driver and remove condition variables
* changes to minimize the changes in this PR
* switch from faulty mutex synchronization to using atomics
* Increase the default size of the message queues, to accommodate exporting large numbers of remote functions. This is a temporary fix, but not a long term solution.
* Reorganize the scheduler export code to queue up exports. This does not solve the underlying problem yet, but sets up a solution.
* Start a separate thread on driver to print error messages by constantly querying the scheduler. This is a temporary solution because the solution based on starting a worker service for the driver which the scheduler can push error messages to is buggy.
* Fix segfault in taskcapsule destructor.
* Move tests for catching errors into a separate test file.
* Revert "roll back grpc (#368)"
This reverts commit c01ef95d04.
* attempt to build on travis using docker
* run tests in foreground
* add examples to travis tests
* test from current checkout
* attempt to fix docker version issues
* try build with xenial
* attempt docker upgrade
* avoid hang on configuration files
* matrix osx and linux w/ docker
* restore non-test docker builds
* fix typo
* tuning and cleanup
* add missing file
* comment cleanup