【问题标题】:Service Fabric Reliable Collections PerformanceService Fabric 可靠集合性能
【发布时间】:2017-12-07 20:26:33
【问题描述】:

我需要在 Service Fabric 上的 Reliable Dictionaries 中存储大量数据。我们将事件存储实现为多个可靠字典,因此域发出的每个事件最终都在存储中。我想知道以下两种情况下的性能差异:

  • 使用一个(非常大的)可靠字典来存储特定聚合类型的所有事件:这会产生少量字典,每个字典包含数百万个事件
  • 使用小型 Reliable Dictionary 来存储单个聚合实例的事件:这会产生大量小型字典(想想数百万),每个都包含一些事件

考虑到状态的复制和读写性能,最有效的前进方式是什么?

【问题讨论】:

    标签: azure-service-fabric service-fabric-stateful


    【解决方案1】:

    听起来您应该使用有状态的 Actor,您可以拥有数百万个持有数据的 Actor。

    如果您需要阅读所有演员的大量摘要(汇总)信息,请参阅https://github.com/Azure-Samples/service-fabric-dotnet-data-aggregation/blob/master/README.md

    如果您想使用有状态服务,以下是我的想法: 对于第一个场景,您必须使用分区,对于第二个场景,您应该构建多个数据服务,以便您的数据分布在节点之间。

    第二种方案的优点是可以更快地访问其数据,但需要额外的目录服务来保存事件聚合的名称,以便您可以查找正确的目标字典。

    两种情况下的复制不应该不同。

    【讨论】:

      猜你喜欢
      • 2017-12-08
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2016-08-09
      • 2017-12-01
      • 2016-03-14
      • 2022-06-18
      • 2018-07-04
      相关资源
      最近更新 更多