【发布时间】:2016-07-29 00:19:08
【问题描述】:
创建类似表格的可靠集合的最佳方法是什么?我们可以扮演自己的角色吗?
我正在寻找一些东西来存储索引的简单列表或包,并跟踪键和其他简单的细节,因为枚举多分区字典的成本如此之高。最好是顺序访问而不是随机访问。
显而易见的选择:
- IDictionary
<Guid, List>存在并发问题,性能不佳 - 尝试枚举一个队列,但我怀疑它会比字典更好
- 使用外部数据存储
这些似乎都不是特别好。
【问题讨论】:
-
有没有示例用法。有队列和字典可以解决 80% 的情况。你有什么挑战?
-
List
或 Collection 是我的数据......这样的数据很常见。 -
这些可以存储在每个分区的基础上吗?从您下面的评论中,好像这是参考数据,需要在每个分区中使用。如果是这种情况,您是否可以在服务启动时加载它并从那时起使用。
-
是的,计划是在服务启动时使用它们,但数据确实发生了变化。我当然可以在每个分区上复制。这是任何数据库的一个非常常见的场景,大约 2/3 的表将是小表,很少更改(但它们确实会更改)。显而易见的答案是对这些数据使用 Azure Table / SQL,但我希望是否有有效的 SF,例如 ReliableCollection
-
您最好的选择可能是拥有另一个服务 - 可能是在每个节点上运行的无状态服务。启动时,此服务连接到外部存储以获取参考数据,然后通过 api 使其可用。通过这种方式,数据本地存储在内存中的每个系统上,并可通过处理分区的本地调用获得。