* Refactor local scheduler to remove worker indices.
* Change scheduling state enum to int in all function signatures.
* Bug fix, don't use pointers into a resizable array.
* Remove total_num_workers.
* Fix tests.
* First pass at reconstruction in the worker
Modify reconstruction stress testing to start Plasma service before rest of Ray cluster
TODO about reconstructing ray.puts
Fix ray.put error for double creates
Distinguish between empty entry and no entry in object table
Fix test case
Fix Python test
Fix tests
* Only call reconstruct on objects we have not yet received
* Address review comments
* Fix reconstruction for Python3
* remove unused code
* Address Robert's comments, stress tests are crashing
* Test and update the task's scheduling state to suppress duplicate
reconstruction requests.
* Split result table into two lookups, one for task ID and the other as a
test-and-set for the task state
* Fix object table tests
* Fix redis module result_table_lookup test case
* Multinode reconstruction tests
* Fix python3 test case
* rename
* Use new start_redis
* Remove unused code
* lint
* indent
* Address Robert's comments
* Use start_redis from ray.services in state table tests
* Remove unnecessary memset
* Provide functionality for local scheduler to start new workers.
* Pass full command for starting new worker in to local scheduler.
* Separate out configuration state of local scheduler.
* Use object_info as notification, not just the object_id
* Add a regression test for plasma managers connecting to store after some objects have been created
* Send notifications for existing objects to new plasma subscribers
* Continuously try the request to the plasma manager instead of setting a timeout in the test case
* Use ray.services to start Redis in plasma test cases
* fix test case
* Optimizations:
- Track mapping of missing object to dependent tasks to avoid iterating over task queue
- Perform all fetch requests for missing objects using the same timer
* Fix bug and add regression test
* Record task dependencies and active fetch requests in the same hash table
* fix typo
* Fix memory leak and add test cases for scheduling when dependencies are evicted
* Fix python3 test case
* Minor details.
* Change plasma_get to take a timeout and an array of object IDs.
* Address comments.
* Bug fix related to computing object hashes.
* Add test.
* Fix file descriptor leak.
* Fix valgrind.
* Formatting.
* Remove call to plasma_contains from the plasma client. Use timeout internally in ray.get.
* small fixes
* Split local scheduler task queue into waiting and dispatch queue
* Fix memory leak
* Add a new task scheduling status for when a task has been queued locally
* Fix global scheduler test case and add task status doc
* Documentation
* Address Philipp's comments
* Move tasks back to the waiting queue if their dependencies become unavailable
* Update existing task table entries instead of overwriting
* Prevent plasma store and manager from dying when a worker dies.
* Check errno inside of warn_if_sigpipe. Passing in errno doesn't work because the arguments to warn_if_sigpipe can be evaluated out of order.
* check available shared memory when starting object store
* exit with error if not enough shared memory available for object store
* Some comments and formatting.
* Object notification test for Photon, and turn on valgrind for Photon C tests
* Test object notification handler in the plasma manager
* Fix hanging test case
* Send message from plasma client to get plasma store capacity.
* Release objects from plasma client if they are too large.
* Use doubly-linked list instead of ring buffer for plasma client release history.
* Address comments.
* Fix problem with slicing PlasmaBuffer objects.
* Fix crash in plasma manager during transfer.
* Formatting.
* Make plasma client cache larger and make caching test not throw exceptions on Travis.
* Switch to using redis modules for task table.
* Switch to using redis modules for the task table.
* Fix some tests.
* Fix naming and remove code duplication.
* Remove duplication in redis modules and add more cleanups.
* Address comments.
* Suppress Redis warnings and remove some global scheduler logging.
* Pass a counter into run_function_on_all_workers indicating how many workers have begun executing this function.
* global scheduler with object transfer cost awareness -- upstream rebase
* debugging global scheduler: multiple subscriptions
* global scheduler: utarray push bug fix; tasks change state to SCHEDULED
* change global scheduler test to be an integraton test
* unit and integration tests are passing for global scheduler
* improve global scheduler test: break up into several
* global scheduler checkpoint: fix photon object id bug in test
* test with timesync between object and task notifications; TODO: handle OoO object+task notifications in GS
* fallback to base policy if no object dependencies are cached (may happen due to OoO object+task notification arrivals
* clean up printfs; handle a missing LS in LS cache
* Minor changes to Python test and factor out some common code.
* refactoring handle task waiting
* addressing comments
* log_info -> log_debug
* Change object ID printing.
* PRId64 merge
* Python 3 fix.
* PRId64.
* Python 3 fix.
* resurrect differentiation between no args and missing object info; spacing
* Valgrind fix.
* Run all global scheduler tests in valgrind.
* clang format
* Comments and documentation changes.
* Minor cleanups.
* fix whitespace
* Fix.
* Documentation fix.
* 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
* Task table redis module implementation
* Publish tasks and take in individual fields as args, not task object
* Scheduling state integer has width 1, error on illegal put
* Unit tests for task table and more documentation
* Task table subscribe, fix publish topics and address Philipp and Alexey's comments
* Helper function to create prefixed strings
* Factor out the table prefixes in the test cases
* 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.
* passing plasma ip:port association with photon through redis to global scheduler
* Fix test.
* sanity-checking aux_address inside db_connect_extended
* clang format
* fix photon tests
* clang format photon tests
* First attempt at fixing psubscribe. psubscribe_success_test will fail
* psubscribe test
* SUBSCRIBE returns the number of subscriptions, not success
* Comment out failing test.
* 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