代码之家  ›  专栏  ›  技术社区  ›  user2995891

奥尔良-如何使用AdonetStorage Provider按租户实现存储分片

  •  0
  • user2995891  · 技术社区  · 8 年前

    我们正在计划部署SQL Server。

    例如:

    • 属于租户2的谷物应保留到碎片B
    • 属于佃户3的谷物应持续切碎A

    其中,我们的切分函数将指示使用哪个切分。 为此,分片函数基于粒度扩展密钥从数据库中获取其粒度分片。(所以不应该都在配置文件中,因为碎片的数量很少变化,但新租户经常添加)。 如果这可以通过一些内置框架来实现,那就更好了。

    https://dotnet.github.io/orleans/Documentation/Core-Features/Grain-Persistence.html?q=sharded#shardedstorageprovider shardedstorageprovider将基于哈希函数在碎片上平均分布(shard)数据。这并没有达到这个目的。碎片可能(也可能不)位于地理位置。

    github中的切分示例是指Azure上的弹性SQL客户端,据我所知,它不适用于SQL server。

    我知道我们可以编写自己的存储提供商。但只要有可能,我们就尽量保持核心。

    1 回复  |  直到 8 年前
        1
  •  0
  •   user2995891    8 年前

    根据Gitter项目的答案, 没有内置的能力按租户分割。

    实现这一点的方法是从 https://github.com/dotnet/orleans/blob/master/src/OrleansProviders/Storage/ShardedStorageProvider.cs 和重写HashFunction方法。 归功于@SebastianStehle