Multi thread database design method for memory is disclosed, which comprises the following steps: 1, according to the supported data types, the design and implementation of the corresponding memory container; step 2, the key to the organization design of the memory database; step 3, the design and implementation of the client application proxy structure and service management structure; step 4, protocol analysis module design and database communication client application memory; step 5, analytical processing of memory database data operation command; step 6, concurrent design model; step 7, to achieve the elimination strategy and load balancing; step 8: the design and implementation of the configuration file. The design method of the invention redesigns data structure in memory, and improves in cache, elimination algorithm and parallel operation, so as to improve data processing speed.
【技术实现步骤摘要】
一种面向内存的多线程数据库设计方法
本专利技术属于数据存储与处理方法
,具体涉及一种面向内存的多线程数据库设计方法。
技术介绍
传统关系数据库在一些数据敏感的服务中表现出了较差的性能,例如为海量数据创建索引、高并发访问,高流量网站的网页服务、以及新兴的流式媒体直播以及视频服务。关系型数据库主要适用于执行规模小而读写频繁或者大批量极少写访问的事务处理,因而在高并发访问情况下性能会很差,究其原因,有以下几点:(a)关系型数据库的数据模型一般是按照行存储,例如一条用户的信息要用多个字段存储,但是频繁修改的可能就其中一两个字段;(b)关系型数据库中的IO(输入输出)问题,由于磁盘的IO速度总是落后于内存,当每秒十万、百万甚至更多的用户同时发起请求时,磁盘的处理速度就满足不了需求;(c)在业务开发方面,基于行的存储可能会使得开发人员在数据获取与存储时,把重点转移到一些与业务无关的行为上,例如需要考虑如何从获取到的sql行数据中拆分出自己的数据模型;(d)数据是碎片化的,查询数据库的操作很不友好,为了适应关系型数据库的逻辑会使代码变得复杂而与业务不相关,利用单个SELECT和多个JOIN语句查询联系人数据不太实际,当数据在多张表里面分布存储时,会导致多表查询的问题;(e)全文搜索很困难,如果有人输入字符串“positionSitePoint”,操作者必须检查所有的表,看看它是否为联系人名字、电话、E-mail或者住址的一部分,并且需要做相应的排序。由上可知,相对于基于磁盘存储的传统关系型数据库,内存数据库将数据保存在内存中能够极大地提高应用的性能;同时内存数据库 ...
【技术保护点】
一种面向内存的多线程数据库设计方法,其特征在于,包括以下步骤:步骤1:根据需要支持的数据类型,选择对应的内存容器;步骤2:确定内存数据库中键值对的组织方式;步骤3:确定客户端应用代理结构和服务管理结构;步骤4:确定步骤3中客户端应用代理结构与步骤2中内存数据库的通信协议解析模块;步骤5:内存数据库数据操作的命令处理设定;步骤6:设计并发模型;步骤7:通过backend线程实现淘汰策略和负载均衡;步骤8:实现配置文件。
【技术特征摘要】
1.一种面向内存的多线程数据库设计方法,其特征在于,包括以下步骤:步骤1:根据需要支持的数据类型,选择对应的内存容器;步骤2:确定内存数据库中键值对的组织方式;步骤3:确定客户端应用代理结构和服务管理结构;步骤4:确定步骤3中客户端应用代理结构与步骤2中内存数据库的通信协议解析模块;步骤5:内存数据库数据操作的命令处理设定;步骤6:设计并发模型;步骤7:通过backend线程实现淘汰策略和负载均衡;步骤8:实现配置文件。2.根据权利要求1所述的一种面向内存的多线程数据库设计方法,其特征在于,所述步骤1的具体为:步骤1.1,确定数据类型,数据类型为字符串、链表、字典或集合中任意一种或多种;步骤1.2,根据步骤1中数据类型,确定操作API、实现数据结构;步骤1.3,确定对象系统,将封装底层数据结构作为一个对象,每个对象均有所属类型且由不同的数据结构编码。3.根据权利要求1所述的一种面向内存的多线程数据库设计方法,其特征在于,所述步骤3具体包括:(1)客户端应用代理结构的确定客户端应用代理结构是管理客户端应用输入输出的代理结构,客户端应用代理结构嵌入命令与参数字段,且包括查询缓冲区以及发送缓冲区;(4)服务管理结构的确定服务管理结构是根据客户端应用代理结构进行内存数据库资源的分配,服务管理结构包括客户端应用代理链表和统计信息的数据结构。4.根据权利要求1所述的一种面向内存的多线程数据库设计方法,其特征在于,所述步骤4的具体为:步骤4.1,读取所有报文数据如命令和参数、到客户端应用代理结构的缓冲区;步骤4.2,将缓冲区按照\n拆分;步骤4.3,按照协议将对应的数据复制到客户端应用代理结构的命令与参数中。5.根据权利要求1所述的一种面向内存的多线程数据...
【专利技术属性】
技术研发人员:王怀军,田玲,李军怀,张聪,
申请(专利权)人:西安理工大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。