一种数据库的实现方法和设备的制造方法_6

文档序号:8473082阅读:来源:国知局
性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
[0169]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0170]虽然已经参考若干【具体实施方式】描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的【具体实施方式】,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
【主权项】
1.一种方法,包括: 根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间; 建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。
2.根据权利要求1所述的方法,其中,所述目标用户为当前正在进行注册的用户; 所述根据所述目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库,包括:响应于所述目标用户的注册请求,从所述可用数据库中,查找对应时间段的起始时刻最接近于当前时刻的数据库,作为所述目标数据库,并确定所述目标数据库用于记录所述目标用户的数据。
3.根据权利要求1所述的方法,其中,所述目标用户为过去已注册的用户; 所述根据所述目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库,包括:响应于对已注册用户的数据的分库分表指令,针对所述目标用户的数据,获取所述目标用户的注册时间作为目标注册时间,查找对应时间段包含所述目标注册时间的数据库作为所述目标数据库,并确定所述目标数据库用于记录所述目标用户的数据。
4.根据权利要求1所述的方法,还包括: 监测所述目标数据库的数据负载;其中,在所有可用数据库对应时间段的起始时刻中,所述目标数据库对应时间段的起始时刻最接近于当前时刻; 响应于所述目标数据库的数据负载超过所述目标数据库的负载上限,将当前时刻确定为所述目标数据库对应时间段的结束时刻,并增加一个可用数据库作为第一数据库,将所述第一数据库对应时间段的起始时刻确定为当前时刻。
5.根据权利要求1所述的方法,还包括: 监测所述目标数据库的数据负载;其中,相对于所述目标数据库对应时间段的起始时亥IJ,存在其他可用数据库对应时间段的起始时刻更接近于当前时刻;所述目标数据库具有多个数据库分区,所述目标数据库中各用户的数据是按照散列方式映射到所述目标数据库的各个数据库分区中的; 响应于所述目标数据库的数据负载超过所述目标数据库的负载上限,增加一个或多个可用数据库作为第二数据库,将所述目标数据库的一部分数据库分区迀移到相应第二数据库,并为所述目标数据库建立各数据库分区与用于承载各数据库分区的数据库之间的第二对应关系,以便根据所述第二对应关系查找和/或记录所述目标数据库的各数据库分区中各用户的数据。
6.根据权利要求1所述的方法,还包括: 建立路由数据库,并将各用户的数据路由信息记录到所述路由数据库;其中,对于任意一个用户来说,该用户的数据路由信息表示该用户的用户标识与用于记录该用户数据的数据库之间的对应关系; 为所述路由数据库增加可持久化保存数据的独立缓存,并将所述路由数据库中记录的数据路由信息记录到所述独立缓存中,以便响应于包含有所述目标用户的用户标识的第一数据操作请求,在所述独立缓存中查找所述目标用户的数据路由信息,如果所述独立缓存中查找不到所述目标用户的数据路由信息则在所述路由数据库中查找所述目标用户的数据路由信息,以便根据所述目标用户的数据路由信息确定出所述目标数据库,从而通过所述目标数据库来实现所述第一数据操作。
7.根据权利要求6所述的方法,还包括: 在所述独立缓存中,按照各用户的活跃时间对各用户的数据路由信息进行排序; 按照排序结果,以活跃时间最接近于当前时刻的N个用户作为当前活跃用户,将各个所述当前活跃用户的数据路由信息保存到本地内存中,以便响应于包含有所述目标用户的用户标识的第二数据操作请求,在所述本地内存中查找所述目标用户的数据路由信息,如果所述本地内存中查找不到所述目标用户的数据路由信息则在所述独立缓存中查找所述目标用户的数据路由信息,如果所述本地内存和所述独立缓存中均查找不到所述目标用户的数据路由信息则在所述路由数据库中查找所述目标用户的数据路由信息,以便根据所述目标用户的数据路由信息确定出所述目标数据库,从而通过所述目标数据库来实现所述第二数据操作;其中,所述N为当前活跃用户数量的预设值。
8.根据权利要求1所述的方法,还包括: 响应于未包含用户标识的第三数据操作请求,获取所述第三数据操作对应的全局唯一主键,并通过所述全局唯一主键对应的数据库来实现所述第三数据操作; 其中,所述全局唯一主键,用于在各个数据库中唯一地标识出所述第三数据操作对应数据所在的数据库。
9.根据权利要求1所述的方法,还包括: 响应于属于跨库事务的第四数据操作请求,通过用于实现所述第四数据操作的数据库,实现所述第四数据操作并将所述第四数据操作标记为待确认状态;其中,所述跨库事务包含有实现于多个数据库的多个数据操作; 响应于在所述跨库事务的处理期限内查询到所述跨库事务包含的所有数据操作均已实现完成,将所述第四数据操作标记为完成状态; 响应于在所述跨库事务的处理期限内查询不到所述跨库事务包含的所有数据操作均已实现完成,在用于实现所述第四数据操作的数据库中取消所述第四数据操作。
10.根据权利要求1所述的方法,还包括: 响应于基于初始数据的标识而发起的第五数据操作请求,根据所述初始数据的标识,通过用于记录所述初始数据的数据库对所述初始数据实现所述第五数据操作,并查找出后续数据的标识;所述第五数据操作涉及的数据包括所述初始数据和至少一个所述后续数据; 根据各所述后续数据的标识,通过各个用于记录各所述后续数据的数据库对各所述后续数据分别实现所述第五数据操作。
11.一种设备,包括: 第一确定模块,用于根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间; 第一建立模块,用于建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。
12.根据权利要求11所述的设备,其中,所述目标用户为当前正在进行注册的用户; 所述第一确定模块包括: 第一查找子模块,用于响应于所述目标用户的注册请求,从所述可用数据库中,查找对应时间段的起始时刻最接近于当前时刻的数据库,作为所述目标数据库; 第一确定子模块,用于确定所述目标数据库用于记录所述目标用户的数据。
13.根据权利要求11所述的设备,其中,所述目标用户为过去已注册的用户; 所述第一确定模块包括: 获取子模块,用于响应于对已注册用户的数据的分库分表指令,针对所述目标用户的数据,获取所述目标用户的注册时间作为目标注册时间; 第二查找子模块,用于查找对应时间段包含所述目标注册时间的数据库作为所述目标数据库; 第二确定子模块,用于确定所述目标数据库用于记录所述目标用户的数据。
14.根据权利要求11所述的设备,还包括: 第一监测模块,用于监测所述目标数据库的数据负载;其中,在所有可用数据库对应时间段的起始时刻中,所述目标数据库对应时间段的起始时刻最接近于当前时刻; 第二确定模块,用于响应于所述目标数据库的数据负载超过所述目标数据库的负载上限,将当前时刻确定为所述目标数据库对应时间段的结束时刻; 第一增加模块,用于增加一个可用数据库作为第一数据库;第三确定模块,用于将所述第一数据库对应时间段的起始时刻确定为当前时刻。
15.根据权利要求11所述的设备,还包括: 第二监测模块,用于监测所述目标数据库的数据负载;其中,相对于所述目标数据库对应时间段的起始时刻,存在其他可用数据库对应时间段的起始时刻更接近于当前时刻;所述目标数据库具有多个数据库分区,所述目标数据库中各用户的数据是按照散列方式映射到所述目标数据库的各个数据库分区中的; 第二增加模块,用于响应于所述目标数据库的数据负载超过所述目标数据库的负载上限,增加一个或多个可用数据库作为第二数据库; 第一迀移模块,用于将所述目标数据库的一部分数据库分区中各用户的数据迀移到相应第二数据库; 第二建立模块,用于为所述目标数据库建立各数据库分区与用于承载各数据库分区的第二数据库之间的第二对应关系,以便根据所述第二对应关系查找和/或记录所述目标数据库的各数据库分区中各用户的数据。
16.根据权利要求11所述的设备,还包括: 第三建立模块,用于建立路由数据库,并将各用户的数据路由信息记录到所述路由数据库;其中,对于任意一个用户来说,该用户的数据路由信息表示该用户的用户标识与用于记录该用户数据的数据库之间的对应关系;第三增加模块,用于为所述路由数据库增加可持久化保存数据的独立缓存; 记录模块,用于将所述路由数据库中记录的数据路由信息记录到所述独立缓存中,以便响应于包含有所述目标用户的用户标识的第一数据操作请求,在所述独立缓存中查找所述目标用户的数据路由信息,如果所述独立缓存中查找不到所述目标用户的数据路由信息则在所述路由数据库中查找所述目标用户的数据路由信息,以便根据所述目标用户的数据路由信息确定出所述目标数据库,从而通过所述目标数据库来实现所述第一数据操作。
17.根据权利要求16所述的设备,还包括: 排序模块,用于在所述独立缓存中,按照各用户的活跃时间对各用户的数据路由信息进行排序; 保存模块,用于按照排序结果,以活跃时间最接近于当前时刻的N个用户作为当前活跃用户,将各个所述当前活跃用户的数据路由信息保存到本地内存中,以便响应于包含有所述目标用户的用户标识的第二数据操作请求,在所述本地内存中查找所述目标用户的数据路由信息,如果所述本地内存中查找不到所述目标用户的数据路由信息则在所述独立缓存中查找所述目标用户的数据路由信息,如果所述本地内存和所述独立缓存中均查找不到所述目标用户的数据路由信息则在所述路由数据库中查找所述目标用户的数据路由信息,以便根据所述目标用户的数据路由信息确定出所述目标数据库,从而通过所述目标数据库来实现所述第二数据操作;其中,所述N为当前活跃用户数量的预设值。
18.根据权利要求11所述的设备,还包括: 获取模块,用于响应于未包含用户标识的第三数据操作请求,获取所述第三数据操作对应的全局唯一主键; 第一实现模块,用于通过所述全局唯一主键对应的数据库来实现所述第三数据操作; 其中,所述全局唯一主键,用于在各个数据库中唯一地标识出所述第三数据操作对应数据所在的数据库。
19.根据权利要求11所述的设备,还包括: 第二实现模块,用于响应于属于跨库事务的第四数据操作请求,通过用于实现所述第四数据操作的数据库,实现所述第四数据操作并将所述第四数据操作标记为待确认状态;其中,所述跨库事务包含有实现于多个数据库的多个数据操作; 标记模块,用于响应于在所述跨库事务的处理期限内查询到所述跨库事务包含的所有数据操作均已实现完成,将所述第四数据操作标记为完成状态; 取消模块,用于响应于在所述跨库事务的处理期限内查询不到所述跨库事务包含的所有数据操作均已实现完成,在用于实现所述第四数据操作的数据库中取消所述第四数据操作。
20.根据权利要求11所述的设备,还包括: 第三实现模块,用于响应于基于初始数据的标识而发起的第五数据操作请求,根据所述初始数据的标识,通过用于记录所述初始数据的数据库对所述初始数据实现所述第五数据操作; 查找模块,用于查找出后续数据的标识;所述第五数据操作涉及的数据包括所述初始数据和至少一个所述后续数据; 第四实现模块,用于根据各所述后续数据的标识,通过各个用于记录各所述后续数据的数据库对各所述后续数据分别实现所述第五数据操作。
【专利摘要】本发明的实施方式提供了一种数据库的实现方法。该方法包括:根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间;建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。通过按照注册时间对用户数据进行数据库分库分表,本发明的方法避免了应用系统运行时大量数据频繁的数据迁移,从而显著地提升了应用系统的数据库性能,为用户带来了更好的体验。此外,本发明的实施方式提供了一种数据库的实现设备。
【IPC分类】G06F17-30
【公开号】CN104794249
【申请号】CN201510250110
【发明人】杜杰朋, 曹鲁, 吴波, 马坤
【申请人】乐得科技有限公司
【公开日】2015年7月22日
【申请日】2015年5月15日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1