一种分布式数据存储方法及装置与流程

文档序号:39325895发布日期:2024-09-10 11:28阅读:16来源:国知局
一种分布式数据存储方法及装置与流程

本发明涉及数据处理,具体涉及一种分布式数据存储方法及装置。


背景技术:

1、随着互联网的快速发展,各类应用的数据量急速增长,传统的单一关系型数据库已无法满足应用数据增长的需求,分库分表中间件以及分布式数据库成为数据量较大的应用的转型首选。数据分片策略是进行分库分表和采用分布式数据库的一个关键设计,分片策略一般需要结合业务特征进行分析,选择适合的策略。常用的数据分片策略有范围分片、哈希取模分片、一致性哈希分片等。范围分片如同一个地区或同一年的数据放在同一个分片,这种分片可能会造成数据倾斜问题。哈希取模分片在数据量大的情况下基本可以保障数据平均分布,数据倾斜问题少。一致性哈希分片在哈希取模的基础上支持节点增加减少情况下做最少的数据迁移。这三种分片有各自的优缺点,应用选择分片策略时需要结合应用的业务特征分析进行选择,如选用范围分片就需要考虑数据倾斜问题,选用哈希策略就需要考虑分布式事务对应用功能的影响和对系统性能的影响。

2、在一些大部分功能均围绕某一类业务对象和关联该业务对象的一个核心业务信息展开的系统如企业银行账户管理系统涉及到企业基本信息和企业银行账户信息,其他信息均围绕这两类信息生成,如每种银行账户的详细信息,账户变更信息等,数据分片策略以业务对象的某个关键信息如企业的统一社会信用码为分片键通过哈希分片将企业信息平均分布在n个节点,企业的银行账户信息均跟随企业信息进行分片,保证和企业信息、企业银行账户信息有关的增删查改均可以在单分片完成,避免跨分片的分布式事务。使用这种分布策略会导致数据倾斜的问题,如某些分片经营范围广、业务覆盖范围广的企业多,银行账户数据量多,增长快,某些分片企业业务覆盖范围小,银行账户数据量少,增长慢。通过定期的数据迁移可以缓解该问题,但数据迁移涉及数据分片位置发生变化,迁移期间会导致数据无法查询或操作,对业务有较大影响,一般需要停止业务进行数据迁移。


技术实现思路

1、针对现有技术中的问题,本发明实施例提供一种分布式数据存储方法及装置,能够至少部分地解决现有技术中存在的问题。

2、一方面,本发明提出一种分布式数据存储方法,包括:

3、接收在分片节点列表的生效时间之后通过应用服务发送的分片计算请求;

4、其中,所述分片节点列表包含在分片队列信息中,所述分片队列信息中的分片节点列表和分片节点列表的生效时间根据定时计算的与每个分片分别对应的数据量动态更新;所述分片计算请求携带有分片键;

5、若确定在分片节点对应关系列表中不存在所述分片键,则根据所述分片节点列表中的分片节点数量对所述分片键进行哈希计算,得到用于存储与所述分片键相对应数据的目标分片;

6、其中,所述分片节点对应关系列表包括预设分片键与预设分片之间的对应关系;

7、将所述分片键与所述目标分片之间的对应关系记录在所述分片节点对应关系列表中,并返回所述目标分片至所述应用服务,以供通过所述应用服务将与所述分片键相对应数据存储到所述目标分片中。

8、其中,根据定时计算的与每个分片分别对应的数据量动态更新所述分片队列信息,包括:

9、计算每个分片分别对应的数据量,将数据量最多的分片与比较基准分片的数据量进行比较;

10、其中,所述比较基准分片包括数据量次多的分片、数据量最少的分片和除去数据量最多的分片之外剩余分片的数据量平均值中的其中一项;

11、若确定数据量最多的分片对应的数据量超过比较基准分片的数据量的部分达到预设比例,则将数据量最多的分片从所述分片节点列表中删除,并将分片节点列表的生效时间更新为定时计算起始时间。

12、其中,所述分布式数据存储方法还包括:

13、若确定任意两个分片的数据量的比较结果都小于预设数量,则将所述分片队列信息中的分片节点列表恢复为初始化状态的分片队列信息中的分片节点列表,并将分片节点列表的生效时间更新为定时计算起始时间。

14、其中,所述分布式数据存储方法还包括:

15、若确定数据量最多的分片对应的数据量超过比较基准分片的数据量的部分未达到预设比例,且数据量最多的分片对应的数据量与至少一个分片的数据量的比较结果大于等于所述预设数量,则保持所述分片队列信息中的分片节点列表不变,并将分片节点列表的生效时间更新为定时计算起始时间。

