首页 / 专利库 / 人工智能 / 人工神经网络 / 前馈神经网络 / 多层感知器 / 输出层 / 一种数据读取方法、装置、设备及存储介质

一种数据读取方法、装置、设备及存储介质

阅读:455发布:2020-05-08

专利汇可以提供一种数据读取方法、装置、设备及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种数据读取方法,该方法包括以下步骤:从存储系统的主副本中读取目标数据;如果读取成功,则将读取到的目标数据返回给上层应用,以使上层应用输出目标数据;如果读取失败,则依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,执行将读取到的目标数据返回给上层应用的步骤。应用本申请 实施例 所提供的技术方案,在存储系统对底层数据进行冗余备份存储,在进行数据读取时从各副本中进行数据读取,读取成功的可能性增大,可以保证视频播放的 稳定性 和流畅性。本申请还公开了一种数据读取装置、设备及存储介质,具有相应技术效果。,下面是一种数据读取方法、装置、设备及存储介质专利的具体信息内容。

1.一种数据读取方法,其特征在于,包括:
从存储系统的主副本中读取目标数据;
如果读取成功,则将读取到的所述目标数据返回给上层应用,以使所述上层应用输出所述目标数据;
如果读取失败,则依次从所述存储系统的各个从副本中读取所述目标数据,直至在第一从副本中成功读取到所述目标数据,执行所述将读取到的所述目标数据返回给上层应用的步骤。
2.根据权利要求1所述的方法,其特征在于,在所述在第一从副本中成功读取到所述目标数据之后,还包括:
将在所述第一从副本中读取到的所述目标数据回写覆盖到所述主副本和其他从副本中。
3.根据权利要求1或2所述的方法,其特征在于,在所述依次从所述存储系统的各个从副本中读取所述目标数据之后,还包括:
如果在所述存储系统的各个从副本中均无法成功读取到所述目标数据,则向所述上层应用返回预设数据。
4.根据权利要求3所述的方法,其特征在于,所述预设数据为全0数据。
5.根据权利要求3所述的方法,其特征在于,在所述存储系统的各个从副本中均无法成功读取到所述目标数据的情况下,还包括:
记录所述目标数据的标识信息。
6.根据权利要求3所述的方法,其特征在于,在所述存储系统的各个从副本中均无法成功读取到所述目标数据的情况下,还包括:
删除所述主副本和每个从副本中的所述目标数据。
7.一种数据读取装置,其特征在于,包括:
主副本读取模,用于从存储系统的主副本中读取目标数据;如果读取成功,则触发数据返回模块,如果读取失败,则触发从副本读取模块;
所述数据返回模块,用于将读取到的所述目标数据返回给上层应用,以使所述上层应用输出所述目标数据;
所述从副本读取模块,用于依次从所述存储系统的各个从副本中读取所述目标数据,直至在第一从副本中成功读取到所述目标数据,触发所述数据返回模块执行所述将读取到的所述目标数据返回给上层应用的步骤。
8.根据权利要求7所述的装置,其特征在于,还包括回写覆盖模块,用于:
在所述在第一从副本中成功读取到所述目标数据之后,将在所述第一从副本中读取到的所述目标数据回写覆盖到所述主副本和其他从副本中。
9.一种数据读取设备,其特征在于,包括:
存储器,用于存储计算机程序
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述数据读取方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据读取方法的步骤。

说明书全文

一种数据读取方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及计算机应用技术领域,特别是涉及一种数据读取方法、装置、设备及存储介质。

背景技术

[0002] 随着计算机技术的快速发展,存储系统的应用越来越广泛,尤其是在视频监控行业,通常会在存储系统中写入底层数据,通过读取在上层应用中进行视频播放。
[0003] 在存储系统中,当底层的数据因异常损坏,如xfs(开源的日志文件系统)上的对象文件损坏、磁盘损坏导致数据不可读、磁盘或主机节点故障且超出故障域等,将导致存储进程无法对该数据进行读取。通常做法是向上层应用返回-EIO或者存储进程直接退出。上层应用面对这种情况也会中断业务。
[0004] 在视频监控行业中,当少量的数据无法读取时并不影响视频画面的播放,其表现在画面上仅是少部分花屏,或者无法察觉。但是如果存储进程返回-EIO或者退出将会导致视频播放卡住,从而影响用户更为关注的视频播放的稳定性和流畅性。
[0005] 综上所述,如何有效进行数据读取,保证视频播放的稳定性和流畅性,是目前本领域技术人员急需解决的技术问题。发明内容
[0006] 本申请的目的是提供一种数据读取方法、装置、设备及存储介质,以保证视频播放的稳定性和流畅性。
[0007] 为解决上述技术问题,本申请提供如下技术方案:
[0008] 一种数据读取方法,包括:
[0009] 从存储系统的主副本中读取目标数据;
[0010] 如果读取成功,则将读取到的所述目标数据返回给上层应用,以使所述上层应用输出所述目标数据;
[0011] 如果读取失败,则依次从所述存储系统的各个从副本中读取所述目标数据,直至在第一从副本中成功读取到所述目标数据,执行所述将读取到的所述目标数据返回给上层应用的步骤。
[0012] 在本申请的一种具体实施方式中,在所述在第一从副本中成功读取到所述目标数据之后,还包括:
[0013] 将在所述第一从副本中读取到的所述目标数据回写覆盖到所述主副本和其他从副本中。
[0014] 在本申请的一种具体实施方式中,在所述依次从所述存储系统的各个从副本中读取所述目标数据之后,还包括:
[0015] 如果在所述存储系统的各个从副本中均无法成功读取到所述目标数据,则向所述上层应用返回预设数据。
[0016] 在本申请的一种具体实施方式中,所述预设数据为全0数据。
[0017] 在本申请的一种具体实施方式中,在所述存储系统的各个从副本中均无法成功读取到所述目标数据的情况下,还包括:
[0018] 记录所述目标数据的标识信息。
[0019] 在本申请的一种具体实施方式中,在所述存储系统的各个从副本中均无法成功读取到所述目标数据的情况下,还包括:
[0020] 删除所述主副本和每个从副本中的所述目标数据。
[0021] 一种数据读取装置,包括:
[0022] 主副本读取模,用于从存储系统的主副本中读取目标数据;如果读取成功,则触发数据返回模块,如果读取失败,则触发从副本读取模块;
[0023] 所述数据返回模块,用于将读取到的所述目标数据返回给上层应用,以使所述上层应用输出所述目标数据;
[0024] 所述从副本读取模块,用于依次从所述存储系统的各个从副本中读取所述目标数据,直至在第一从副本中成功读取到所述目标数据,触发所述数据返回模块执行所述将读取到的所述目标数据返回给上层应用的步骤。
[0025] 在本申请的一种具体实施方式中,还包括回写覆盖模块,用于:
[0026] 在所述在第一从副本中成功读取到所述目标数据之后,将在所述第一从副本中读取到的所述目标数据回写覆盖到所述主副本和其他从副本中。
[0027] 一种数据读取设备,包括:
[0028] 存储器,用于存储计算机程序
[0029] 处理器,用于执行所述计算机程序时实现上述任一项所述数据读取方法的步骤。
[0030] 一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述数据读取方法的步骤。
[0031] 应用本申请实施例所提供的技术方案,从存储系统的主副本中读取目标数据,如果读取成功,则将读取到的目标数据返回给上层应用,以使上层应用输出目标数据,如果读取失败,则依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,将读取到的目标数据返回给上层应用。在存储系统对底层数据进行冗余备份存储,在进行数据读取时从各副本中进行数据读取,读取成功的可能性增大,可以保证视频播放的稳定性和流畅性。附图说明
[0032] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033] 图1为本申请实施例中数据读取方法的一种实施流程图
[0034] 图2为本申请实施例中数据读取方法的另一种实施流程图;
[0035] 图3为本申请实施例中一种数据读取装置的结构示意图;
[0036] 图4为本申请实施例中一种数据读取设备的结构示意图。

具体实施方式

[0037] 本申请的核心是提供一种数据读取方法,该方法可以应用于存储进程,存储进程在存储系统中进行数据读取,返回给上层应用,以便上层应用进行数据输出。
[0038] 本申请实施例是在存储系统中通过多副本方式进行底层数据的存储,即通过数据冗余技术,使用2副本或者3副本等,在写数据时直接将数据保存成多份,在主副本和每个从副本中分别保存一份。在需要进行目标数据读取时,先从存储系统的主副本中读取,如果读取成功,则将读取到的目标数据返回给上层应用,上层应用输出目标数据,如果读取失败,则依次从存储系统的各个从副本中读取目标数据,如果在第一从副本中读取到目标数据,则将读取到的目标数据返回给上层应用。对底层数据进行冗余备份存储,从各副本中进行数据读取,读取成功的可能性增大,可以保证视频播放的稳定性和流畅性。
[0039] 上层应用可以是视频监控软件
[0040] 为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041] 参见图1所示,为本申请实施例所提供的一种数据读取方法的实施流程图,该方法可以包括以下步骤:
[0042] S110:从存储系统的主副本中读取目标数据。
[0043] 在本申请实施例中,在存储系统中进行数据写入时,同时将数据写入到多个副本中,如一个主副本和多个从副本。主副本和各个从副本中的数据一致。
[0044] 当需要进行数据读取时,可以先从存储系统的主副本中读取目标数据。目标数据为当前需要读取的数据,如一个视频或者一段视频帧。
[0045] 如果读取成功,则可以执行步骤S120的操作,如果读取失败,则可以执行步骤S130的操作。
[0046] S120:将读取到的目标数据返回给上层应用,以使上层应用输出目标数据。
[0047] 从存储系统的主副本中读取目标数据,如果读取成功,则可以直接将读取到的目标数据返回给上层应用,这样上层应用可以输出目标数据。
[0048] S130:依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,执行步骤S120将读取到的目标数据返回给上层应用的操作。
[0049] 在本申请实施例中,在需要进行目标数据的读取时,先从存储系统的主副本中读取目标数据,如果读取失败,则表明主副本中的目标数据可能已经损坏。在这种情况下,可以依次从存储系统的各个从副本中读取目标数据。如果在某个从副本中成功读取到目标数据,则可以不再对其他从副本进行数据读取操作。缩短数据读取时间。
[0050] 假设存储系统中有一个主副本和两个从副本,从副本1和从副本2,在主副本中对目标数据读取失败后,可以依次在从副本1、从副本2中进行目标数据的读取。如果在从副本1中成功读取到目标数据,则可以不再进行从副本2的数据读取操作,如果在从副本1中读取目标数据失败,则可以继续在从副本2中读取目标数据。
[0051] 依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,然后将读取到的目标数据返回给上层应用,以使上层应用输出目标数据。第一从副本是多个从副本中的任意一个。
[0052] 对于要读取的每个数据均执行上述操作,可以保证最后输出的数据的连贯性,保证视频播放的稳定性和流畅性。
[0053] 应用本申请实施例所提供的方法,从存储系统的主副本中读取目标数据,如果读取成功,则将读取到的目标数据返回给上层应用,以使上层应用输出目标数据,如果读取失败,则依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,将读取到的目标数据返回给上层应用。在存储系统对底层数据进行冗余备份存储,在进行数据读取时从各副本中进行数据读取,读取成功的可能性增大,可以保证视频播放的稳定性和流畅性。
[0054] 在本申请的一个实施例中,在第一从副本中成功读取到目标数据之后,该方法还可以包括以下步骤:
[0055] 将在第一从副本中读取到的目标数据回写覆盖到主副本和其他从副本中。
[0056] 在本申请实施例中,在要读取目标数据时,先从存储系统的主副本中读取目标数据,如果读取失败,则依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,将读取到的目标数据返回给上层应用。
[0057] 如果能够在第一从副本中成功读取到目标数据,则表明第一从副本中的目标数据完好,可以认为在第一从副本中成功读取到的目标数据为原始数据,可以将在第一从副本中读取到的目标数据回写覆盖到主副本和其他每个从副本中,即使用从第一从副本中成功读取到的目标数据替换主副本和其他每个从副本中的目标数据。保证各个副本中的数据的一致性。当再次有对目标数据的读取请求时,可以直接在主副本中成功读取到目标数据。
[0058] 在本申请的一个实施例中,在依次从存储系统的各个从副本中读取目标数据之后,该方法还可以包括以下步骤:
[0059] 如果在存储系统的各个从副本中均无法成功读取到目标数据,则向上层应用返回预设数据。
[0060] 在本申请实施例中,在要读取目标数据时,先从存储系统的主副本中读取目标数据,如果读取失败,则依次从存储系统的各个从副本中读取目标数据,如果在存储系统的各个从副本中均无法成功读取到目标数据,则表明主副本和每个从副本中的目标数据均损坏,无法成功读取。在这种情况下,可以向上层应用返回预设数据。上层应用输出收到的预设数据。
[0061] 预设数据可以是全0数据,当然还可以是其他数据。上层应用接收到预设数据后输出,这样不会因为存储进程返回-EIO或者直接退出导致中断业务,存储进程可以继续进行下一个数据的读取,从而使得上层应用不断接收到数据,连续输出数据,使得视频播放具有稳定性和流畅性。
[0062] 在本申请的一个实施例中,在存储系统的各个从副本中均无法成功读取到目标数据的情况下,可以记录目标数据的标识信息,如目标数据的起始位置、结束位置、目标数据的帧号等信息。这样技术人员可以视目标数据的重要程度,通过记录的这些信息进行数据修复。
[0063] 在存储系统的各个从副本中均无法成功读取到目标数据的情况下,还可以删除主副本和每个从副本中的目标数据。因为在这种情况下,可以确定主副本和每个从副本中的目标数据已经损坏,可以不再留存,可以在各个副本中删除目标数据。这样当再次需要读取目标数据时,可以直接向上层应用返回预设数据,节省数据读取时间,提高数据读取效率。
[0064] 为便于理解,以如图2所示的具体示例为例对本申请实施例进行说明。
[0065] 上层应用为视频监控软件,视频监控软件向存储系统发起数据读取请求,存储系统中的存储进程从主副本中读取目标数据,如果读取成功,则向视频监控软件返回目标数据,如果读取失败,则依次在从副本中读取目标数据,如果在某个从副本中读取成功,则将该从副本中的目标数据回写覆盖其他副本,并向上层应用返回,如果在任何一个从副本中未成功读取,则将各副本中的目标数据删除,向上层应用返回全0数据。可以保证视频监控软件进行视频播放的稳定性和流畅性。
[0066] 本申请实施例通过对异常数据多次读取、回填和返回全0数据等方式,使得存储系统在底层数据出现异常时不会报错退出,进而保证上层视频监控业务正常运行,不会出现播放卡顿或中断的情况,增强了存储系统在视频监控行业的适用性。
[0067] 相应于上面的方法实施例,本申请实施例还提供了一种数据读取装置,下文描述的数据读取装置与上文描述的数据读取方法可相互对应参照。
[0068] 参见图3所示,该装置包括以下步骤:
[0069] 主副本读取模块310,用于从存储系统的主副本中读取目标数据;如果读取成功,则触发数据返回模块320,如果读取失败,则触发从副本读取模块330;
[0070] 数据返回模块320,用于将读取到的目标数据返回给上层应用,以使上层应用输出目标数据;
[0071] 从副本读取模块330,用于依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,触发数据返回模块320执行将读取到的目标数据返回给上层应用的步骤。
[0072] 应用本申请实施例所提供的装置,从存储系统的主副本中读取目标数据,如果读取成功,则将读取到的目标数据返回给上层应用,以使上层应用输出目标数据,如果读取失败,则依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,将读取到的目标数据返回给上层应用。在存储系统对底层数据进行冗余备份存储,在进行数据读取时从各副本中进行数据读取,读取成功的可能性增大,可以保证视频播放的稳定性和流畅性。
[0073] 在本申请的一种具体实施方式中,还包括回写覆盖模块,用于:
[0074] 在在第一从副本中成功读取到目标数据之后,将在第一从副本中读取到的目标数据回写覆盖到主副本和其他从副本中。
[0075] 在本申请的一种具体实施方式中,数据返回模块320,还用于:
[0076] 在依次从存储系统的各个从副本中读取目标数据之后,如果在存储系统的各个从副本中均无法成功读取到目标数据,则向上层应用返回预设数据。
[0077] 在本申请的一种具体实施方式中,预设数据为全0数据。
[0078] 在本申请的一种具体实施方式中,还包括信息记录模块,用于:
[0079] 在存储系统的各个从副本中均无法成功读取到目标数据的情况下,记录目标数据的标识信息。
[0080] 在本申请的一种具体实施方式中,还包括数据删除模块,用于:
[0081] 在存储系统的各个从副本中均无法成功读取到目标数据的情况下,删除主副本和每个从副本中的目标数据。
[0082] 相应于上面的方法实施例,本申请实施例还提供了一种数据读取设备,包括:
[0083] 存储器,用于存储计算机程序;
[0084] 处理器,用于执行计算机程序时实现上述数据读取方法的步骤。
[0085] 如图4所示,为数据读取设备的组成结构示意图,数据读取设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线
13完成相互间的通信。
[0086] 在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程阵列或者其他可编程逻辑器件等。
[0087] 处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行数据读取方法的实施例中的操作。
[0088] 存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
[0089] 从存储系统的主副本中读取目标数据;
[0090] 如果读取成功,则将读取到的目标数据返回给上层应用,以使上层应用输出目标数据;
[0091] 如果读取失败,则依次从存储系统的各个从副本中读取目标数据,直至在第一从副本中成功读取到目标数据,执行将读取到的目标数据返回给上层应用的步骤。
[0092] 在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如声音播放功能、图像播放功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如读取结果数据等。
[0093] 此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
[0094] 通信接口13可以为通信模块的接口,用于与其他设备或者系统连接。
[0095] 当然,需要说明的是,图4所示的结构并不构成对本申请实施例中数据读取设备的限定,在实际应用中数据读取设备可以包括比图4所示的更多或更少的部件,或者组合某些部件。
[0096] 相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述数据读取方法的步骤。
[0097] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0098] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0099] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0100] 本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