dotnet/orleans

Distributed collections in Orleans

Open

#1.412 aberto em 8 de fev. de 2016

Ver no GitHub
 (8 comments) (0 reactions) (0 assignees)C# (2.123 forks)batch import
enhancementhacktoberfesthelp wanted

Métricas do repositório

Stars
 (10.777 stars)
Métricas de merge de PR
 (Mesclagem média 2d 2h) (64 fundiu PRs em 30d)

Description

I am exploring how to implement distributed collections for objects in Orleans. I imagine this functionality could be useful for a few scenarios, e.g.

  • Scale existing systems with lots of code that cannot be completely reimplemented in grains.
  • Hold and query large collections on the server side which reduces load on a client.
  • Querying collections of grains, maybe in combination with index building [2].

So far I have identified the following main goals important for my Orleans-based project:

  • Introduce some parallelism for list operations by using a large number of ContainerGrains hosting items.
  • Exact storage location of items should not be dealt with by the user (not completely implemented).
  • Allow efficient communication between objects hosted within a distributed collection (not implemented).
  • Support LINQ-like queries on such a collection (way to go).

I implemented a prototype with some very limited functionality of distributed collections and would be happy to discuss its approaches [1].

I would like to hear what your requirements for a distributed collection are. Is it interesting to you to deal with not only collections of grains but collections of plain old objects as well? Do you care about consistency a lot?

Deprecated [1] https://github.com/bwanner/Orleans.Collections [2] Related issue: https://github.com/dotnet/orleans/issues/602

Update: See https://github.com/dotnet/orleans/issues/1412#issuecomment-193702118 for latest update on concept and implementation status.

Guia do colaborador