16、其中,所述分布式数据存储方法还包括:

17、若确定在分片节点对应关系列表中存在所述分片键,则直接使用所述对应关系获取所述目标分片,并返回所述目标分片至所述应用服务,以供通过所述应用服务将与所述分片键相对应数据存储到所述目标分片中。

18、其中,所述分布式数据存储方法还包括:

19、清除在预设时间之前的所述分片队列信息中的分片节点列表及其对应的生效时间。

20、其中,通过数据分片计算服务执行所述分布式数据存储方法。

21、一方面,本发明提出一种分布式数据存储装置,包括:

22、接收单元,用于接收在分片节点列表的生效时间之后通过应用服务发送的分片计算请求;

23、其中,所述分片节点列表包含在分片队列信息中,所述分片队列信息中的分片节点列表和分片节点列表的生效时间根据定时计算的与每个分片分别对应的数据量动态更新;所述分片计算请求携带有分片键;

24、确定单元,用于若确定在分片节点对应关系列表中不存在所述分片键,则根据所述分片节点列表中的分片节点数量对所述分片键进行哈希计算,得到用于存储与所述分片键相对应数据的目标分片;

25、其中,所述分片节点对应关系列表包括预设分片键与预设分片之间的对应关系;

26、存储单元,用于将所述分片键与所述目标分片之间的对应关系记录在所述分片节点对应关系列表中,并返回所述目标分片至所述应用服务,以供通过所述应用服务将与所述分片键相对应数据存储到所述目标分片中。

27、再一方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,

28、所述处理器和所述存储器通过所述总线完成相互间的通信;

29、所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:

30、接收在分片节点列表的生效时间之后通过应用服务发送的分片计算请求;

31、其中,所述分片节点列表包含在分片队列信息中,所述分片队列信息中的分片节点列表和分片节点列表的生效时间根据定时计算的与每个分片分别对应的数据量动态更新;所述分片计算请求携带有分片键;

32、若确定在分片节点对应关系列表中不存在所述分片键,则根据所述分片节点列表中的分片节点数量对所述分片键进行哈希计算,得到用于存储与所述分片键相对应数据的目标分片;

33、其中,所述分片节点对应关系列表包括预设分片键与预设分片之间的对应关系;

34、将所述分片键与所述目标分片之间的对应关系记录在所述分片节点对应关系列表中,并返回所述目标分片至所述应用服务,以供通过所述应用服务将与所述分片键相对应数据存储到所述目标分片中。

35、本发明实施例提供一种非暂态计算机可读存储介质,包括:

36、所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:

37、接收在分片节点列表的生效时间之后通过应用服务发送的分片计算请求;

38、其中,所述分片节点列表包含在分片队列信息中,所述分片队列信息中的分片节点列表和分片节点列表的生效时间根据定时计算的与每个分片分别对应的数据量动态更新;所述分片计算请求携带有分片键;

39、若确定在分片节点对应关系列表中不存在所述分片键,则根据所述分片节点列表中的分片节点数量对所述分片键进行哈希计算,得到用于存储与所述分片键相对应数据的目标分片;

40、其中,所述分片节点对应关系列表包括预设分片键与预设分片之间的对应关系;

41、将所述分片键与所述目标分片之间的对应关系记录在所述分片节点对应关系列表中,并返回所述目标分片至所述应用服务,以供通过所述应用服务将与所述分片键相对应数据存储到所述目标分片中。

42、本发明实施例提供的分布式数据存储方法及装置,接收在分片节点列表的生效时间之后通过应用服务发送的分片计算请求;其中,所述分片节点列表包含在分片队列信息中,所述分片队列信息中的分片节点列表和分片节点列表的生效时间根据定时计算的与每个分片分别对应的数据量动态更新;所述分片计算请求携带有分片键;若确定在分片节点对应关系列表中不存在所述分片键,则根据所述分片节点列表中的分片节点数量对所述分片键进行哈希计算,得到用于存储与所述分片键相对应数据的目标分片;其中,所述分片节点对应关系列表包括预设分片键与预设分片之间的对应关系;将所述分片键与所述目标分片之间的对应关系记录在所述分片节点对应关系列表中,并返回所述目标分片至所述应用服务,以供通过所述应用服务将与所述分片键相对应数据存储到所述目标分片中,能够实现平滑解决数据倾斜问题且不影响应用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1