良好的分布式cahce系统中,一致性hash算法需要满足什么?你知道吗?让我们来一起学习下吧。
良好的分布式cahce系统中,一致性hash算法应该满足哪些方面
平衡性(Balance)、单调性(Monotonicity)、分散性(Spread)、负载(Load)、平滑性(Smoothness)
良好的分布式cahce系统中,一致性hash算法需要满足的平滑性是指
平滑性是指缓存服务器的数目平滑改变和缓存对象的平滑改变是一致的
良好的分布式cahce系统中,一致性hash算法需要满足的负载是指
负载问题实际上是从另一个角度看待分散性问题。既然不同的终端可能将相同的内容映射到不同的缓冲区中,那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同的内容。与分散性一样,这种情况也是应当避免的,因此好的哈希算法应能够尽量降低缓冲的负荷。
良好的分布式cahce系统中,一致性hash算法需要满足的分散性是指
在分布式环境中,终端有可能看不到所有的缓冲,而是只能看到其中的一部分。当终端希望通过哈希过程将内容映射到缓冲上时,由于不同终端所见的缓冲范围有可能不同,从而导致哈希的结果不一致,最终的结果是相同的内容被不同的终端映射到不同的缓冲区中。这种情况显然是应该避免的,因为它导致相同内容被存储到不同缓冲中去,降低了系统存储的效率。分散性的定义就是上述情况发生的严重程度。好的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。
良好的分布式cahce系统中,一致性hash算法需要满足的单调性是指
单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲区加入到系统中,那么哈希的结果应能够保证原有已分配的内容可以被映射到新的缓冲区中去,而不会被映射到旧的缓冲集合中的其他缓冲区。
良好的分布式cahce系统中,一致性hash算法需要满足的平衡性是指
平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。很多哈希算法都能够满足这一条件。