一种高并发的存储装置制造方法及图纸

技术编号:12569532 阅读:71 留言:0更新日期:2015-12-23 12:03
本发明专利技术涉及一种高并发的存储装置,包括应用程序进行访问操作的统一访问接口、扩展数据库存储引擎的存储结构单元,所述存储结构单元中的内存分配使用共享内存分配管理,所述装置在统一访问接口中对数据预先进行分片处理,所述统一访问接口包括查询接口、累加接口,并且所述应用程序进行数据查询、累加操作时,所述装置不需要获得锁服务。本装置是一个低延时、多进程、高吞吐的数据存储装置,单次查询延时小于1ms,且20进程同时读写qps可以达到500000。

【技术实现步骤摘要】

本专利技术涉及一种内存数据库装置,特别是涉及一种高并发的存储装置
技术介绍
现有数据库分为关系型和非关系型数据库。关系型数据库便于存储结构化数据,支持复杂查询和数据分析,但是查询速度较慢。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。非关系型数据库可存取非结构化数据,速度相对关系数据库有较大提升,但是高并发的情况下依然不能满足高速存取的效率问题。
技术实现思路
本专利技术的目的是提出一种低延时、多进程、高吞吐的高并发的存储装置,已解决高并发的情况下高效、高速地存储数据。为实现上述目的,本专利技术提供了一种高并发的存储装置,包括应用程序进行访问操作的统一访问接口、扩展数据库存储引擎的存储结构单元,所述存储结构单元中的内存分配使用共享内存分配管理,所述装置在统一访问接口中对数据预先进行分片处理;所述分片处理包括如下步骤:获得键,并对键计算哈希数,将所得哈希数对分片数量取余,结果即为键的分片序号,之后所述装置根据所述分片号获取分片;所述统一访问接口包括查询接口、累加接口,并且所述应用程序进行数据查询、累加操作时,所述装置不需要获得锁服务。优选地,所述存储结构单元至少包括固定大小的哈希、带有键描述的哈希、同一位置排序的哈希、带有过期时间的哈希。优选地,所述装置在执行数据查询、累加操作的同时通过模拟锁服务进行数据插入、删除、更新操作。优选地,所述模拟锁服务在哈希结构的每个哈希位置通过原子操作进行。优选地,所述通过原子操作模拟锁机制至少包括如下步骤:所述装置首先获取哈希位置的互斥锁,并且在获取锁服务的时候,所述装置依据原子操作函数将每个哈希位置包含的整数进行置位;之后原子操作函数先返回数值,然后进行或运算;若返回数值为0,则获得锁成功;若返回数值为1,则放弃时间片,并重复之前的操作,直到获得锁。基于上述技术方案,本专利技术的优点是:本专利技术具有的统一访问接口不仅提高了程序的扩展性,在应用程序使用过程中可根据不同的需求对存储结构单元直接进行修改替换而不必修改应用程序接口,可以避免大量的繁琐工作,降低耦合性。本装置采用纯内存操作,在写入过程中,直接将操作记录追加到文件的末尾处,有效地提高了写入效率,降低延迟。本装置在不涉及内存修改的操作过程如查询、累加则不需要获得锁服务,而在执行插入、删除、更新等涉及内存修改的操作时可通过模拟锁服务进行,所以本装置在查询、累加的过程中,插入、删除、更新可以同时进行,没有互斥关系,能够有效地提升装置效率。进一步,本装置是一个低延时、高并发、高吞吐的数据管理装置,单次查询延时小于1ms,每秒插入查询次数可达50万次。【附图说明】此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为尚并发的存储装置不意图; 图2为分片处理步骤示意图;图3为模拟锁服务示意图;图4为查询请求执行示意图;图5为累加请求执行示意图。【具体实施方式】下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。实施例1本装置是一个非关系型数据库系统,基于共享内存的内存数据库。本装置大体结构如图1所示,装置对外提供增删查改等数据库主要功能接口,存取键值对(key-value)类型的数据。具体地,本高并发的存储装置,包括应用程序进行访问操作的统一访问接口 101、扩展数据库存储引擎的存储结构单元102。本装置不提供端口监听以及网络访问,而是直接对进程提供统一访问接口 101。更具体地,所述统一访问接口 101包括更新接口 1011、累加接口 1012。应用程序可通过相应的接口进行操作,统一访问接口 101不仅提高了程序的扩展性,在应用程序使用过程中可根据不同的需求对存储结构单元102直接进行修改替换而不必修改应用程序接口,可以避免大量的繁琐工作,降低耦合性。所述存储结构单元102只需要实现对外提供的公共接口,即可以根据不同的业务需求设计更加适合的存储结构,如哈希存储。进一步,所述存储结构单元102至少包括固定大小的哈希1021、带有键描述的哈希1022、同一位置排序的哈希1023、带有过期时间的哈希1024。上述哈希结构类似,但是其能够针对不同的需求进行选择,有的更偏向于性能,有的更偏向于节省空间。与此同时,其还可根据时间空间要求的不同,有针对性的对存储结构进行优化。进一步,所述存储结构单元102中的内存分配使用共享内存103分配管理。具体而言,其采用第三方的共享内存库。当然对于本领域普通技术人员而言,在单进程或进程较少的条件下,也可以直接采用内存管理而不使用共享内存。共享内存可满足一些多进程访问的需求,如Nginx的多进程服务可以使用共享内存,从而在一定程度上节省内存空间。为了使数据更加分散以方便查询,本装置在统一访问接口 101中对数据预先进行分片处理,分片数量可由用户预先定义。所述分片处理包括如下步骤:获得键210,并对键计算哈希数202,将所得哈稀数对分片数量取余203,结果即为键的分片序号,之后装置根据所述分片号获取分片204。如图2所示,具体地,当一次基本操作发生的时候,装置会首先对获得的键(key)进行一次哈希计算,并将所得哈希数对分片数量取余,结果即为该键(key)有可能存在的分片序号,用所述分片序号获取存储分片,并进行之后的基本运算。本装置是一个低延时、高并发、高吞吐的数据管理装置,单次查询延时小于lms,每秒插入查询次数可达50万次。为了达到比较高的qps,本装置采用纯内存操作,在写入一条数据时,数据存入内存中,而并不直接写到磁盘上,因为这样会增加磁盘的寻址时间,降低性能。所以,本申请直接把操作命令顺序的写入操作日志中,因为都是顺序写入,所以可以忽略磁盘寻址时间,提高效率。在写入过程中,直接将操作记录追加到文件的末尾处,有效地提高了写入效率,降低延迟。进一步,在高并发的条件下,多进程访问往往需要全局锁服务保证数据的一致性,以避免内存错误。但是如果使用操作装置本身提供的互斥锁或者读写锁来实现一个全局锁服务,则本装置不可能达到低延时的要求。本装置在不涉及内存修改的操作过程如查询、累加则不需要获得锁服务,而在执行插入、删除、更新等涉及内存修改的操作时可通过模拟锁服务进行,所以本装置在查询、累加的过程中,插入、删除、更新可以同时进行,没有互斥关系,能够有效地提升装置效率。当前第1页1 2 本文档来自技高网...

【技术保护点】
一种高并发的存储装置,其特征在于:包括应用程序进行访问操作的统一访问接口(101)、扩展数据库存储引擎的存储结构单元(102),所述存储结构单元(102)中的内存分配使用共享内存(103)分配管理,所述装置在统一访问接口(101)中对数据预先进行分片处理;所述分片处理包括如下步骤:获得键(210),并对键计算哈希数(202),将所得哈希数对分片数量取余(203),结果即为键的分片序号,之后所述装置根据所述分片号获取分片(204);所述统一访问接口(101)包括查询接口(1011)、累加接口(1012),并且所述应用程序进行数据查询、累加操作时,所述装置不需要获得锁服务。

【技术特征摘要】

【专利技术属性】
技术研发人员:周盛宽
申请(专利权)人:北京美数信息科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1