dotnet/orleans

Distributed collections in Orleans

Open

#1,412 建立於 2016年2月8日

在 GitHub 查看
 (8 留言) (0 反應) (0 負責人)C# (2,123 fork)batch import
enhancementhacktoberfesthelp wanted

倉庫指標

Star
 (10,777 star)
PR 合併指標
 (平均合併 2天 2小時) (30 天內合併 64 個 PR)

描述

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.

貢獻者指南