Mar*_*tin 4 c# partitioning scalability guid scale
我必须在多台机器上存储许多 GB 的数据。文件由 Guid 唯一标识,一个文件只能托管在一台机器上。我想知道是否可以使用 Guid 作为分区键来确定我应该使用哪台机器来存储数据。如果是这样,我的分区函数是什么?
否则,我怎么能以这样的方式对我的数据进行分区,以使所有机器都获得非常相似的负载?
谢谢!
PS 我没有使用 Sql Server、Oracle 或任何其他数据库。这都是内部代码。PSS Guid 是使用 .NET 函数 Guid.NewGuid() 生成的。
正如詹姆斯在他的评论中所说,你需要一些具有良好、均匀分布的东西。向导没有此属性。我会推荐一个散列,甚至像 Guid 本身的散列一样简单。
SHA-1 散列具有良好的分布。我不会推荐偶数/奇数散列,除非您计划只在 2 台机器之间进行分发。