技术新讯 > 计算推算,计数设备的制造及其应用技术 > 存储集群系统的数据处理方法、装置、产品、设备及介质与流程  >  正文

存储集群系统的数据处理方法、装置、产品、设备及介质与流程

  • 国知局
  • 2024-11-06 15:05:47

本发明涉及集中式存储,特别是涉及一种存储集群系统的数据处理方法、装置、产品、设备及介质。

背景技术:

1、存储集群系统由多个控制器组成,多个控制器互相协调工作,服务主机业务,所以控制器之间互相通信不可避免。且整个存储集群系统的中存在多个业务模块,在存储业务过程中也需要控制器之间的互相通信。

2、存储集群系统中控制器之间的通信效率会直接影响这些业务模块的运行效率,从而影响整个系统的性能;此外,存储集群系统必须保证数据的一致性,否则会造成业务数据错乱和丢失等情况,导致整个系统的业务中断,影响存储系统的可靠性。

3、由此可见,如何实现存储集群系统的高效通信以及保证数据一致性,以提高存储集群系统的性能是本领域人员亟需解决的技术问题。

技术实现思路

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、若仅检测到队列深度大于所述队列切换阈值的第一传输队列的数量为1,则获取平均队列深度最小的传输队列,将平均队列深度最小的传输队列作为所述第二传输队列;或,获取空闲时间最长的传输队列,将空闲时间最长的传输队列作为所述第二传输队列;或,根据第一预设时长内各传输队列的平均队列深度和空闲时间确定各传输队列的最终队列深度;获取所有所述最终队列深度中的最小的最终队列深度,将所述最小的最终队列深度对应的传输队列作为所述第二传输队列。

28、另一方面,所述根据队列深度大于所述队列切换阈值的第一传输队列的数量以及所述第一预设时长内各传输队列的平均队列深度和/或各传输队列的空闲时间从所有的队列深度小于所述队列切换阈值的传输队列中选取出所述第二传输队列包括:

29、若仅检测到队列深度大于所述队列切换阈值的第一传输队列的数量大于1,则按照平均队列深度从小到大的顺序对传输队列进行排序,并按照传输队列的顺序依次选出传输队列作为所述第二传输队列;或,按照空闲时长从大到小的顺序对传输队列进行排序,并按照传输队列的顺序依次选出传输队列作为所述第二传输队列;或,根据第一预设时长内各传输队列的平均队列深度和空闲时间确定各传输队列的最终队列深度;按照最终队列深度从小到大的顺序对传输队列进行排序,并按照传输队列的顺序依次选出传输队列作为所述第二传输队列。

30、另一方面,所述获取第二传输队列包括:

31、若检测到所述剩余传输队列中不存在队列深度小于所述队列切换阈值的传输队列,则从所述剩余传输队列中获取目标传输队列;其中,所述目标传输队列为所述剩余传输队列中业务任务的优先级小于队列深度大于所述队列切换阈值的第一传输队列上的业务任务的优先级的传输队列;

32、对所述目标传输队列的队列深度进行排序;

33、获取所有的所述目标传输队列中队列深度最小的传输队列;

34、将所有的所述目标传输队列中队列深度最小的传输队列作为所述第二传输队列。

35、另一方面,在将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列之前,还包括:

36、获取待形成的第二传输队列,将所述待形成的第二传输队列作为新的所述第一传输队列,返回检测所述第一传输队列的队列深度是否大于所述队列切换阈值的步骤,直至检测到新的所述第一传输队列的队列深度小于或等于所述队列切换阈值时停止返回,并进入所述将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列的步骤;其中,所述待形成的第二传输队列为将待处理的业务任务迁移至第二传输队列后所形成的传输队列。

37、另一方面,所述将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列包括:

38、将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列的头部;其中,传输队列的头部位置至尾部位置的业务任务的优先级依次降低;

39、所述利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务包括:

