[发明专利]访问数据库的方法和装置有效
| 申请号: | 202210761260.5 | 申请日: | 2022-06-30 |
| 公开(公告)号: | CN114817341B | 公开(公告)日: | 2022-09-06 |
| 发明(设计)人: | 杨航 | 申请(专利权)人: | 北京奥星贝斯科技有限公司 |
| 主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/23 |
| 代理公司: | 北京布瑞知识产权代理有限公司 11505 | 代理人: | 武甜 |
| 地址: | 100020 北京市朝阳区东三*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 访问 数据库 方法 装置 | ||
1.一种访问数据库的方法,所述方法应用于服务端,所述服务端位于客户端和所述数据库之间,所述方法包括:
从所述客户端接收数据库查询语句;
向所述数据库发送所述数据库查询语句,以获取针对所述数据库查询语句的查询结果,所述查询结果包括m×n个数据项;
基于二维存储结构缓存所述查询结果,以便所述客户端对所述查询结果进行查询,其中,所述二维存储结构包括m个横向链表和n个纵向链表,所述m个横向链表和所述n个纵向链表交织,形成包含m×n个节点的十字链表,所述m×n个节点与所述m×n个数据项一一对应。
2.根据权利要求1所述的方法,所述m×n个节点由所述服务端的计算层生成,且所述m×n个节点分别用于存储所述m×n个数据项的引用,所述m×n个数据项存储在所述服务端的存储层中,所述计算层和所述存储层之间设置有访问层,
所述方法还包括:
向所述访问层发送针对所述m×n个数据项中的目标数据项的访问请求,所述访问请求包括所述目标数据项的引用;
利用所述访问层将所述目标数据项的引用转换成IO请求,并向所述存储层发送所述IO请求,以访问所述目标数据项。
3.根据权利要求2所述的方法,所述访问层被实现为随机访问文件,所述随机访问文件中包含一段连续的逻辑地址,所述访问层记录有所述逻辑地址与所述存储层中的物理地址的映射关系,所述目标数据项的访问请求被转换为针对所述随机访问文件的随机访问请求,所述访问层基于所述映射关系将针对所述随机访问文件的随机访问请求转换成针对所述存储层的物理IO请求。
4.根据权利要求2所述的方法,所述存储层包括两级缓存,所述两级缓存中的第一级缓存位于内存中,所述两级缓存中的第二级缓存位于磁盘中,所述访问层用于管理所述存储层中的物理数据块在所述两级缓存中的存储位置。
5.根据权利要求4所述的方法,所述存储层中的物理数据块在所述两级缓存中的存储位置是基于所述物理数据块的被访问频次确定的,若所述第一级缓存的剩余容量不足,所述存储层用于将所述第一级缓存中最近最少使用的物理数据块换出至所述第二级缓存中。
6.根据权利要求1所述的方法,所述服务端还存储有所述十字链表的索引信息,所述索引信息用于索引所述十字链表中的各链表的表头。
7.根据权利要求2所述的方法,所述m×n个数据项和/或所述目标数据项中的各数据项的引用包括所述各数据项的起始存储位置和存储占用空间的大小。
8.根据权利要求2所述的方法,在新增所述存储层中存储的物理数据块时采用乐观锁机制,所述乐观锁机制用于对所述存储层的第一级缓存中的部分槽位进行锁定,所述乐观锁是基于信号量实现的。
9.根据权利要求2所述的方法,在更新所述存储层中存储的物理数据块时采用悲观锁机制,所述悲观锁机制用于对需要更新的物理数据块加悲观锁。
10.根据权利要求1所述的方法,在所述基于二维存储结构缓存所述查询结果之后,所述方法还包括:
对基于所述二维存储结构缓存的所述查询结果进行计算,以将计算得到的查询结果返回给所述客户端,其中,对缓存的所述查询结果进行计算包括以下计算类型中的一种或多种:选择计算、投影计算、以及联结计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奥星贝斯科技有限公司,未经北京奥星贝斯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210761260.5/1.html,转载请声明来源钻瓜专利网。





