我需要在Service Fabric上的Reliable Dictionaries中存储大量数据。我们正在将一个事件存储实现为一些可靠的字典,因此域中发出的每个事件都会在商店中结束。我想知道以下两种情况下的性能差异:
鉴于状态的复制,以及读写性能,最有效的方法是什么?
答案 0 :(得分:3)
听起来你应该使用有状态演员,你可以拥有数百万持有数据的演员。
如果您需要阅读所有演员的大量摘要(汇总)信息,请参阅https://github.com/Azure-Samples/service-fabric-dotnet-data-aggregation/blob/master/README.md
如果您想使用有状态服务,我的想法如下: 对于第一个场景,您将不得不使用分区,对于第二个场景,您应该构建多个数据服务,以便您的数据在节点之间分配。
第二种方案的优点是可以更快地访问其数据,但需要额外的目录服务来保存事件聚合的名称,以便您可以查找正确的目标字典。
在两种情况下,复制不应该有所不同。