* Object reconstruction in Photon and C test cases for Photon
* Fix hanging test case on mac
* Remove unnecessary event from photon tests
* make photon_disconnect not leak file descriptors
* fix some of the memory errors
* Fix valgrind
* lint
* Address Robert's comments and add test case for object reconstruction suppression
* Remove OWNER
* Consolidate wait implementations.
* Consolidate fetch implementations.
* Share callback between wait and fetch to address issue in which only one callback can be run for a given subscribe channel.
* Reactivate manager tests.
* Remove more code.
* Add some documentation.
* factoring out object_info for general use by several Ray components
* addressing comments
* Replace SHA256 task hash with MD5
Add object hash to object table (always overwrites)
Support for table operations that span multiple asynchronous Redis
commands
Add a new object location in a transaction, using Redis's optimistic
concurrency
Use Redis GETSET instead of transactions and Python frontend code for object hashing
Remove spurious log message
Fix for object_table_add
Revert "Replace SHA256 task hash with MD5"
This reverts commit e599de473c8dad9189ccb0600429534b469b76a2.
Revert to sha256
Test case for illegal puts
Use SETNX to set object hashes
Initialize digest with zeros
Initialize plasma_request with zeros
* Fixes
* replace SHA256 with a faster hash in the object store
* Fix valgrind
* Address Robert's comments
* Check that plasma_compute_object_hash succeeds.
* Don't run test_illegal_put test with valgrind because it causes an intentional crash which causes valgrind to complain.
* Debugging after rebase.
* handling Robert's comments
* Fix bugs after rebase.
* final fixes for Stephanie's PR
* fix
* change plasma object notifications to carry a struct of information
* factoring out object_info for general use by several Ray components
* fixing a bug in python test
* addressing comments
* handling Robert's comments
* clang format
* Fix valgrind.
* 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.
* Basic functionality for LRU eviction.
* Test eviction.
* Factor out eviction policy.
* Move delete_object into eviction policy.
* Replace array of released objects with an LRU cache (hash table + doubly linked list).
* Finish rebase on master.
* Move actual object deletion away from eviction policy and into plasma store.
* Small fixes.
* Fixes.
* Make remove_object_from_lru_cache always remove the object.
* Minor formatting and comments.
* Pass in allowed memory as argument to Plasma store.
* Small fix.
* Small cleanups in worker.py.
* Remove dependencies on subprocess32, graphviz, protobuf, and ipython.
* Retry starting the plasma manager if the port is in use.
* Whitespace
* Move start_plasma_manager into plasma.py.
* 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.