Use gRPC to handle communication and data transmission between object manager (#4996)

This commit is contained in:
Joey Jiang
2019-06-28 10:56:34 +08:00
committed by Hao Chen
parent 62e4b591e3
commit d6bbbdef35
21 changed files with 714 additions and 608 deletions
@@ -72,3 +72,31 @@ def test_task_forward(benchmark, num_tasks):
# Warm up
ray.get([f.remote() for _ in range(100)])
benchmark(benchmark_task_forward, f, num_tasks)
def benchmark_transfer_object(actor, object_ids):
ray.get(actor.f.remote(object_ids))
@pytest.mark.benchmark
@pytest.mark.parametrize("object_number, data_size",
[(10000, 500), (10000, 5000), (1000, 500),
(1000, 5000)])
def test_transfer_performance(benchmark, ray_start_cluster_head, object_number,
data_size):
cluster = ray_start_cluster_head
cluster.add_node(resources={"my_resource": 1}, object_store_memory=10**9)
@ray.remote(resources={"my_resource": 1})
class ObjectActor:
def f(self, object_ids):
ray.get(object_ids)
# setup remote actor
actor = ObjectActor.remote()
actor.f.remote([])
data = bytes(1) * data_size
object_ids = [ray.put(data) for _ in range(object_number)]
benchmark(benchmark_transfer_object, actor, object_ids)