[发明专利]一种面向内存的多线程数据库设计方法有效
申请号: | 201710710565.2 | 申请日: | 2017-08-18 |
公开(公告)号: | CN107590199B | 公开(公告)日: | 2019-12-24 |
发明(设计)人: | 王怀军;田玲;李军怀;张聪 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06F16/21 | 分类号: | G06F16/21 |
代理公司: | 61214 西安弘理专利事务所 | 代理人: | 许志蛟 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 内存 多线程 数据库 设计 方法 | ||
本发明公开的一种面向内存的多线程数据库设计方法,包括以下步骤:步骤1,根据要支持的数据类型,设计并实现对应的内存容器;步骤2,设计内存数据库中键值对的组织方式;步骤3,设计与实现客户端的应用代理结构和服务管理结构;步骤4,设计客户端应用与内存数据库通信的协议解析模块;步骤5,内存数据库数据操作命令的处理解析;步骤6,设计并发模型;步骤7,实现淘汰策略和负载均衡;步骤8:设计并实现配置文件。本发明的设计方法方法在内存中重新设计了数据结构,并且在缓存、淘汰算法、并行操作方面也进行了相应的改进,提高了数据处理速度。
技术领域
本发明属于数据存储与处理方法技术领域,具体涉及一种面向内存的多线程数据库设计方法。
背景技术
传统关系数据库在一些数据敏感的服务中表现出了较差的性能,例如为海量数据创建索引、高并发访问,高流量网站的网页服务、以及新兴的流式媒体直播以及视频服务。关系型数据库主要适用于执行规模小而读写频繁或者大批量极少写访问的事务处理,因而在高并发访问情况下性能会很差,究其原因,有以下几点:
(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.1,确定数据类型,数据类型为字符串、链表、字典或集合中任意一种或多种;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710710565.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种气弹簧缩管翻边机
- 下一篇:一种方管折边装置