This PR changes the protocol so that we no longer fuse the operations to send the values to the worker to compute and the actual invocation of the function in the remote worker.
This requires redesigning the Task proto so that we can send the different types of requests (create_value, create_call, compute, etc...). Results are only materialized in the task in response to a compute task.
We also add a group_index field to Tasks. This is used to track the order in which tasks are created by the executor and to ensure they are processed in the order they are created.
stateful_wrapper is a wrapper for an executor which caches values based on their task name
Its implementation is inspired by ExecutorService
Fix bug in server/main.go that was preventing the logger from being properly initialized
Add an option to the E2E test to not terminate so that we can leave the taskstore and possibly other values still running for debugging purposes
Create a simple CLI to interact with the taskstore; currently the only operations are get tasks
Improve the logging to make it easier to debug the E2E test
Per #22 we need to make the workers stateful.
This PR changes the protocol so that we no longer fuse the operations to send the values to the worker to compute and the actual invocation of the function in the remote worker.
This requires redesigning the Task proto so that we can send the different types of requests (create_value, create_call, compute, etc...). Results are only materialized in the task in response to a compute task.
We also add a group_index field to Tasks. This is used to track the order in which tasks are created by the executor and to ensure they are processed in the order they are created.
stateful_wrapper is a wrapper for an executor which caches values based on their task name
Fix bug in server/main.go that was preventing the logger from being properly initialized
Add an option to the E2E test to not terminate so that we can leave the taskstore and possibly other values still running for debugging purposes
Create a simple CLI to interact with the taskstore; currently the only operations are get tasks
Improve the logging to make it easier to debug the E2E test