法律状态公告日
法律状态信息
法律状态
2023-08-22
实质审查的生效 IPC(主分类):G06F 9/50 专利申请号:2023102357493 申请日:20230313
实质审查的生效
2023-08-04
公开
发明专利申请公布
技术领域
本发明涉及云计算、物联网领域,具体地说,涉及一种应用于云边端的checkpoint分布式系统处理方法。
背景技术
随着互联网用户的数据量不断增加和实时性需求的不断增长,基于云边端的分布式内存计算的数据处理框架己成为公司数据业务和科学研究的首选工具。为了提高计算系统的性能,一方面,处理器供应商不断增加单个芯片晶体管的数量;另一方面,通过增加系统中每个节点的处理器数量以及计算节点的数量来扩大系统的规模,这导致系统发生故障的概率不断增加。云计算作为迎合网络时代发展孕育出来的技术已经收到各界广泛关注,然而就故障处理能力而言,云计算技术仍旧存在许多不足之处。首先云数据中心的系统架构是动态的,并且复杂度不断增长,其次云计算平台的基础组件具有多样性,因此云环境总是出现种种故障。这些故障通常会中断云服务的正常交付并降低云系统性能,严重时甚至可能导致用户的经济损失。
现有的分布式系统Spark的检查点(Checkpoint)操作将RDD的计算结果存储到磁盘上,并缩短lineage,这为LCV策略将RDD数据转移到磁盘,从而进一步释放内存提出了可能性。但并不是所有场景下使用检查点操作都可以获得更好的工作效果,因为检查点会增添一个Job专门用于储存RDD数据,此操作由于牵涉到磁盘I/O而十分耗时。Flink根据流式计算设计了一个轻量级的异步快照算法,在计算的各阶段结束时设置检查点,在底层文件系统中备份相应的数据文件,每当任务中断导致中间计算结果丢失时,需要从底层读取检查点数据。然而,这种方式需要通过网络连接在节点之间传输大量数据,并且需要读取磁盘上的文件,导致操作成本很高。
发明内容
本发明的目的在于提供一种应用于云边端的checkpoint分布式系统处理方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明目的之一在于,提供了一种应用于云边端的checkpoint分布式系统处理方法,所述应用于云边端的checkpoint分布式系统处理方法包括如下步骤:
启动设备上线,获取设备信息,与系统建立一个心跳,保证系统在线;
用户选择要执行的任务,安卓端获取任务信息并进行任务下发;
云端的调度模块从数据库获取将要执行的任务或者任务集,进行加工处理,每个所述要执行的任务拆分成多个子任务放到下发到计算设备;
计算设备端解析任务信息,通过http请求从云端获取任务,设备进行子任务的计算,按照每10%的进度将计算信息回传到Redis;
判断设备是否出现故障,若出现故障,则将保存的故障设备在Redis中预存的计算进度信息、当前运行子任务、掉线任务信息和算法信息等数据通过CheckPoint将发送给另一台空闲设备,若未出现故障则计算完成。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述用户选择要执行的任务,安卓端获取任务信息并进行任务下发包括:
首先新建任务集,创建任务ID集,然后形成未执行任务队列和任务队列来控制任务执行流程,对任务队列中单个任务拆分成多个子任务,并形成子任务队列;
所述子任务信息包括任务ID,子任务ID,车辆ID,计算函数,状态,结果和参数;
所述安卓端从设备调度处选择适合当前任务计算的计算设备端发送这些子任务的信息,用事件队列记录发送成功或者失败的情况;
当发送子任务成功后,把子任务信息中状态改成接收成功,当计算设备端遇到故障时,将故障设备的进度信息发送给其他空闲计算设备端直至成功。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述计算设备端解析任务信息,通过http请求从云端获取任务,设备进行子任务的计算包括:
设置要执行的任务集队列,通过RunAllWithName()执行任务集队列中的任务;
不断的重复任务执行过程直到任务集队列中的所有任务执行完成。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述不断的重复任务执行过程直到任务集队列中的所有任务执行完成包括:
获取一个单任务通过所述RunWithName()执行此任务;
对所述单任务分解为多个子任务,通过readDeviceInfo()从Redis中读取全部在线设备信息,并形成设备列表;
调用taskMap()将分解出来的所述子任务集通过sendAlgorithmInfo()下发到车载安卓设备端,将每个子任务发送成功或者失败的信息记录在sendEventList事件队列里面;
对所述事件队列中发送失败的子任务执行二次调度,再次调用所述sendAlgorithmInfo()下发到其他在线空闲且适合工作的设备上;
遇到设备故障掉线问题,将故障设备的进度信息从Redis中提取出来发送给其他空闲设备直至成功,等待计算完成;
设备端子任务完成后,结果信息自动发送到云端并记录在Redis中。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述进度信息回传到Redis,其中周期性的将所述任务的状态和变量定期保存在Redis上,当任务执行过程中出现故障时,把Redis上的计算信息下发给另一个正常运行的设备,保证任务可以继续正确地执行。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述当计算设备端遇到故障时,将故障设备的进度信息发送给其他空闲计算设备端直至成功包括:
故障设备上子任务会被所述设备调度处从Redis中拉取出来,并重新选择故障子任务个数的新的在线设备;
当前无空闲计算设备可用时,所有运行主任务下的子任务都会每隔10秒监测计算计算设备端上线情况,当有新计算设备端上线,符合计算条件,子任务会被从Redis中拉出重新参与计算。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述安卓端从设备调度处选择适合当前任务计算的计算设备端发送这些子任务的信息,用事件队列记录发送成功或者失败的情况包括:
子任务过期监听每隔10s后被触发,引发子任务下发超时重传LBFO,无可用计算设备端,子任务又被重新压入过期监听中,每隔10s触发过期监听,当有新的计算设备端接入网络,子任务会被下发到新计算设备端参与计算。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述在Redis中预存的计算进度信息,其中Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,Redis底层数据结构值可以是字符串,哈希,列表,集合和有序集合等类型。
进一步,在上述应用于云边端的checkpoint分布式系统处理方法中,所述按照每10%的进度信息回传到Redis,通过前端展示进度条的形式实时的监控存储的情况。
在本发明提供的技术方案中,通过设置Checkpoint策略,设备正常运行过程中,周期性的将计算的任务状态和变量定期保存在Redis上,当任务执行过程中出现故障时,把Redis上的计算信息下发给另一个正常运行的设备,保证任务可以继续正确地执行,并最终完成任务,避免了从头开始运行,减少了故障带来的损失,可以使用先前保存的恢复信息从中间状态重新开始计算,从而减少丢失的计算量,增强云系统的可靠性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明实施例中应用于云边端的checkpoint分布式系统处理方法的实施例流程示意图;
图2为本发明实施例中应用于云边端的checkpoint分布式系统处理方法的分布式系统架构;
图3为本发明实施例中应用于云边端的checkpoint分布式系统处理方法的Checkpoint工作原理图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
实施例1
作为一个较好的实施例,如图1所示,一种应用于云边端的checkpoint分布式系统处理方法包括以下步骤:
启动设备上线,获取设备信息,与系统建立一个心跳,保证系统在线;
用户选择要执行的任务,安卓端获取任务信息并进行任务下发;
云端的调度模块从数据库获取将要执行的任务或者任务集,进行加工处理,每个所述要执行的任务拆分成多个子任务放到下发到设备;
计算设备端解析任务信息,通过http请求从云端获取任务,设备进行子任务的计算,按照每10%的进度信息回传到Redis;
判断设备是否出现故障,若出现故障,则将保存的故障设备在Redis中预存的计算进度信息、当前运行子任务、掉线任务信息和算法信息等数据通过CheckPoint将发送给另一台空闲设备,若未出现故障则计算完成。
如图2所示,本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第二个实施例包括:
首先新建任务集,创建任务ID集,然后形成未执行任务队列和任务队列来控制任务执行流程,对任务队列中单个任务拆分成多个子任务,并形成子任务队列;
子任务信息包括任务ID,子任务ID,车辆ID,计算函数,状态,结果和参数;
安卓端从设备调度处选择适合当前任务计算的计算设备端发送这些子任务的信息,用事件队列记录发送成功或者失败的情况;
当发送子任务成功后,把子任务信息中状态改成接收成功,当计算设备端遇到故障时,将故障设备的进度信息发送给其他空闲计算设备端直至成功。
本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第三个实施例包括:
设置要执行的任务集队列,通过RunAllWithName()执行任务集队列中的任务;
不断的重复任务执行过程直到任务集队列中的所有任务执行完成。
本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第四个实施例包括:
获取一个单任务通过所述RunWithName()执行此任务;
对单任务分解为多个子任务,通过readDeviceInfo()从Redis中读取全部在线设备信息,并形成设备列表;
调用taskMap()将分解出来的所述子任务集通过sendAlgorithmInfo()下发到车载安卓设备端,将每个子任务发送成功或者失败的信息记录在sendEventList事件队列里面;
对事件队列中发送失败的子任务执行二次调度,再次调用所述sendAlgorithmInfo()下发到其他在线空闲且适合工作的设备上;
遇到设备故障掉线问题,将故障设备的进度信息从Redis中提取出来发送给其他空闲设备直至成功,等待计算完成;
设备端子任务完成后,结果信息自动发送到云端并记录在Redis中。
本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第五个实施例包括:
周期性的将所述任务的状态和变量定期保存在Redis上,当任务执行过程中出现故障时,把Redis上的计算信息下发给另一个正常运行的设备,保证任务可以继续正确地执行。
本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第六个实施例包括:
故障设备上子任务会被所述设备调度处从Redis中拉取出来,并重新选择故障子任务个数的新的在线设备;
当前无空闲计算设备可用时,所有运行主任务下的子任务都会每隔10秒监测计算计算设备端上线情况,当有新计算设备端上线,符合计算条件,子任务会被从Redis中拉出重新参与计算。
本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第七个实施例包括:
子任务过期监听每隔10s后被触发,引发子任务下发超时重传LBFO,无可用计算设备端,子任务又被重新压入过期监听中,每隔10s触发过期监听,当有新的计算设备端接入网络,子任务会被下发到新计算设备端参与计算。
本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第八个实施例包括:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,Redis底层数据结构值可以是字符串,哈希,列表,集合和有序集合等类型。
如图3所示,本发明实施例中应用于云边端的checkpoint分布式系统处理方法的第九个实施例包括:
按照每10%的进度信息回传到Redis,通过前端展示进度条的形式实时的监控存储的情况。Checkpoint分布式系统具有一定的可拓展性,通过覆盖冗余重复的数据来实现数据的存储,利用redis保存Checkpoint文件具有一定的高效性,可以提高系统的可靠性和可用性。Checkpoint可以通过用户的自主化选择保存计算进度的任务周期。
容错在云系统中作为应急故障处理机制变得至关重要。Checkpoint是一种广泛适用的容错机制,常常作为云计算中的容错资源调度的依据为云系统提供可靠性服务。Checkpoint基本原理是在系统运行期间周期性的将系统的任务状态和变量定期保存在可靠地存储设备上。当发生故障时,可以使用先前保存的恢复信息从中间状态重新开始计算,从而减少丢失的计算量,增强云系统的可靠性。
相较于其他容错技术,Checkpoint的优势在于无需考虑故障的类型,只要出现故障,将系统进程卷回最近的检查点即可。由于Checkpoint技术容错模型在云系统发生故障后通过回卷机制仍可保证任务正常完成,因此它在云计算可靠性服务中得到广泛的应用。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
机译: 云性能指数(CLIX)是一种基于单个云基础架构元素的综合性能来衡量在云计算环境中运行的应用程序的端到端性能的方法。
机译: 客户端计算机,应用于客户端计算机的初始化处理方法以及客户端计算机中使用的计算机程序产品
机译: Crylca5从苏云金芽胞杆菌中分离出一种蛋白质,该蛋白质的n端片段,一种编码该蛋白质的合成基因,非杀虫剂和一种保护植物免受鳞翅目昆虫危害的方法