40、在检测到所述目标线程当前处理的任务处理完成后,利用所述目标线程处理位于所述第二传输队列的头部的待处理的业务任务。

41、另一方面,在所述将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列之后,还包括:

42、记录迁移到所述第二传输队列上的待处理的业务任务的位置;

43、在所述利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务之前,还包括:

44、若检测到新的待处理的业务任务待迁移至所述第二传输队列上,则从记录的位置开始将所述新的待处理的业务任务迁移至所述第二传输队列上。

45、另一方面,在所述将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列之后,所述利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务之前,还包括:

46、获取在待处理的业务任务由所述第一传输队列迁移至所述第二传输队列之前,所述第二传输队列上的业务任务的第三数量;

47、自将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列开始,第二预设时长内获取所述第二传输队列上的业务任务的第四数量;

48、判断所述第四数量是否大于所述第三数量;

49、若是,则进入所述利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务的步骤。

50、另一方面,所述利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务包括:

51、在检测到所述目标线程上正在处理的业务任务处理完成后,利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务。

52、另一方面,在所述利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务之后,还包括:

53、利用所述目标线程并按照所述第二传输队列上待处理的业务任务的优先级顺序处理所述第二传输队列上的业务任务。

54、另一方面,所述方法还包括:

55、在检测到用于处理所述第二传输队列的处理器核心与用于处理其他业务模块的处理器核心为不同核心,或,在检测到用于处理所述第二传输队列的处理器核心与用于处理其他业务模块的处理器核心为同一核心、当前处理器核心的线程利用率大于第一阈值,且处理传输队列的线程占用率大于或等于第二阈值的情况下,则保持利用用于处理所述第二传输队列的处理器核心对应的线程处理位于所述第二传输队列上的待处理的业务任务。

56、另一方面,所述方法还包括:

57、在检测到所述第一传输队列的队列深度小于或等于所述队列切换阈值的情况下,获取用于处理所述第一传输队列的处理器核心的线程利用率;

58、若检测用于处理所述第一传输队列的处理器核心的线程利用率小于所述第一阈值,则利用用于处理所述第一传输队列的处理器核心的线程并按照所述第一传输队列中业务任务的优先级顺序处理位于所述第一传输队列上的待处理的业务任务。

59、另一方面,所述方法还包括:

60、若检测用于处理所述第一传输队列的处理器核心的线程利用率大于或等于所述第一阈值,则确定待使用的线程;

61、将用于处理所述第一传输队列上的业务任务的线程切换至所述待使用的线程;

62、利用所述待使用的线程并按照所述第一传输队列中业务任务的优先级顺序处理位于所述第一传输队列上的待处理的业务任务。

63、另一方面,所述确定待使用的线程包括:

64、若检测到用于处理所述第一传输队列的处理器核心与用于处理其他业务模块的处理器核心为同一核心,且处理传输队列的线程占用率小于所述第二阈值,则确定所述待使用的线程为线程利用率小于所述第一阈值的处理器核心对应的线程。

65、另一方面,所述确定待使用的线程包括:

66、在检测到用于处理所述第一传输队列的处理器核心与用于处理其他业务模块的处理器核心为不同核心,或,在检测到用于处理所述第一传输队列的处理器核心与用于处理其他业务模块的处理器核心为同一核心、当前处理器核心的线程利用率大于第一阈值,且处理传输队列的线程占用率大于或等于第二阈值的情况下,则保持利用用于处理所述第一传输队列的处理器核心对应的线程处理位于所述第一传输队列上的待处理的业务任务。

67、为了解决上述技术问题,本发明还提供一种存储集群系统的数据处理装置,包括:

68、获取模块,用于获取待处理的业务任务、待处理的业务任务所在的第一传输队列;

