dotnet/orleans

Distributed collections in Orleans

Open

#1412 aperta il 8 feb 2016

Vedi su GitHub
 (8 commenti) (0 reazioni) (0 assegnatari)C# (2123 fork)batch import
enhancementhacktoberfesthelp wanted

Metriche repository

Star
 (10.777 star)
Metriche merge PR
 (Merge medio 2g 2h) (64 PR mergiate in 30 g)

Descrizione

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.

Guida contributor