[发明专利]数据库访问的实现方法和装置有效
| 申请号: | 201710595507.X | 申请日: | 2017-07-20 |
| 公开(公告)号: | CN107506378B | 公开(公告)日: | 2020-06-16 |
| 发明(设计)人: | 范先凯 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/25 |
| 代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥;王剑 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 访问 实现 方法 装置 | ||
1.一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:
接收到数据插入请求,所述数据插入请求中携带业务类型;
确定所述业务类型的访问状态;
当所述访问状态为日常状态时,基于主写库完成数据插入,所述日常状态代表插入数据量正常;
当所述访问状态为弹写状态时,基于弹性写库完成数据插入,所述弹写状态代表插入数据量剧增。
2.根据权利要求1所述的方法,还包括:
当所述业务类型的访问状态由弹写状态更新为回迁状态时,将弹性写库中所述业务类型的数据回迁至主写库中,并在接收到针对所述业务类型的数据插入请求时,基于主写库完成数据插入,其中,所述回迁状态代表插入数据量由剧增变为正常。
3.根据权利要求2所述的方法,还包括:
在所述回迁状态下,停止对弹性库进行所述业务类型的数据修改和数据删除操作。
4.根据权利要求1所述的方法,还包括:
在所述弹写状态下,若接收到针对所述业务类型的数据查询请求,则确定所述数据查询请求的查询类别;
若所述查询类别为一对多查询,则分别查询读库和弹性写库,并将查询结果合并后返回;
若所述查询类别为一对一查询,则查询读库,若在读库中未查询到,则查询弹性写库,并将查询结果返回。
5.根据权利要求1所述的方法,还包括:
在所述弹写状态下,若接收到针对所述业务类型的数据修改或删除请求,则基于所述弹性写库中的全局插入表判断目标数据是否存储在弹性写库中;
若目标数据存储在弹性写库中,则基于弹性写库完成数据修改或删除;
若目标数据未存储在弹性写库中,则基于主写库完成数据修改或删除。
6.根据权利要求1所述的方法,所述完成数据插入的过程包括:
DAL拦截器基于目标字段判断是否需要加锁;
若需要加锁,则添加DAO注解标示,所述DAO注解标示包括:业务类型和所述目标字段;
启动异步线程基于所述注解标示进行加锁操作;
若加锁成功,则进行数据插入,并在数据插入成功后释放锁资源。
7.一种数据库访问的实现方法,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现方法包括:
在接收到数据插入请求时,确定数据库的访问状态;
当所述访问状态为日常状态时,基于主写库完成数据插入,所述日常状态代表插入数据量正常;
当所述访问状态为弹写状态时,基于弹性写库完成数据插入,所述弹写状态代表插入数据量剧增。
8.一种数据库访问的实现装置,应用于读写分离的数据库架构中,该读写分离的数据库架构包括主写库、弹性写库以及读库,其中,所述主写库与所述读库之间基于同步策略进行数据同步,所述数据库访问的实现装置包括:
请求接收单元,接收到数据插入请求,所述数据插入请求中携带业务类型;
状态确定单元,确定所述业务类型的访问状态;
主库插入单元,当所述访问状态为日常状态时,基于主写库完成数据插入,所述日常状态代表插入数据量正常;
弹性插入单元,当所述访问状态为弹写状态时,基于弹性写库完成数据插入,所述弹写状态代表插入数据量剧增。
9.根据权利要求8所述的装置,还包括:
回迁单元,当所述业务类型的访问状态由弹写状态更新为回迁状态时,将弹性写库中所述业务类型的数据回迁至主写库中,在接收到针对所述业务类型的数据插入请求时,通知主库插入单元基于主写库完成数据插入,其中,所述回迁状态代表插入数据量由剧增变为正常。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710595507.X/1.html,转载请声明来源钻瓜专利网。