69、获取及迁移模块,用于在检测到所述第一传输队列的队列深度大于队列切换阈值的情况下,获取第二传输队列,并将待处理的业务任务由所述第一传输队列迁移至所述第二传输队列;其中,所述第二传输队列的队列深度小于所述第一传输队列的队列深度,所述第二传输队列为剩余传输队列中的传输队列,所述剩余传输队列为所有的传输队列中除队列深度大于所述队列切换阈值的第一传输队列外的传输队列;

70、获取及切换模块,用于在检测到用于处理所述第二传输队列的处理器核心与用于处理其他业务模块的处理器核心为同一核心的情况下,若检测到当前处理器核心的线程利用率大于第一阈值,且处理传输队列的线程占用率小于第二阈值,则获取目标线程,并将用于处理所述第二传输队列上的业务任务的线程切换至所述目标线程;其中,所述目标线程为线程利用率小于所述第一阈值的处理器核心对应的线程;

71、处理模块,用于若检测到位于所述第一传输队列上的目标业务任务处理完成后,利用所述目标线程处理位于所述第二传输队列上的待处理的业务任务;其中,所述目标业务任务为待处理的业务任务未迁移前,在所述第一传输队列中位于待处理的业务任务之前的业务任务。

72、为了解决上述技术问题,本发明还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述的存储集群系统的数据处理方法的步骤。

73、为了解决上述技术问题,本发明还提供一种存储集群系统的数据处理设备,包括:

74、存储器,用于存储计算机程序;

75、处理器,用于执行所述计算机程序时实现上述的存储集群系统的数据处理方法的步骤。

76、为了解决上述技术问题,本发明还提供一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的存储集群系统的数据处理方法的步骤。

77、本发明的有益效果在于,该方法中,在检测到待处理的业务任务所在的第一传输队列的队列深度大于队列切换阈值,则从剩余传输队列中选取出队列深度小于第一传输队列的队列深度的第二传输队列,将待处理的任务由第一传输队列切换至第二传输队列,实现了待处理任务的传输队列的灵活调整;且检测到用于处理第二传输队列的处理器核心与用于处理其他业务模块的处理器核心为同一核心,当前处理器核心的线程利用率大于第一阈值,且处理传输队列的线程占用率小于第二阈值,将用于处理第二传输队列上的业务任务的线程切换至目标线程,最后由目标线程处理位于第二传输队列上的待处理的业务任务,实现了对待处理的任务的线程的灵活调整;其次,目标线程为线程利用率小于第一阈值的处理器核心对应的线程,即目标线程为相对空闲的线程,故而,相比于利用第二传输队列原来的线程处理待处理的业务任务的方式,本发明提供的方法避免了其他业务模块与传输队列抢占处理器核心的情况,提高了待处理的任务的传输效率,提高了存储集群系统的控制器间的通信效率,且充分利用了处理器的资源,提高了处理器资源的利用率;再次,在检测到第一传输队列中位于待处理的业务任务之前的业务任务处理完成后,才利用目标线程处理位于第二传输队列上的待处理的业务任务,保障了数据顺序传输,即遵循了保序机制,保证了数据一致性,提高了存储集群系统的可靠性。

78、此外,为待处理的业务任务的优先级顺序,根据待处理业务任务的优先级情况为各待处理的业务任务分配传输队列。优先级高的业务任务单独用一个传输队列,优先级低的业务任务共用传输队列,即优先级高的业务任务分布的传输队列比较分散,而优先级低的业务任务分布的传输队列比较集中;且同一个传输队列上业务任务的关联性较小,保证了优先级高的业务任务能被优先处理到。

79、在确定第二传输队列时,首先从小于第一传输队列的队列深度的传输队列中选取小于第一深度阈值的第二目标剩余传输队列,再从第二目标剩余传输队列中随机选取传输队列作为第二传输队列。可见,以第一深度阈值作为判断基准,确定出了第二传输队列。

