[发明专利]一种链式日志存储结构及其哈希索引结构、数据操作方法及服务器、介质有效
申请号: | 201710606580.2 | 申请日: | 2017-07-24 |
公开(公告)号: | CN107515901B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 刘庆云;杨泞构;刘俊朋;张鹏;郑超;杨嵘 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 链式 日志 存储 结构 及其 索引 数据 操作方法 服务器 介质 | ||
本发明公开了一种链式日志存储结构及其哈希索引结构、数据操作方法及服务器、介质。本发明的链式日志存储结构,包括多个存储段和一数组,每一存储段的存储单元为一日志项,日志项包括初始大小字段、索引位置字段、键长度字段、Key字段和Value字段;其中Value字段用于存储数据,Key字段用于存储数据的键,初始大小字段用于存储日志项的初始大小,索引位置字段用于存储日志项的索引在哈希表中的位置;所述数组用于存储各存储段的元信息。本发明的哈希索引结构包括多个哈希桶,每一哈希桶的数据结构包括:索引数字段、有效标志字段、标签字段、偏移量字段和扩展桶字段。本发明能够保持整个结构内存的紧密连续性,降低碎片率。
技术领域
本发明属于IT技术领域,涉及一种NoSql内存数据库-数据存储结构,特别涉及一种链式日志存储结构及其哈希索引结构、数据操作方法及服务器、介质。
背景技术
网络空间资源测绘是对网络空间资源的统一描述、全面感知和全景刻画。通过对网络空间资源的探测、分析和绘制,对我国建设成为网络强国具有重要意义,然而网络空间资源规模庞大并且动态时变,为此需要一种高效的资源缓存策略,能够对资源进行去重存储和高效查询,支持业务用户全面掌握网络空间资源特性及其分布。
此外,随着互联网的发展,互联网越来越深刻的影响人们的日常生活,有线网、无线网和4G移动网络成为人们日常使用互联网的最常用的接入方式。对于互联网服务提供者来说,为方便用户在不同网络切换时不用重复登录,经常采用的方案是将用户的UUID缓存在服务器端,当用户切换网络时能快速查找到用户的登录状态,并将用户正在查看的信息直接显示在用户当前的终端上。因此需要在服务端部署一个高效的缓存系统,方便缓存大量的用户登录信息,同时保证能高效的查询该信息。
目前的内存缓存系统如Redis和Memcached等都采用哈希表(Hashtable)作为其索引结构。哈希表是根据键(Key)的哈希散列值来直接访问在内存存储位置的数据结构。其核心思想是设关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录,并称这个对应关系f为散列函数。哈希表的存储单元皆由key和value的键值对组成。
然而由于计算机内存资源的有限,哈希表的大小是有限的,所以散列函数的映射关系只能是多对一的,这就可能出现k1≠k2,f(k1)=f(k2),这种情况称为哈希冲突(Collision),通过构造性能良好的散列函数可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是构建哈希表的一个关键问题。
处理哈希冲突的方法主要可分为四种:
开放地址法:hashi=(hash(key)+di)mod m,i=1,2…k(k≤m-1),其中hash(key)为散列函数,m为散列表长度,di位增量序列,i为已发生冲突的次数。根据增量序列的不同可分为线性探测、平方探测和伪随机探测等。
链地址法:这种方法的基本思想是将发生哈希冲突的元组构成一个单链表,查找、插入和删除都通过遍历这个链表来实现。
再哈希法:hashi=hashi(key),i=1,2…k。hashi是一个哈希族,即在哈希计算发生冲突时,使用下一个哈希族函数计算哈希值,直到冲突不再产生。
公共溢出区法:建立一个公共溢出区,所有发生哈希冲突的元素都存储到该溢出区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710606580.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能动物固废处理装置
- 下一篇:一种二段式垃圾焚烧系统