value数据存储设计方案.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
value数据存储设计方案

第32卷第 4期 东 北 电 力 大 学 学 报 Vo1.32.No.4 2012年 8月 JournalOfNortheastDianiiUniversity Aug.,2012 文章编号:1005—2992(2012)04—0026—04 改进的 key/value数据存储设计方案 何 文 (东北电力大学 信息工程学院,吉林 吉林 132012) 摘 要:针对现有key/value缓存系统海量数据的访问速度慢,满足不了应用的需求,提出一种改进 的key/value数据存储方案并将其应用于缓存系统中。通过小数据量存储方案的提出,及对 rehash算 法 、rehash权重因子W的改进,十分有效地解决了hash冲突、rehash迁移数据导致的系统变慢问题,加快 了缓存系统的速度 ,提高了缓存系统的命中率。 关 键 词 :key/value数据结构;rehash;hash算法;hashcode;hash桶;缓存系统 中图分类号 :TP391 文献标识码:A 缓存系统的应用是网站架构的核心,因此,要提高网站的性能和稳定性,必须选择优秀的缓存系统。 现在的缓存系统大多以key/value存储数据,比较典型的缓存系统有:Memached、Oscache、Ehcache、redis 等。其中Memached因其简单高效、稳定性好等特点,被广泛应用到互联网缓存系统架构中。但是 Memached在key/value存储方案中存在数据冲突和rehash导致数据迁移两大问题,将其应用到互联网 缓存系统架构中也间接导致了网站访问速度慢和系统崩溃等问题。本文所提的改进缓存系统有效地弥 补了如今web缓存系统本身存在海量数据速度访 问慢,满足不了应用需求的不足…。实验表明,改进 的缓存系统提高了访问速度。 1 key/value存储模型 key/value典型实现的数据结构一般为数组链表,利用 hash算法均匀分布在hash桶中即存放在数 组中,而hash冲突解决方法是开放链表法。 1.1 数组链表数据结构 图1key/value存储结构:先通过 hashcode找到 数组的某一个位置 (通过 hash算法得出hashcode), 然后插入链表的第一个位置;数据的查找过程:通过 hashcode找到数组的某一个元素,然后通过key的相 等方法在链表中找到key对应的value元素。 1.2 解决冲突的方法 缓存系统解决冲突的方法是开放链表法,将所 有为同义词的结点链接在同一个单链表中。 图1key/value存储结构 优点:拉链法处理冲突简单,且无堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短; 由于拉链法中各链表上的结点空间是动态申请的,故它更适合于无法确定表长的情况;开放链表法为了 减少冲突,故而引入装填因子 ,拉链法中 值可取 I 0。 缺点:指针需要额外的空间,故当结点规模较小时,开放链表法较为浪费存储空间。 收稿 日期:2011—11—14 作者简介:何 文(1986一),男,湖南省岳阳市人,东北电力大学信息工程学院在读研究生,主要研究方向:海量数据存储 28 东北电力大学学报 第 32卷 它实际上是一个指针数组,数组的个数 由size 发生rehsh期间 决定,每个元素 (bucket)指 向一个 dictEntry的单链 表来解决hash冲突。查询某个 key,需要先hash,定 建立两倍的原因是 新建一个 比原 防止数据迁移时候, 来两倍的数组 位到数组某一个元素然后再通过链表遍历找到key 数据再次遇到冲突; 链表

文档评论(0)

2752433145 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档