80、在确定第二传输队列时,从多个队列深度小于队列切换阈值的传输队列中获取队列深度小于第二深度阈值的第三目标剩余传输队列,再从第三目标剩余传输队列中随机选取传输队列作为第二传输队列。可见,以队列切换阈值和第二深度阈值为基准,确定出了第二传输队列。在确定第二传输队列时,考虑到了待处理的业务任务的数据量的大小,选取一个第二传输队列或按照队列深度从小到大的顺序依次选取多个传输队列作为第二传输队列,使得选取的第二传输队列较合适。

81、在确定所要切换到的传输队列(即第二传输队列)时,若剩余传输队列中存在多个队列深度小于队列切换阈值的传输队列,则当仅检测到一个队列深度大于队列切换阈值的第一传输队列,由于以最小的队列深度(包括仅以队列深度作为参数确定出的值,或者以队列深度和空闲时间综合确定出的队列深度)或者最长空闲时间的传输队列作为将待处理的业务任务切换到的传输队列,因此,将待处理的业务任务切换到第二传输队列上,可提高对待处理业务任务的处理效率。

82、在确定所要切换到的传输队列(即第二传输队列)时,若剩余传输队列中存在多个队列深度小于队列切换阈值的传输队列,则当检测到多个队列深度大于队列切换阈值的第一传输队列,则按照队列深度从小到大的顺序或者空闲时长从大到小的顺序为各队列深度大于队列切换阈值的第一传输队列确定对应的第二传输队列;由于找队列深度小的传输队列或空闲时长大的传输队列作为各第二传输队列,因此,将待处理的业务任务切换到第二传输队列上,可提高对待处理业务任务的处理效率。

83、在确定第二传输队列时,检测到剩余传输队列中不存在队列深度小于队列切换阈值的传输队列,则对剩余传输队列中业务任务的优先级小于队列深度大于队列切换阈值的第一传输队列上的业务任务的优先级的传输队列进行排序,从中找出队列深度最小的传输队列作为第二传输队列。由于以队列深度最小的传输队列作为第二传输队列,因此,将待处理的业务任务切换到第二传输队列上,可提高对待处理业务任务的处理效率。

84、在将待处理的业务任务由第一传输队列迁移至第二传输队列之前,先获取待形成的第二传输队列,然后将待形成的第二传输队列作为新的第一传输队列,返回检测第一传输队列的队列深度是否大于队列切换阈值的步骤,直至检测到新的第一传输队列的队列深度小于或等于队列切换阈值时停止返回,并进入将待处理的业务任务由第一传输队列迁移至第二传输队列的步骤。保证了将待处理的业务任务迁移到第二传输队列后,第二传输队列未达到队列切换阈值,提高了业务任务的处理效率。

85、在迁移时将位于第一传输队列上的待处理的业务任务迁移至第二传输队列的头部,使得迁移到第二传输队列上的待处理的业务任务能够被优先处理到。

86、在将位于第一传输队列上的待处理的业务任务迁移至第二传输队列后,记录迁移到第二传输队列上的待处理的业务任务的位置,使得当有新的待处理的业务任务迁移到该第二传输队列上,可快速地找到新的待处理的业务任务待放置的位置。

87、通过将迁移前第二传输队列上的待处理的业务任务的数量和迁移后第二传输队列上的待处理的业务任务的数量进行比对,使得能够根据第二传输队列上的待处理的业务任务的数量的变化情况实现对业务任务是否迁移成功的判断。

88、利用目标线程并按照第二传输队列上待处理的业务任务的优先级顺序处理第二传输队列上的业务任务,或利用待使用的线程并按照第一传输队列中业务任务的优先级顺序处理位于第一传输队列上的待处理的业务任务,使得高优先级的业务任务会被优先处理,可以有效降低存储系统中公共事务的等待时间。

89、另外,本发明还提供一种存储集群系统的数据处理装置、计算机程序产品、存储集群系统的数据处理设备以及非易失性存储介质,与上文中描述的存储集群系统的数据处理方法具有相同或相对应的技术特征,效果同上。

本文地址:https://www.jishuxx.com/zhuanli/20241106/325268.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。