算法难题请教:如何计算分布式存贮的Key? 谢谢!!!
有这样一个需求:
水平切分(横向)数据是把所有数据当作一个大产品,但是把所有的平面数据按照某些Key(比如用户名)分散在不同数据库或者数据库服务器上,分散对数据访问的压力。
如何实现这个KEY呢?
例如:
一、5个用户名:
user1
user2
user3
user4
user5
二、有两台数据库服务器:
db1
db2
算法要求:如何把上面的5个用户名(实际应用上可能是无限的)映射到这两台服务器上呢?用什么算法可以做到呢?
基本条件:
1、用户名可能是无限的;
2、数据库服务器的数量在某个阶段是确定数量的,但可能会增加,增加时要求不破坏过去的KEY;
那user的ID模2就行了吧。。。一个简单的hash,呵呵。