存储系统的重试方法、装置、设备、存储介质及程序产品与流程

摘要: 本技术涉及数据传输领域,尤其涉及一种存储系统的重试方法、装置、设备、存储介质及程序产品。背景技术:1、在同步复制和双活存储系统中,数据的一致性保障依赖于本地与远...
存储系统的重试方法、装置、设备、存储介质及程序产品与流程

本技术涉及数据传输领域,尤其涉及一种存储系统的重试方法、装置、设备、存储介质及程序产品。

背景技术:

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、获取第一设备的存储系统在滑动窗口内的历史限流事件和历史恢复时长;

28、根据历史限流事件和历史恢复时长,确定是否存在周期性限流;

29、响应于存在周期性限流,则生成周期性补偿,周期性补偿用于补偿动态状态模型的周期性干扰;

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、本技术实施例提供的存储系统的重试方法、装置、设备、存储介质及程序产品,获取第一设备的令牌桶状态,令牌桶状态用于指示与第一设备的存储系统的限流策略相关的参数;根据令牌桶状态,构建动态状态模型,动态状态模型用于指示存储系统的动态服务状态;响应于第一设备发送的第一数据请求的限流错误指示,根据动态状态模型,确定第一数据请求的预测状态;根据预测状态,确定存储系统的预测恢复时长;根据预测恢复时长,向第一设备重新发送第一数据请求。这样,通过上述方法,可以根据令牌桶状态构建动态状态模型,并基于动态状态模型预测得到存储系统的预测恢复时长,从而避免了传统重试策略与远端服务状态脱节的技术问题,同时通过预测恢复时长的主动等待,避免在限流窗口期内盲目重试,从而提高了重试的效率。