* Add function for driver to get address info from Redis.
* Use Redis address instead of Redis port.
* Configure Redis to run in unprotected mode.
* Add method for starting Ray processes on non-head node.
* Pass in correct node ip address to start_plasma_manager.
* Script for starting Ray processes.
* Handle the case where an object already exists in the store. Maybe this should also compare the object hashes.
* Have driver get info from Redis when start_ray_local=False.
* Fix.
* Script for killing ray processes.
* Catch some errors when the main_loop in a worker throws an exception.
* Allow redirecting stdout and stderr to /dev/null.
* Wrap start_ray.py in a shell script.
* More helpful error messages.
* Fixes.
* Wait for redis server to start up before configuring it.
* Allow seeding of deterministic object ID generation.
* Small change.
* adding object broadcast channel; published on each object table add
* publishing data size to the bcast channel
* bug fix: objectkey
* update object tests to test for data size: C + py
* remove debug
* clang format
* Minor changes.
* Fix error.
* merging with Robert's comments
* clang format for the object table test upgrade
* Add RAY.CONNECT Redis command.
* Add RAY.GET_CLIENT_ADDRESS command.
* Build and clean Redis in common Makefile.
* Use custom Redis module in Ray and use custom CONNECT and GET_CLIENT_ADDRESS commands.
* Fixes.
* Remove mapping from redis client ID to ray db client ID.
* Fix.
* 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.
* 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.
* rebase Alexey's PR on top
* rebase on master
* fix test failure waiting for plasma manager to exit
* clang format
* addressing comments
* Minor formatting and naming fixes.
* 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.
* 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.
* Implement new plasma client API.
* Formatting fixes.
* Make tests work again.
* Make tests run.
* Comment style.
* Fix bugs with fetch tests.
* Introduce fetch1 flag.
* Remove timer only if present.
* Formatting fixes.
* Don't access object after free.
* Formatting fixes.
* Minor change.
* refactoring plasma datastructures
* Change plasma_request and plasma_reply to use only arrays of object requests.
* some more fixes
* Remove unnecessary methods.
* Trivial.
* fixes
* use plasma_send_reply in return_from_wait1
* Lint.
* Bring back fetch tests.
* Zero initialize success array in PyPlasma_fetch.
* Fix bug in fetch in case where the object ID doesn't have any managers in the object table.
* Temporarily disallow calling fetch with multiple copies of the same object ID.
* Fix.
* Factor out code for checking if list of object IDs are all distinct.
* Remove commented out code.
* Fix.
* Add Python and Redis submodules, and remove old third-party modules
* Update VS projects (WARNING: references files that do not exist yet)
* Update code & add shims for APIs except AF_UNIX/{send,recv}msg()
* Minor style changes.
* On Mac OS X, if cmake fails to find Python with custom search path, default to using find_package.
* Fix formatting in CMakeLists.txt.
* Set CUSTOM_PYTHON_EXECUTABLE variable on mac if the custom search path fails.
* Require exact Python version match.
* Use cmake mode keyword for logging messages.
* Fix.
* Find python libraries in cmake by searching near the include directories.
* Update cmakelists for numbuf.
* Use sizeof(field) instead of sizeof(type) and other fixes.
* Fix formatting.
* Bug fix.
* Zero-initialize structs. There are many more instances of these that I haven't changed yet.
* Bug fix.
* Revert from atexit to signaling to fix valgrind tests.
* Address Philipp's comments.
* 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.
* Set logging levels in Makefile using -DRAY_COMMON_LOG_LEVEL=level
* Lower level of some LOG_ERROR messages, log the name of the table operation on failure
* Address rest of Robert's comments
* Fix spurious log message
* Merge task table and task log
* Fix test in db tests
* Address Robert's comments and some better error checking
* Add a LOG_FATAL that exits the program
* 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.
* Merge sealed_objects and open_objects into a single hashmap
* Entry contains enum that determines whether it is open or closed
* Removed unused variable.
* Applied Robert's patch
* Fixed styling.