CN113342574A - 数据处理方法、装置和电子设备 - Google Patents
数据处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113342574A CN113342574A CN202110669076.3A CN202110669076A CN113342574A CN 113342574 A CN113342574 A CN 113342574A CN 202110669076 A CN202110669076 A CN 202110669076A CN 113342574 A CN113342574 A CN 113342574A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- processing result
- backup
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种数据处理方法、装置和电子设备,获取待处理的目标数据,如果判断目标数据是否属于预先配置的需要进行备份处理的数据。获取目标数据的备份数据,以及预设主线程的备份线程。通过主线程对目标数据进行处理,得到第一处理结果。通过备份线程对备份数据进行处理,得到第二处理结果。对比两个处理结果,以确定是否将第一处理结果或第二处理结果发送至客户端。该方式可以根据实际需求预先配置需要进行备份的重要数据,以对该重要数据进行冗余计算处理,对于不重要的数据可以不进行冗余计算处理,在保证系统安全运行的同时,可以有效控制数据计算量,并且,该方式通过备份线程进行冗余计算,不需要额外增加硬件,从而可以有效控制成本。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种数据处理方法、装置和电子设备。
背景技术
在车载系统应用中,对通信数据的处理通常不允许出错,否则会造成交通安全事故,通常采用的方式是对通信数据进行冗余处理,以保证数据处理的准确性;相关技术中,可以在芯片设计中采用锁步核的设计方式,在设计芯片时,CPU有两个相同的内核,会对待处理数据同时进行处理,如果处理结果不同则报警,这种对芯片进行冗余设计所得到的芯片与普通芯片相比,成本高,功耗大,发热量大,增大了硬件设计的难度和成本;另外,还可以采用设备备份的方式,比如,对于较为重要的服务端,采用两个相同的设备同时接收客户端发出的数据,或同时接收相同的事件源,并对接收到的相关数据分别进行处理,如果处理结果不同则报警,这种设备备份的方式成本较高,并且上述两种方式都存在计算量较大的问题。
发明内容
本发明的目的在于提供一种数据处理方法、装置和电子设备,以在保证系统安全运行的同时,有效控制成本和数据计算量。
本发明提供的一种数据处理方法,方法包括:获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据;如果是,获取目标数据的备份数据,以及预设主线程的备份线程;通过主线程对目标数据进行处理,得到第一处理结果;通过备份线程对备份数据进行处理,得到第二处理结果;对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。
进一步的,获取目标数据的备份数据,以及预设主线程的备份线程的步骤包括:对目标数据进行备份处理,得到备份数据;创建主线程的备份线程,将备份数据发送至备份线程。
进一步的,对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端的步骤包括:对比第一处理结果和第二处理结果,得到对比结果;如果对比结果指示第一处理结果和第二处理结果相同,将第一处理结果或第二处理结果发送至客户端。
进一步的,方法还包括:如果对比结果指示第一处理结果和第二处理结果不相同,生成第一故障信息;将第一故障信息发送至客户端。
进一步的,对比第一处理结果和第二处理结果,得到对比结果的步骤包括:如果先得到第一处理结果,判断在预设时间内是否得到第二处理结果;如果在预设时间内得到第二处理结果,对比第一处理结果和第二处理结果,得到对比结果;如果在预设时间内没有得到第二处理结果,生成第二故障信息;将第二故障信息发送至客户端。
进一步的,对比第一处理结果和第二处理结果,得到对比结果的步骤包括:如果先得到第二处理结果,判断在预设时间内是否得到第一处理结果;如果在预设时间内得到第一处理结果,对比第一处理结果和第二处理结果,得到对比结果;如果在预设时间内没有得到第一处理结果,生成第三故障信息;将第三故障信息发送至客户端。
进一步的,获取待处理的目标数据的步骤包括:接收来自客户端的数据处理请求;其中,数据处理请求携带有待处理的目标数据;从数据处理请求中提取待处理的目标数据。
进一步的,获取待处理的目标数据的步骤包括:当指定事件源被触发时,获取指定事件源对应的数据,将指定事件源对应的数据确定为待处理的目标数据。
本发明提供的一种数据处理装置,装置包括:第一获取模块,用于获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据;第二获取模块,用于如果是,获取目标数据的备份数据,以及预设主线程的备份线程;第一确定模块,用于通过主线程对目标数据进行处理,得到第一处理结果;第二确定模块,用于通过备份线程对备份数据进行处理,得到第二处理结果;对比模块,用于对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。
本发明提供的一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述任一项的数据处理方法。
本发明提供的一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述任一项的数据处理方法。
本发明提供的数据处理方法、装置和电子设备,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据;如果是,获取目标数据的备份数据,以及预设主线程的备份线程;通过主线程对目标数据进行处理,得到第一处理结果;通过备份线程对备份数据进行处理,得到第二处理结果;对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。该方式可以根据实际需求预先配置需要进行备份的重要数据,以对该重要数据进行冗余计算处理,对于不重要的数据可以不进行冗余计算处理,在保证系统安全运行的同时,可以有效控制数据计算量,并且,该方式通过备份线程进行冗余计算,不需要额外增加硬件,从而可以有效控制成本。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据处理方法的流程图;
图2为本发明实施例提供的另一种数据处理方法的流程图;
图3为本发明实施例提供的另一种数据处理方法的流程图;
图4为本发明实施例提供的一种AP AUTOSAR的通信架构示意图;
图5为本发明实施例提供的一种冗余数据处理流程图;
图6为本发明实施例提供的一种数据同步器处理流程图;
图7为本发明实施例提供的一种数据处理装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)是一个开放和标准化的汽车电子软件架构,它是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立。AP AUTOSAR(Adaptive Platform Automotive Open SystemArchitecture,即自适应的汽车开放系统架构)的定位是运行与POSIX(PortableOperating System Interface,可移植操作系统接口)操作系统之上的中间件,其中,通信管理是AP AUTOSAR的一个重要功能,而在车载应用中,确保数据被正确处理是确保行车安全的基础。由于AP AUTOSAR通常应用在自动驾驶或辅助驾驶等汽车领域,对于通信数据的处理通常不允许出错,否则会造成交通安全事故。
目前的汽车架构中,通常会对通信数据进行冗余处理,以保证数据处理的准确性;为了做冗余计算,一般采用的方案是做硬件级冗余,例如,在MCU(Micro Controller Unit,微控制单元)芯片设计中采用的锁步核(lockstep)的设计方式,即在设计芯片时,CPU(Central Processing Unit,中央处理单元)会有两个相同的内核,在处理数据时,同时处理两次,每一步都需要进行同步,运算结果不同则报警。还有一种是设备上的备份,比如,在一些重要的服务端,采用两个相同的设备同时接收客户端发出的数据,或同时接收相同的事件源,客户端需要接收到两个相同的运算结果,才可以确认数据的有效性。
对于芯片级的冗余设计,通常冗余设计后的CPU芯片与正常芯片相比,成本要高出很多,功耗也高,发热量大,会大大加大硬件设计的难度;而且由于数据锁步核虽然每一步都会进行校验,但都是指令集级的校验,如果访问的存储区域出错,例如函数的堆栈,变量,程序等,由于锁步核和主核都访问同一片内存存储区域,因此,无法检验出错误。对于硬件设备级的冗余设计,除了成本高之外,还需要考虑备份的通信链路,两个设备数据同步,软件升级难度大等问题。
基于此,本发明实施例提供了一种数据处理方法、装置和电子设备,该技术可以应用于对通信数据进行冗余处理的应用中,尤其可以应用于对汽车驾驶领域中的通信数据进行冗余处理的应用中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据处理方法进行详细介绍;如图1所示,该方法包括如下步骤:
步骤S102,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。
上述待处理的目标数据可以是接收到的来自客户端的请求数据,也可以是触发某种预先定义好的事件时,该事件所对应的数据,该目标数据可以是刹车相关数据、油门相关数据或转向相关数据等车辆驾驶相关数据,也可以是其他数据等;在实际实现时,可以预先定义好哪些数据需要进行备份,以对所定义的需要备份的数据进行冗余计算处理,比如,在AP AUTOSAR中的服务是可以静态定义的,可以在定义系统框架时就定义哪些数据运算需要进行备份,这些需要备份的数据通常是汽车驾驶中比较重要的数据,如刹车相关数据、油门相关数据、转向相关数据或障碍物识别相关数据等,对于不重要的数据可以不进行备份冗余处理;在实际实现时,当获取到待处理的目标数据后,通常需要先判断该目标数据是否属于预先定义好的需要进行备份,以进行冗余计算处理的数据。
步骤S104,如果是,获取目标数据的备份数据,以及预设主线程的备份线程。
上述备份数据可以理解为是目标数据的备份,该备份数据通常是与目标数据相同的数据;上述主线程可以理解为,当程序启动时,一个线程立刻运行,该线程通常可以称为该程序的主线程;上述备份线程的程序代码与主线程的程序代码通常相同,该备份线程的相关程序代码可以采用自动代码生成工具自动生成;在实际实现时,如果获取到的待处理的目标数据属于预先配置的需要进行备份处理的数据,可以理解为需要对该目标数据进行冗余计算处理,这时通常需要获取该目标数据的备份数据,以及获取预设主线程的备份线程。
步骤S106,通过主线程对目标数据进行处理,得到第一处理结果。
步骤S108,通过备份线程对备份数据进行处理,得到第二处理结果。
在实际实现时,当获取到上述备份数据和备份线程后,可以通过主线程对目标数据进行处理,处理结束后,得到第一处理结果;通过备份线程对备份数据进行处理,处理结束后,得到第二处理结果;需要说明的是,上述主线程和备份线程通常是同时处理各自对应的相关数据,得到各自对应的处理结果。
步骤S110,对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。
在得到上述第一处理结果和第二处理结果后,对比该第一处理结果和第二处理结果,根据对比结果确认向客户端发送的消息;比如,如果经对比,确认第一处理结果和第二处理结果相同,则可以将第一处理结果或第二处理结果发送至客户端,如果经对比,确认第一处理结果和第二处理结果不相同,则通常会向客户端反馈相应的故障信息等。
上述数据处理方法,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。如果是,获取目标数据的备份数据,以及预设主线程的备份线程。通过主线程对目标数据进行处理,得到第一处理结果。通过备份线程对备份数据进行处理,得到第二处理结果。对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。该方式可以根据实际需求预先配置需要进行备份的重要数据,以对该重要数据进行冗余计算处理,对于不重要的数据可以不进行冗余计算处理,在保证系统安全运行的同时,可以有效控制数据计算量,并且,该方式通过备份线程进行冗余计算,不需要额外增加硬件,从而可以有效控制成本。
本发明实施例还提供了另一种数据处理方法,该方法在上述实施例方法的基础上实现;该方法重点描述获取目标数据的备份数据,以及预设主线程的备份线程的具体过程,具体对应下述步骤S204至步骤S206;如图2所示,该方法包括如下步骤:
步骤S202,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。
步骤S204,如果是,对目标数据进行备份处理,得到备份数据。
步骤S206,创建主线程的备份线程,将备份数据发送至备份线程。
在实际实现时,可以使用自动代码生成工具自动生成上述备份线程中的相关代码,所生成备份线程的相关程序代码与主线程的相关程序代码通常是相同的,不需要开发人员单独创建该备份线程,简化了创建备份线程的过程,降低了开发成本,提升了数据处理的效率;当备份线程创建完成后,可以将上述得到的备份数据传递至该备份线程。
步骤S208,通过主线程对目标数据进行处理,得到第一处理结果。
步骤S210,通过备份线程对备份数据进行处理,得到第二处理结果。
步骤S212,对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。
上述数据处理方法,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。如果是,对目标数据进行备份处理,得到备份数据。创建主线程的备份线程,将备份数据发送至备份线程。通过主线程对目标数据进行处理,得到第一处理结果。通过备份线程对备份数据进行处理,得到第二处理结果。对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。该方式可以根据实际需求预先配置需要进行备份的重要数据,以对该重要数据进行冗余计算处理,对于不重要的数据可以不进行冗余计算处理,在保证系统安全运行的同时,可以有效控制数据计算量,并且,该方式通过备份线程进行冗余计算,不需要额外增加硬件,从而可以有效控制成本。
本发明实施例还提供了另一种数据处理方法,该方法在上述实施例方法的基础上实现;该方法重点描述对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端的具体过程,具体对应下述步骤S310至步骤S316;如图3所示,该方法包括如下步骤:
步骤S302,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。
上述获取待处理的目标数据的步骤可以通过下述步骤A和步骤B实现:
步骤A,接收来自客户端的数据处理请求;其中,数据处理请求携带有待处理的目标数据。
步骤B,从数据处理请求中提取待处理的目标数据。
上述数据处理请求可以理解为,当用户需要对目标数据进行处理时,通过客户端向服务器发送的请求,该请求中通常携带有需要处理的目标数据,服务器接收到该数据处理请求后,可以从该数据处理请求中提取出需要处理的目标数据。
上述获取待处理的目标数据的步骤可以通过下述步骤C实现:
步骤C,当指定事件源被触发时,获取指定事件源对应的数据,将指定事件源对应的数据确定为待处理的目标数据。
在实际实现时,服务器中通常预先定义有多种事件源,上述指定事件源可以是所定义的多种事件源中的某个事件源,当指定事件源被触发时,服务器可以获取该指定事件源对应的数据,所获取到的数据即为上述待处理的目标数据。
为方便理解,参见图4所示的一种AP AUTOSAR的通信架构示意图,包括:客户端和服务端,其中,服务端包括响应数据处理器和事件数据处理器,也就是说,在AP AUTOSAR通信管理中,通常分为服务端进程和客户端进程,通信方式包括事件触发型和请求响应型,其中,服务端可以通过响应数据处理器响应客户端发出的请求,还可以在触发某种定义好的事件源时,通过事件数据处理器向客户端发送事件信息。
步骤S304,如果是,获取目标数据的备份数据,以及预设主线程的备份线程。
步骤S306,通过主线程对目标数据进行处理,得到第一处理结果。
步骤S308,通过备份线程对备份数据进行处理,得到第二处理结果。
步骤S310,对比第一处理结果和第二处理结果,得到对比结果。
在得到上述第一处理结果和第二处理结果后,可以对这两个处理结果进行对比,得到对比结果,该对比结果可以是两个处理结果相同,或两个处理结果不相同等。
具体的,该步骤S310可以通过下述步骤一至步骤四实现:
步骤一,如果先得到第一处理结果,判断在预设时间内是否得到第二处理结果。
上述预设时间可以根据实际需求进行设置,通常为了保证第一处理结果与第二处理结果在获取时间上尽量保持同步,该预设时间通常是一段较短的时间;在实际实现时,可以设置一个数据同步器,上述第一处理结果和第二处理结果可以发送至该数据同步器,通过该数据同步器判断两个处理结果在时间和结果上是否保持同步,由于主线程和备份线程在数据处理过程中可能有客观因素影响,因此,有可能先得到主线程处理目标数据的第一处理结果,也可能先得到备份线程处理备份数据的第二处理结果,如果先得到第一处理结果,在得到该第一处理结果后,可以通过该数据同步器启动超时计数器,以确认在预设时间内是否能得到第二处理结果。
步骤二,如果在预设时间内得到第二处理结果,对比第一处理结果和第二处理结果,得到对比结果。
如果在预设时间内得到第二处理结果,可以认为两个处理结果在时间上基本同步,这时可以通过数据同步器对所得到的第一处理结果和第二处理结果进行对比,得到对比结果,以进一步确认两个处理结果的具体数据是否相同。
步骤三,如果在预设时间内没有得到第二处理结果,生成第二故障信息。
步骤四,将第二故障信息发送至客户端。
上述第二故障信息可以是超时故障信息;在实际实现时,如果先得到了第一处理结果,并且在预设时间内没有得到第二处理结果,则通常会生成上述第二故障信息,该第二故障信息可以用于指示第二处理结果已超时;在生成上述第二故障信息后,通常会上报该第二故障信息,将该第二故障信息发送至客户端,以提醒用户第二处理结果已超时,无法向客户端发送将正确的处理结果。
作为另一种实现方式,该步骤S310还可以通过下述步骤五至步骤八实现:
步骤五,如果先得到第二处理结果,判断在预设时间内是否得到第一处理结果。
如果通过数据同步器先得到备份线程处理备份数据的第二处理结果,在得到该第二处理结果后,可以通过该数据同步器启动超时计数器,以确认在预设时间内是否能得到主线程处理目标数据的第一处理结果。
步骤六,如果在预设时间内得到第一处理结果,对比第一处理结果和第二处理结果,得到对比结果。
如果在预设时间内得到第一处理结果,可以认为两个处理结果在时间上基本同步,这时可以通过数据同步器对所得到的第一处理结果和第二处理结果进行对比,得到对比结果,以进一步确认两个处理结果的具体数据是否相同。
步骤七,如果在预设时间内没有得到第一处理结果,生成第三故障信息。
步骤八,将第三故障信息发送至客户端。
上述第三故障信息也可以是超时故障信息;在实际实现时,如果先得到了第二处理结果,并且在预设时间内没有得到第一处理结果,则通常会生成上述第三故障信息,该第三故障信息可以用于指示第一处理结果已超时;在生成上述第三故障信息后,通常会上报该第三故障信息,将该第三故障信息发送至客户端,以提醒用户第一处理结果已超时,无法向客户端发送将正确的处理结果。
步骤S312,如果对比结果指示第一处理结果和第二处理结果相同,将第一处理结果或第二处理结果发送至客户端。
如果对比结果指示第一处理结果和第二处理结果相同,比如,通过数据同步器确认两个处理结果的具体数据相同,则可以向客户端发送正确的处理结果,具体的,可以将第一处理结果或第二处理结果发送至客户端。
步骤S314,如果对比结果指示第一处理结果和第二处理结果不相同,生成第一故障信息。
步骤S316,将第一故障信息发送至客户端。
如果对比结果指示第一处理结果和第二处理结果不相同,比如,通过数据同步器确认两个处理结果的具体数据不相同,则可以生成第一故障信息,该第一故障信息可以用于指示两个处理结果不同;在生成上述第一故障信息后,通常会上报该第一故障信息,将该第一故障信息发送至客户端,以提醒用户第一处理结果和第二处理结果不相同,无法向客户端发送将正确的处理结果。
上述数据处理方法,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。如果是,获取目标数据的备份数据,以及预设主线程的备份线程。通过主线程对目标数据进行处理,得到第一处理结果。通过备份线程对备份数据进行处理,得到第二处理结果。对比第一处理结果和第二处理结果,得到对比结果。如果对比结果指示第一处理结果和第二处理结果相同,将第一处理结果或第二处理结果发送至客户端。该方式可以根据实际需求预先配置需要进行备份的重要数据,以对该重要数据进行冗余计算处理,对于不重要的数据可以不进行冗余计算处理,在保证系统安全运行的同时,可以有效控制数据计算量,并且,该方式通过备份线程进行冗余计算,不需要额外增加硬件,从而可以有效控制成本。
为进一步理解上述实施例,下面提供如图5所示的一种冗余数据处理流程图,在接收到来自客户端的数据处理请求,或某个事件源被触发时,获取运算所需要的数据,如果该数据属于预先定义好的需要进行冗余处理的数据,则备份相关数据,以得到备份数据,创建备份线程,并将备份数据传递至该备份线程,然后主线程开始数据处理,同时备份线程对备份数据进行处理,在主线程的数据处理结束后,得到主线程的数据处理结果,在备份线程的数据处理结束后,得到备份线程的数据处理结果,将两个数据处理结果发送至数据同步器进行数据对比,判断处理结果是否相同,如果处理结果相同,则可以进行数据发送,比如,可以将数据处理结果发送至客户端等,如果处理结果不相同,则可以上报系统故障,发送故障信息给客户端等;需要说明的是,上述数据同步器可以称为数据冗余同步器,将两个数据处理结果发送至该数据同步器进行同步,可以根据同步结果决定是否发送正常结果数据还是故障数据。
通过上述方式,可以看出,对于配置为重要服务的数据所执行的数据处理流程与正常流程不同的是,需要在进行数据运算处理之前备份所有需要处理的数据并建立备份线程,然后主线程和备份线程同时处理相关数据。并在处理结束后进入数据同步器进行同步,根据同步结果决定是否发送正常结果数据还是故障数据;在备份线程处理完备份数据之后,备份线程通常可以自动删除。
下面提供如图6所示的一种数据同步器处理流程图,如果接收到主线程数据或备份线程数据(对应上述主线程的数据处理结果或备份线程的数据处理结果),即,其中一个数据到来时,启动超时计数器,以判断是否超时,在计数时间内,判断是否接收到另一个未到来的备份线程数据或主线程数据,如果在计数时间内,接收到了另一个备份线程数据或主线程数据,则继续判断两个数据是否相同,如果相同,则可以将数据正常发送,比如,可以将正确的数据处理结果发送至客户端等,如果数据不相同,则可以上报系统故障,即上报数据处理异常等;如果在计数时间内,没有接收到另一个备份线程数据或主线程数据,则上报超时故障。
上述方式提供了一种基于AP AUTOSAR通信管理的冗余数据处理方案,在服务端接收到客户端请求数据或被事件触发时,在主程序进行数据运算的同时,分出一个备份线程对备份数据做同样的数据运行处理。在发送出数据之前,对两个线程计算出的结果进行比对,如果结果相同则可以发送,如果结果不相同,则可以向系统发出报警。由于AP AUTOSAR中的服务都是静态配置的,可以在配置的时候根据服务或数据的重要性选择是否开启此功能。
上述方式在AP AUTOSAR通信时,提供了一种对重要的数据运算(如刹车,油门,转向,障碍物识别)进行冗余计算,防止数据在运算过程中出错,造成严重后果的方案。在APAUTOSAR中由于服务是静态定义的,可以在定义系统框架时就定义哪些数据运算需要进行备份,不重要的部分可以不需要进行冗余处理,这样既可以保证系统的正确运行,又不会造成过大的算力损耗。
上述方式中,系统使用的CPU通常为多核CPU,在创建备份线程时,可以在系统中预留一个或多个CPU内核,正常情况下不使用预留出的内核,预留出的内核只用于处理备份线程的数据处理需求,这样不会占用正常运行的CPU资源。整个方案可以根据AP AUTOSAR的特性,采用静态配置的方案,提前配置好是否需要在某个服务中使用冗余数据处理的方案,比如,可以基于具体的请求或事件源,对图4中的响应数据处理器和事件数据处理器进行配置;同时相关的代码,如数据同步器的代码或备份线程的代码等可以使用自动代码生成工具进行自动生成,开发人员只需要关注功能的实现,不需要考虑备份线程的创建,以及数据冗余同步器的设计等。另外,经验证,上述方式在实际项目中可以正常使用,结果符合预期。
本发明实施例提供了一种数据处理装置,如图7所示,该装置包括:第一获取模块70,用于获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据;第二获取模块71,用于如果是,获取目标数据的备份数据,以及预设主线程的备份线程;第一确定模块72,用于通过主线程对目标数据进行处理,得到第一处理结果;第二确定模块73,用于通过备份线程对备份数据进行处理,得到第二处理结果;对比模块74,用于对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。
上述数据处理装置,获取待处理的目标数据,判断目标数据是否属于预先配置的需要进行备份处理的数据。如果是,获取目标数据的备份数据,以及预设主线程的备份线程。通过主线程对目标数据进行处理,得到第一处理结果。通过备份线程对备份数据进行处理,得到第二处理结果。对比第一处理结果和第二处理结果,基于对比结果确定是否将第一处理结果或第二处理结果发送至客户端。该装置可以根据实际需求预先配置需要进行备份的重要数据,以对该重要数据进行冗余计算处理,对于不重要的数据可以不进行冗余计算处理,在保证系统安全运行的同时,可以有效控制数据计算量,并且,该方式通过备份线程进行冗余计算,不需要额外增加硬件,从而可以有效控制成本。
进一步的,第二获取模块还用于:对目标数据进行备份处理,得到备份数据;创建主线程的备份线程,将备份数据发送至备份线程。
进一步的,对比模块还用于:对比第一处理结果和第二处理结果,得到对比结果;如果对比结果指示第一处理结果和第二处理结果相同,将第一处理结果或第二处理结果发送至客户端。
进一步的,对比模块还用于:如果对比结果指示第一处理结果和第二处理结果不相同,生成第一故障信息;将第一故障信息发送至客户端。
进一步的,对比模块还用于:如果先得到第一处理结果,判断在预设时间内是否得到第二处理结果;如果在预设时间内得到第二处理结果,对比第一处理结果和第二处理结果,得到对比结果;如果在预设时间内没有得到第二处理结果,生成第二故障信息;将第二故障信息发送至客户端。
进一步的,对比模块还用于:如果先得到第二处理结果,判断在预设时间内是否得到第一处理结果;如果在预设时间内得到第一处理结果,对比第一处理结果和第二处理结果,得到对比结果;如果在预设时间内没有得到第一处理结果,生成第三故障信息;将第三故障信息发送至客户端。
进一步的,第一获取模块还用于:接收来自客户端的数据处理请求;其中,数据处理请求携带有待处理的目标数据;从数据处理请求中提取待处理的目标数据。
进一步的,第一获取模块还用于:当指定事件源被触发时,获取指定事件源对应的数据,将指定事件源对应的数据确定为待处理的目标数据。
本发明实施例所提供的数据处理装置,其实现原理及产生的技术效果和前述数据处理方法实施例相同,为简要描述,数据处理装置实施例部分未提及之处,可参考前述数据处理方法实施例中相应内容。
本发明实施例还提供了一种电子设备,参见图8所示,该电子设备包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现上述数据处理方法。
进一步地,图8所示的电子设备还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。
其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述数据处理方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的数据处理方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待处理的目标数据,判断所述目标数据是否属于预先配置的需要进行备份处理的数据;
如果是,获取所述目标数据的备份数据,以及预设主线程的备份线程;
通过所述主线程对所述目标数据进行处理,得到第一处理结果;
通过所述备份线程对所述备份数据进行处理,得到第二处理结果;
对比所述第一处理结果和所述第二处理结果,基于对比结果确定是否将所述第一处理结果或所述第二处理结果发送至客户端。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标数据的备份数据,以及预设主线程的备份线程的步骤包括:
对所述目标数据进行备份处理,得到所述备份数据;
创建所述主线程的备份线程,将所述备份数据发送至所述备份线程。
3.根据权利要求1所述的方法,其特征在于,所述对比所述第一处理结果和所述第二处理结果,基于对比结果确定是否将所述第一处理结果或所述第二处理结果发送至客户端的步骤包括:
对比所述第一处理结果和所述第二处理结果,得到对比结果;
如果所述对比结果指示所述第一处理结果和所述第二处理结果相同,将所述第一处理结果或所述第二处理结果发送至所述客户端。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述对比结果指示所述第一处理结果和所述第二处理结果不相同,生成第一故障信息;
将所述第一故障信息发送至所述客户端。
5.根据权利要求3所述的方法,其特征在于,所述对比所述第一处理结果和所述第二处理结果,得到对比结果的步骤包括:
如果先得到所述第一处理结果,判断在预设时间内是否得到所述第二处理结果;
如果在预设时间内得到所述第二处理结果,对比所述第一处理结果和所述第二处理结果,得到对比结果;
如果在预设时间内没有得到所述第二处理结果,生成第二故障信息;
将所述第二故障信息发送至所述客户端。
6.根据权利要求3所述的方法,其特征在于,所述对比所述第一处理结果和所述第二处理结果,得到对比结果的步骤包括:
如果先得到所述第二处理结果,判断在预设时间内是否得到所述第一处理结果;
如果在预设时间内得到所述第一处理结果,对比所述第一处理结果和所述第二处理结果,得到对比结果;
如果在预设时间内没有得到所述第一处理结果,生成第三故障信息;
将所述第三故障信息发送至所述客户端。
7.根据权利要求1所述的方法,其特征在于,所述获取待处理的目标数据的步骤包括:
接收来自所述客户端的数据处理请求;其中,所述数据处理请求携带有所述待处理的目标数据;
从所述数据处理请求中提取所述待处理的目标数据。
8.根据权利要求1所述的方法,其特征在于,所述获取待处理的目标数据的步骤包括:
当指定事件源被触发时,获取所述指定事件源对应的数据,将所述指定事件源对应的数据确定为所述待处理的目标数据。
9.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取待处理的目标数据,判断所述目标数据是否属于预先配置的需要进行备份处理的数据;
第二获取模块,用于如果是,获取所述目标数据的备份数据,以及预设主线程的备份线程;
第一确定模块,用于通过所述主线程对所述目标数据进行处理,得到第一处理结果;
第二确定模块,用于通过所述备份线程对所述备份数据进行处理,得到第二处理结果;
对比模块,用于对比所述第一处理结果和所述第二处理结果,基于对比结果确定是否将所述第一处理结果或所述第二处理结果发送至客户端。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-8任一项所述的数据处理方法。
11.一种机器可读存储介质,其特征在于,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现权利要求1-8任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110669076.3A CN113342574A (zh) | 2021-06-16 | 2021-06-16 | 数据处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110669076.3A CN113342574A (zh) | 2021-06-16 | 2021-06-16 | 数据处理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113342574A true CN113342574A (zh) | 2021-09-03 |
Family
ID=77475726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110669076.3A Pending CN113342574A (zh) | 2021-06-16 | 2021-06-16 | 数据处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342574A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023082819A1 (zh) * | 2021-11-10 | 2023-05-19 | 武汉路特斯汽车有限公司 | 一种数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-06-16 CN CN202110669076.3A patent/CN113342574A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023082819A1 (zh) * | 2021-11-10 | 2023-05-19 | 武汉路特斯汽车有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784331B (zh) | 一种共识流程恢复方法及相关节点 | |
CN109144873B (zh) | 一种linux内核处理方法及装置 | |
CN113194029B (zh) | 自动识别和隔离服务网格边车故障的方法、系统、介质和设备 | |
CN113342574A (zh) | 数据处理方法、装置和电子设备 | |
CN114429711A (zh) | 消息分发方法、装置、存储介质与服务器 | |
CN111124591A (zh) | 一种镜像传输方法、装置、电子设备及存储介质 | |
JP7012915B2 (ja) | コントローラ | |
US10089195B2 (en) | Method for redundant processing of data | |
CN113515369A (zh) | 一种数据处理方法、系统、终端和存储介质 | |
CN115202949B (zh) | 一种芯片信号的监测装置、方法、计算机设备及存储介质 | |
JP5537140B2 (ja) | 安全制御装置、及びその安全制御プログラム | |
CN110647463A (zh) | 一种恢复测试断点的方法、装置、电子设备 | |
CN112533173B (zh) | 用于确保数据完整性以保证操作安全的方法以及车对外界信息交互的装置 | |
CN114022279A (zh) | 一种业务数据纠错方法、装置、设备及可读存储介质 | |
CN116150771B (zh) | 一种冗余处理的装置、方法、系统及智能车辆 | |
CN113500913B (zh) | 全液晶仪表的描画组件 | |
CN114089623A (zh) | 基于冗余可靠模块的故障处理方法、装置、设备及介质 | |
CN116643852A (zh) | 定时任务的核查方法及装置 | |
CN115220954A (zh) | 一种数据库备份方法、装置及电子设备、存储介质 | |
CN115794495A (zh) | 备份文件的恢复校验方法、装置、服务器及存储介质 | |
CN117389907A (zh) | 业务数据的同步问题检测方法及装置 | |
CN114676197A (zh) | 基于区块链的车辆数据处理方法、装置和系统 | |
CN116633783A (zh) | 批量作业的处理方法、装置、设备及存储介质 | |
CN112423128A (zh) | 一种开机启动方法及融合网关 | |
CN115610448A (zh) | 一种自动驾驶控制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |