欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

算法难题请问:怎么计算分布式存贮的key? 谢!

更新时间: 2014-01-05 02:31:05 责任编辑: Author_N1

 

算法难题请教:如何计算分布式存贮的Key? 谢!!!
算法难题请教:如何计算分布式存贮的Key? 谢谢!!!

有这样一个需求:

水平切分(横向)数据是把所有数据当作一个大产品,但是把所有的平面数据按照某些Key(比如用户名)分散在不同数据库或者数据库服务器上,分散对数据访问的压力。 


如何实现这个KEY呢?

例如:

  一、5个用户名:

  user1
  user2
  user3 
  user4
  user5

  二、有两台数据库服务器:

  db1
  db2


  算法要求:如何把上面的5个用户名(实际应用上可能是无限的)映射到这两台服务器上呢?用什么算法可以做到呢?


  基本条件: 
1、用户名可能是无限的;
2、数据库服务器的数量在某个阶段是确定数量的,但可能会增加,增加时要求不破坏过去的KEY;






--参考方法--
如果以前的KEY可以映射到任意用户名,那么新增的KEY怎么可能做到不映射以前的用户名呢?理论上新增的KEY映射只是以前的KEY的子集.
当然实际上是存在这样的新增KEY的,那是因为以前的实际数据并非用户名的全集.但是这个新增KEY没有通用的方法推导出来吧?
不破坏过去的KEY,好像只能阶段性的限制用户名的规则;或者人为的修改真实用户名(如添加前缀),这样如何不缓存用户信息的话定位用户比较麻烦,需要把数据库服务器全部扫一遍.
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:31:05
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10827/
本文WWW.DOC100.NET DOC100.NET版权所有。