专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能数据库开发

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

发布时间:2010-05-24 21:18:36 文章来源:www.iduyao.cn 采编人员:星星草
算法难题请教:如何计算分布式存贮的Key? 谢!!!
算法难题请教:如何计算分布式存贮的Key? 谢谢!!!

有这样一个需求:

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


如何实现这个KEY呢?

例如:

  一、5个用户名:

  user1
  user2
  user3 
  user4
  user5

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

  db1
  db2


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


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






------解决方案--------------------
如果以前的KEY可以映射到任意用户名,那么新增的KEY怎么可能做到不映射以前的用户名呢?理论上新增的KEY映射只是以前的KEY的子集.
当然实际上是存在这样的新增KEY的,那是因为以前的实际数据并非用户名的全集.但是这个新增KEY没有通用的方法推导出来吧?
不破坏过去的KEY,好像只能阶段性的限制用户名的规则;或者人为的修改真实用户名(如添加前缀),这样如何不缓存用户信息的话定位用户比较麻烦,需要把数据库服务器全部扫一遍.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: