CN112860719B - 数据处理方法、装置及电子设备 - Google Patents
数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112860719B CN112860719B CN202110163835.9A CN202110163835A CN112860719B CN 112860719 B CN112860719 B CN 112860719B CN 202110163835 A CN202110163835 A CN 202110163835A CN 112860719 B CN112860719 B CN 112860719B
- Authority
- CN
- China
- Prior art keywords
- data
- pointer
- timeliness
- timeliness data
- encryption value
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000011068 loading method Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 14
- 238000013473 artificial intelligence Methods 0.000 abstract description 5
- 238000013135 deep learning Methods 0.000 abstract description 4
- 230000005540 biological transmission Effects 0.000 description 22
- 238000004590 computer program Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 4
- 230000036962 time dependent Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010225 co-occurrence analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011089 mechanical engineering Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法、装置及电子设备,涉及知识图谱、深度学习等人工智能技术领域。实现方案为:初始化时效性数据对应的多个指针,其中,多个指针包括:第一指针和至少一个第二指针,第一指针,用于存储处于处理中状态的时效性数据;获取第二时效性数据,即处于待处理状态的时效性数据;将第二时效性数据存储至第二指针之中;以及采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新。由此,根据时效性数据对应的指针实现对时效性数据的更新,实现了无需重启即可对时效性数据进行的更新,不仅节约资源,而且有利于保证人工智能系统所获得的时效性数据为最新更新的数据。
Description
技术领域
本申请涉及计算机技术领域,具体涉及知识图谱、深度学习等人工智能技术领域,尤其涉及一种数据处理方法、装置、电子设备、存储介质和计算机程序产品。
背景技术
目前,随着计算机技术的不断发展,具有时效性的数据日益增加,在知识图谱中,时效性数据扮演了极其重要的角色,因此,对最新更新的时效性数据的获取极其重要,以支持对时效性数据的处理,保证对时效性数据处理的可靠性,因此,对最新更新的时效性数据进行获取以进行相关处理的技术尤为重要。
发明内容
本申请提供一种数据处理方法、装置及电子设备。
根据本申请的第一方面,提供了一种数据处理方法,包括:
初始化时效性数据对应的多个指针,其中,所述多个指针包括:第一指针和至少一个第二指针,所述第一指针,用于存储第一时效性数据,所述第一时效性数据,是处于处理中状态的时效性数据;
获取第二时效性数据,所述第二时效性数据,是处于待处理状态的时效性数据;
将所述第二时效性数据存储至所述第二指针之中;以及
采用热加载指针切换方式,根据所述第二指针之中存储的所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新。
根据本申请的第二方面,提供了一种数据数理装置,包括:
初始化模块,用于初始化时效性数据对应的多个指针,其中,所述多个指针包括:第一指针和至少一个第二指针,所述第一指针,用于存储第一时效性数据,所述第一时效性数据,是处于处理中状态的时效性数据;
第一获取模块,用于获取第二时效性数据,所述第二时效性数据,是处于待处理状态的时效性数据;
第一存储模块,用于将所述第二时效性数据存储至所述第二指针之中;以及
第一更新模块,用于采用热加载指针切换方式,根据所述第二指针之中存储的所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的数据处理方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算机执行上述一方面实施例所述的数据处理方法。
根据本申请的第五方面,提供了一种计算机程序产品,所述计算机程序被处理器执行时,实现上述一方面实施例所述的数据处理方法。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种对第一时效性数据进行更新的流程示意图;
图3为本申请实施例提供的一种获取第二时效性数据的流程示意图;
图4为本申请实施例提供的一种判断获取的第二时效性数据是否准确及将数据存储至第二指针的流程示意图;
图5为本申请实施例提供的一种给外部设备发送时效性数据的结构示意图;
图6为本申请实施例提供的一种数据处理方法的原理示意图;
图7为本申请实施例提供的一种数据数理装置的结构示意图;
图8为用来实现本申请实施例的数据处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
计算机技术是指计算机领域中所运用的技术方法和技术手段,或指其硬件技术、软件技术及应用技术。计算机技术具有明显的综合特性,它与电子工程、应用物理、机械工程、现代通信技术和数学等紧密结合。
知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系,通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的。
深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助,它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
相关技术中,大多使用频繁重启的方法实现最新的时效性数据的获取,即重新拉取最新数据,并读取数据,重启完成后系统数据为最新
然而,重启需要花费非常长的时间,及机器资源(内存、拉数据需要的网络带宽),且重启期间,为了保证服务稳定,还需要额外部署多台机器保证线上服务的稳定,所以极大的浪费了机器资源,比如一个机房有8台机器,如果4台机器同时重启(重启期间不能正常提供服务),那么为了保证同时有8台机器能提供服务,则需要额外部署4台机器,临时提供服务;若为了节约机器,每次只重启1台,虽然减少了额外部署1台机器的资源问题,但是会有7台老数据机器,1台新数据机器,总体上线时间太慢,且导致新老机器数据不一致问题。
为此,本申请实施例提出了一种数据处理方法、装置及电子设备。本申请实施例,根据时效性数据对应的指针实现对时效性数据的更新,实现了无需重启即可对时效性数据进行的更新,不仅节约资源,而且有利于保证人工智能系统所获得的时效性数据为最新更新的数据。
下面参考附图描述本申请实施例的数据处理方法、装置及电子设备。
本申请实施例的数据处理方法,可以应用于任何需要数据时效性的更新能力的场景,以提高时效性,例如基于知识图谱的query(查询请求)理解系统(知识图谱搜索需求:实体检索需求、泛需求检索需求、问答检索需求)、搜索推荐系统、query领域分类系统等。
图1为本申请实施例提供的一种数据处理方法的流程示意图。
需要说明的是,本申请实施例的数据处理方法执行主体可以为电子设备,具体的,电子设备可以是但不限于服务器、终端,终端可以是但不限于个人电脑、智能手机、IPAD等。
本申请实施例以数据处理方法被配置于数据数理装置中来举例说明,该装置可以应用于电子设备中,以使该电子设备可以执行数据处理方法。
如图1所示,该数据处理方法包括以下步骤:
S101,初始化时效性数据对应的多个指针,其中,多个指针包括:第一指针和至少一个第二指针,第一指针,用于存储第一时效性数据,第一时效性数据,是处于处理中状态的时效性数据。
本申请实施例,可将电子设备中需要处理的具有时效性的数据或者时效性要求比较高的数据称为时效性数据,例如新闻、资讯等。
需要说明的是,本申请实施例将时效性数据存储于多个指针中,多个指针可包括第一指针和至少一个第二指针(例如一个、两个或者三个第二指针等)。
具体地,可获取时效性数据对应的多个指针,并初始化多个指针分别对应的指针变量,以避免出现“野指针”的现象,其中,可使第一指针存储处于处理中状态,即当前正处于处理中状态的第一时效性数据。
S102,获取第二时效性数据,第二时效性数据,是处于待处理状态的时效性数据。
其中,待处理状态的时效性数据,可以理解为在处理完第一时效性数据后需要及时处理,比如更新(删除、修改等)的最新的时效性数据。
具体地,在完成指针初始化之后,获取处于待处理状态的第二时效性数据。
S103,将第二时效性数据存储至第二指针之中。
具体地,在获取到第二时效性数据之后,可将第二时效性数据存储至第二指针之中。
需要说明的是,本申请实施例中将第二时效性数据存储至第二指针的方式可以为相关技术中的任何可行方式,只要可将第二时效性数据存储至第二指针即可,本申请实施例对此不做限制。
S104,采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新。
其中,热加载指针切换方式,可以理解为通过热加载(hot reload)交换指针的方式,通过该方式,可以无需重新启动进程即可实现指针切换。
具体地,在将第二时效性数据存储至第二指针之中之后,采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新,比如,可将第一指针之中的第一时效性数据更新为第二指针之中的第二时效性数据。
举例而言,如果时效性数据对应的两个指针为P1、P2,处于处理中状态的时效性数据为A1、处于待处理状态的最新的时效性数据为A2,那么,可将A1存储于P1之中、将A2存储于P2之中,之后,可采用热加载指针切换方式,将A1更新为A2。
本申请实施例的数据处理方法,根据时效性数据对应的指针实现对时效性数据的更新,实现了无需重启即可对时效性数据进行的更新,不仅节约资源,而且有利于保证人工智能系统所获得的时效性数据为最新更新的数据。
需要说明的是,本公开实施例中采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新。基于此,本公开实施例可以通过以下步骤构建对应于该切换方式的代码框架,下面对其构建过程进行具体说明:
第一步,构建热加载基类(Hot Reload base class),其中有2个成员(member):(HotReloadData*_p_hot_reload和HotReloadData*_p_hot_reload_buffer),为了复用代码,可将时效性数据对应的指针的类型设定为HotReloadData,而这个类是一个接口类,并不能实例化,所以相当于设定了一个中间层,虽然热加载基类写死了时效性数据指针类型为HotReloadData,但这个类型,可以实例化,传参数的时候可以通用写HotReloadData类型即可。
第二步,构建中间层接口类HotReloadData interface class,定义virtual(虚拟)函数,并不实现,留给实例类去实现
第三步,构建(如时效性)实例类HotReloadTimeliness instance class(其中,所有时效性数据都可以生成一个实例类,可以有多个,互不影响),从而可以利用父类HotReloadData作为指针类型进行传参,而且在热加载基类中,利用_p_hot_reload_buffer指针,可以调用实例类中的自定义加载方法,对数据指针进行赋值操作。
由此,在热加载基类中的代码逻辑scheduled_update,可以复用调用,只需要写一次,每个实例类的对象类型,都可以是父类HotReloadData,复用统一了指针类型,达到了代码复用、减少冗余的效果。
上述步骤S104中对第一时效性数据进行更新时,为了确保更新的可靠性,可采用互斥锁(mutex lock)将指针进行加锁后进行更新。
即在本申请的一个实施例中,如图2所示,上述步骤S104,可包括以下步骤以下步骤S201及S202。
S201,对第一指针和第二指针分别进行加锁处理。
具体地,在将第二时效性数据存储至第二指针之中之后,可采用互斥锁(mutexlock)对第一指针和第二指针进行加锁处理。
S202,在加锁处理之后,采用第二时效性数据对第一指针之中的第一时效性数据进行更新,并采用第一时效性数据对第二指针之中的第二时效性数据进行更新。
具体地,在加锁处理之后,采用第二时效性数据对第一指针之中的第一时效性数据进行更新,并采用第一时效性数据对第二指针之中的第二时效性数据进行更新,也即,交换第一指针和第二指针之中的时效性数据,实现指针的切换。如此,使得最新的时效性数据存储至当前处于处理中状态的第一指针中,实现了当前时效性数据的更新。
在更新之后,可以及时进行解锁处理,使得第一指针和第二指针解锁,以方便后续处理。
需要说明的是,为了防止在更新过程中出现错误指针,可以使指针切换过程是“原子操作”,从而确保指针切换过程是非中断的。
需要说明的是,时效性时间设置的太小,频繁加锁解锁,会稍微影响性能,因此可以将时效性时间调整为较高,通常时效性数据大多是轻量级数据,所以读取文本后,生成数据指针的时间并不长,所以时效性时间,可以为1分钟或者10分钟。本申请实施例中在切换指针时,虽然加锁,但是实际是非常快的操作,所以基本上不会影响性能。
例如,如果第一指针为P1、第二指针为P2,两个指针之中分别存储处理中状态的时效性数据A1、处于待处理状态的最新的时效性数据A2,那么可采用互斥锁对P1和P2进行加锁处理,进而切换两个指针中的时效性数据,之后对P1和P2进行解锁处理,从而完成对两个指针的切换,且切换过程是非中断的,确保了切换的准确性。
由此,将第一指针和第二指针进行加锁处理后,实现指针切换,确保了时效性数据更新的准确性和可靠性。
在上述步骤S102中获取待处理状态的时效性数据,即第二时效性数据时,可先判断第二时效性数据是否更新,可在更新了的情况下,获取时效性数据,以保证获取到最新的时效性数据。
即在本申请的一个实施例中,如图3所示,上述步骤S102,可包括以下步骤S301至S303。
S301,获取第二时效性数据对应的第一加密值。
其中,第一加密值可以理解为用于标识第二时效性数据的唯一标识值,可以是md5(message-digest algorithm 5,信息-摘要算法)算法将时效性数据进行加密处理后产生的md5值。可以理解的是,每个时效性数据对应的md5值是固定的,数据内容发生变化时,md5值也会对应发生变化。
S302,获取第二指针中已存储时效性数据对应的第二加密值。
其中,第二加密值可以理解为用于标识第二指针中已存储时效性数据的唯一标识值,也可以是通过md5算法将时效性数据进行加密处理后产生的md5值。
需要说明的是,由于本公开实施例中将时效性数据结构设置为指针的使用,因此,第二指针中可能已经存储有对应的时效性数据。
S303,如果第一加密值和第二加密值不相同,则获取第二时效性数据。
为了保证第二指针中存储的时效性数据是处于待处理状态的最新的时效性数据,需保证获取到的第二时效性数据是最新的时效性数据,于是可先判断第二指针中已存储的时效性数据是否是最新的时效性数据,即已存储的时效性数据与拉取的最新的第二时效性数据是否相同。为了提高判断的准确性,可根据数据对应的加密值,例如md5值进行判断。
具体地,在完成指针初始化之后,可获取当前拉取的处于处理状态的时效性数据,即最新时效性数据对应的第一加密值,及获取第二指针中已存储时效性数据对应的第二加密值。之后,可判断获取到的两个加密值是否相同,如果不相同,即说明最新的时效性数据相对于第二指针中已有的时效性数据而言,已经发生了变化,也就是说最新的时效性文件发生了更新,于是获取最新拉取的第二时效性数据,实现最新的时效性数据的获取。
也就是说,通过比较最新的时效性数据的md5值与已有的旧的时效性数据的md5值,判断新的md5值相对于旧的md5值是否发生了变化,如果发生了变化,则说明时效性数据发生了更新,则获取最新的时效性数据:第二时效性数据。之后,可执行步骤S103及S104,以将第二时效性数据存储至第二指针之中,以及采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新。
需要说明的是,由于需要将第二加密值与第一加密值进行比较,以判断对应的数据是否发生改变,因此第二加密值与第一加密值均可以是md5值。
例如,如果获取拉取的最新的时效性数据S1(即第二时效性数据)对应的md5值为X、第二指针中已有的时效性数据S2对应的md5值为Y,那么,经过对两个md5值进行比较可得出,X与Y不同,也即,时效性数据发生了更新,于是获取最新的时效性数据。之后,可将第二时效性数据S1存储至第二指针之中,以及采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据S1对第一指针之中的第一时效性数据进行更新。
由此,采用动态拉取的方式获取最新的时效性数据,保证了获取到的第二时效性数据是最新的时效性数据,进一步保证了存入第二指针的数据是最新的时效性数据,从而可以保证时效性数据更新的准确性和高效性。
需要说明的是,如果第一加密值和第二加密值相同,即说明时效性数据未发生更新,则可以退出,并等待下次时效性更新。
在本申请的一个实施例中,参照图3,在上述步骤S302之后,还可包括以下步骤S304及S305。
S304,如果第一加密值和第二加密值相同,则判断更新等待时长是否达到时长阈值。
其中,更新等待时长可以表示一般情况下等待下次时效性数据更新的时间,时长阈值可以理解为等待下次时效性数据更新的最长时间,例如可以是2分钟。
S305,如果更新等待时长达到时长阈值,则重新执行获取第二时效性数据对应的第一加密值的步骤。
本公开实施例,为了提高最新时效性文件获取的准确性,在时效性数据没有更新的情况下,可等待一段时间,以等待下一次更新,如果等待时间达到了等待的最长时间,即说明时效性数据开始进行更新,于是重新获取最新更新的时效性数据。
具体地,在获取到第二时效性数据对应的第一加密值及第二指针中已存储时效性数据对应的第二加密值之后,如果判断出第一加密值和第二加密值相同,即第二时效性数据与已存储的时效性数据相同,第二时效性数据未发生更新,则可以退出当前流程,并可等待一段时间,并可开始获取更新等待时长,在更新等待时长达到时长阈值时,第二时效性数据即进行更新,在更新完成后,重新执行获取第二时效性数据对应的第一加密值的步骤,即可获取到最新的时效性数据。
例如,如果获取拉取的最新的时效性数据S1(即第二时效性数据)对应的md5值为X、第二指针中已有的时效性数据S2对应的md5值也为X,那么,经过对两个md5值进行比较可得出,时效性数据未发生更新,于是退出当前流程,并等待4分钟,以等待下次时效性数据的更新,之后,可重新获取第二时效性数据S3对应的第一加密值Y。之后,可将第二时效性数据S3存储至第二指针之中,以及采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据S3对第一指针之中的第一时效性数据进行更新。
由此,在拉取的时效性数据与旧的时效性数据相同时,可等待时效性数据更新,并在更新后重新获取最新的时效性文件的第一加密值,保证获取到的第二时效性数据是最新的,保证了时效性文件获取的准确性。
需要说明的是,在如果第一加密值和第二加密值不相同,则获取第二时效性数据之后,为了防止获取过程中出现网络传输问题导致没有传输或者获取完整的问题,本公开实施例提出了以下实施例:
在本公开的一个实施例中,如图4所示,在如果第一加密值和第二加密值不相同,则获取第二时效性数据,即上述步骤S303之后,还可包括以下步骤S401至S404。
S401,采用预设加密算法对第二时效性数据进行加密处理,以得到第三加密值。
其中,预设加密算法,可以是预先设定的任何可以获得时效性数据的唯一标识值的加密算法,例如可以是md5(message-digest algorithm 5,信息-摘要算法)算法,第三加密值,可以理解为用于标识时效性数据的唯一标识值,可以是md5算法进行加密处理后产生的md5值(128位的散列值)。
具体地,在第一加密值和第二加密值不相同的情况下,获取到第二时效性数据之后,可采用预设加密算法对第二时效性数据进行加密处理,以得到第二时效性数据对应的第三加密值,进而可通过判断第三加密值与第一加密值是否相同,来判断获取第二时效性数据时是否发生了传输不完全的现象。
需要说明的是,由于需要将第三加密值与第一加密值进行比较,以判断对应的数据是否发生改变,因此第三加密值与第一加密值均可以是md5值。
S402,如果第三加密值和第一加密值相同,则将第二时效性数据添加至写入队列之中。
其中,写入队列,可以理解为按序写入时效性数据的队列,按照写入队列中的时效性数据写入时,可以保证时效性数据的准确性。
具体地,如果第三加密值与第一加密值相同,即说明之前的(步骤S301中的)第二时效性数据与刚刚拉取的(步骤S303中获取的)第二时效性数据的相同,即步骤S303中没有出现获取不完整或者获取错误的现象,步骤S303中获取的第二时效性数据是准确地、完整的,于是将第二时效性数据添加至写入队列之中,以等待时效性系统线程循环时读入。
S403,如果第三加密值和第一加密值不相同,则重新获取第二时效性数据。
S404,根据重新获取的第二时效性数据对已获取的第二时效性数据进行更新,直至重新获取的第二时效性数据对应的加密值与第一加密值相同。
具体地,如果第三加密值和第一加密值不相同,即说明之前的(步骤S301中的)第二时效性数据与刚刚拉取的(步骤S303中获取的)第二时效性数据的不同,即步骤S303中获取的第二时效性数据的获取不完整或者获取错误,即步骤S303中获取的第二时效性数据不是准确地、完整的,于是重新获取第二时效性数据。根据重新获取的第二时效性数据对步骤S303中已获取的第二时效性数据进行更新,直至重新获取的第二时效性数据对应的加密值与第一加密值相同时,可将重新获取的第二时效性数据添加至写入队列之中,保证了获取到的第二时效性数据是准确地,以等待时效性系统线程循环时读入。
其中在进行重新获取时,可重新获取至少一次,直至重新获取的第二时效性数据对应的加密值与第一加密值相同或者重新获取的次数执行结束时,可退出当前流程等待下次时效性更新。
之后,可执行上述步骤S103及S104,即将第二时效性数据存储至第二指针之中,以及采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新。
进一步地,参照图4,上述步骤S103可包括以下步骤S405。
S405,从写入队列中读取第二时效性数据,并将读取的第二时效性数据存储至第二指针之中。
具体地,在将准确地第二时效性数据添加至写入队列之后,可从写入队列中读取第二时效性数据,并将读取的第二时效性数据存储至第二指针之中,从而保证就准确地第二时效性数据写入第二指针。之后,可执行步骤S104,即采用热加载指针切换方式,根据第二指针之中存储的第二时效性数据对第一指针之中的第一时效性数据进行更新。
例如,如果采用md5算法对获取到的第二时效性数据进行加密处理后,得到(步骤303中获取到的第二时效性数据的第三加密值)md5值W,之前获取到的第二时效性数据的(步骤S301中获取的第一加密值)md5值为与W不同的U,那么,可重新获取至少一次第二时效性数,直至重新获取的第二时效性数据对应的加密值与U相同。之后,将与U对应的第二时效性数据添加至写入队列中,进而时效性下系统可从写入队列中读取第二时效性数据,并将读取的第二时效性数据存储至第二指针之中。
也就是说,在获取到最新的时效性数据之后,根据获取到的时效性数据的加密值与之前拉取的时效性数据的加密值,判断获取过程中是否出现了网络传输问题,导致没有传输完全,并在没有传输完全时进行重新获取直至传输完全。
由此,可以防止网络传输问题导致的时效性数据获取不完整的问题,进一步保证了获取时效性数据的准确性和可靠性,从而保证了第二指针中存储的是最新的时效性数据。
需要说明的是,在上述步骤S103中,将第二时效性数据存储至第二指针之中时,第二指针的数量为至少一个,其中,当第二指针的数量为一个时,可根据最新的第二时效性数据对第二指针中已存储的时效性数据进行更新,从而最新的准确地第二时效性数据存储至第二指针之中;当第二指针的数量为多个时,为了提高数据处理效率,可以在多个指针中选择一个空闲的指针作为第二指针,以直接将获取到的准确的第二时效性数据存储至第二指针,或者根据上述步骤S405将获取到的准确的第二时效性数据存储至第二指针之中,这样就无需将新的时效性数据与已存储的时效性数据进行比较,即无需执行上述步骤S301至S305。
即在本申请的一个实施例中,上述步骤S103,可包括:如果第二指针的数量是多个,则确定多个第二指针分别对应的多个当前状态;从多个第二指针之中,确定出当前状态是空闲状态的目标第二指针;以及将第二时效性数据存储至目标第二指针之中。
其中,目标第二指针,可以理解为多个第二指针中当前处于空闲状态的第二指针。
具体地,在获取到(最新的准确的)第二时效性数据之后,可获取多个指针中第二指针的数量,如果第二指针的数量是多个,则确定每个第二指针对应的当前状态,从而确定出多个当前状态,进而从多个第二指针之中,确定出当前状态是空闲状态的目标第二指针,并将第二时效性数据存储至目标第二指针之中。之后,格局第二指针中的第二时效性数据对第一指针中的第一是相信数据进行更新。
例如,在获取到第二时效性数据M后,如果有多个第二指针P21、P22及P23,那么,可获取每个第二指针的当前的状态,如果第二指针P23的当前状态是空闲状态,那么,可将M存储至第二指针P23中。之后,根据M对当前处理中状态的时效性数据进行更新,从而实现对时效性数据的及时更新。
由此,在第二指针的数量是多个时,将第二时效性数据存储至处于空闲状态的第二指针中,提高了存储的高效性。
需要说明的是,本申请实施例的数据处理方法,其执行主体可以是电子设备,而在电子设备内部,可通过其时效性系统实现该数据处理方法。在电子设备需要使用时效性数据时,只需从时效性系统获取一次时效性数据,即可获取到最新的准确的时效性数据,由时效性系统来保证每次获取数据指针都是最新。而在外部其他设备需要获取电子设备的时效性数据时,也可通过获取指针,实现对电子设备的时效性系统的时效性数据的获取。下面通过一个实施例进行说明:
在本申请的一个实施例中,如图5所示,数据处理方法,还可包括:
S501,在接收到外部设备发送的数据获取请求时,对第一指针进行加锁处理。
其中,外部设备可以理解为相对于电子设备(本申请实施例的执行主体)而言属于“外部”的设备,也可以理解为除电子设备之外的其他任何电子设备。
S502,生成与第一指针对应的第三指针,第三指针,用于存储与第一时效性数据对应的备份时效性数据。
S503,根据数据获取请求,将第三指针之中的备份时效性数据发送至外部设备。
具体地,在外部设备需要获取电子设备中的时效性数据时,可发送数据获取请求至电子设备,进而电子设备在接收到外部设备发送的数据获取请求时,对存储当前处于处理状态中的时效性数据的第一指针进行加锁处理,之后,生成存储与第一时效性数据对应的备份时效性数据的第三指针,也即,复制一个第一指针,之后,根据数据获取请求,将第三指针之中的备份时效性数据发送至外部设备,也就是说将生成的第三指针供外部设备使用,从而实现时效性数据的发送。
需要说明的是,该实施例中的生成第三指针的整个过程可以是“原子操作”的,即是非中断的,以防止外部设备接收到错误指针。
例如,电子设备在接收到外部设备的数据获取请求时,对第一指针采用互斥锁进行加锁处理,然后存储与第一时效性数据对应的备份时效性数据C的第三指针P3,并将第三指针P3之中的备份时效性数据C发送至外部设备。
如图6所示,当外部设备(外部大型系统),向时效性系统发出一条获取最新时效性数据指针指令或者请求时,时效性系统,对HotReloadData*_p_hot_reload指针进行加锁处理,然后可复制热加载基类中的HotReloadData*_p_hot_reload指针,获得指针副本,然后解锁。以上为“原子操作”。并将指针副本返回给外部大型系统,作为最新的时效性数据指针。
由此,解决了不同设备之间传输数据缓慢的问题,外部设备在需要使用到时效性数据时,只需在电子设备中获取一次即可,保证了数据传输的高效性。而且降低了使用成本。
另外,基于本申请的上述实施例,可以解决跨相关技术中机房传输非常慢的问题,比如南北机房之间互传信息,会非常慢,北京机房与广州机房之间。跨机房传输数据非常慢,是无法避免的,除非占用非常高优的带宽通路,才能缓解问题,但无法从根本解决问题,方案也不通用,占用极大资源。为此,本公开实施例,提出一种多机房数据部署的方案,解决跨机房传输非常慢的问题
具体而言,如果外部应用大型系统(如基于知识图谱的query理解系统)占用几个机房,那么,可从数据存储层面,也占用同样个数的机房来进行网盘部署,且每个机房保证时效性数据的一致性,例如,如图6所示,如果基于知识图谱的query理解系统占用5个机房:B1城市机房至B5城市机房,那么,可在数据存储层面,即数据网盘,也占用5个机房来进行网盘部署。如此,每次拉取数据或者推送数据到部署网盘,都从同机房进行数据传输,所以不从跨机房进行传输,进而不会有跨机房传输慢的问题,同机房传输稳定且速度快。
需要说明的是,如果更新数据的时候需要传输,则是“原子操作”(所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束),不会接收到传到一半的数据,所以要么拿到旧数据,要么拿到新数据。
也就是说,大型系统部署在多个机房中,对多个地区提供服务,将时效性数据部署到与大型系统服务相同机房的网盘上。每次需要最新时效性数据时候,只需要对时效性系统发出一条指令,获取最新的时效性数据指针即可。
由此,实现了同机房找同机房数据传输,且可以保证多个机房的时效性数据的一致性,每次更新时效性数据时,都是多个机房一起更新,保证每个机房数据都一致。
本申请实施例的数据处理方法,就电子设备而言,对外部设备,提供最新时效性数据指针的功能。在电子设备(时效性系统)内部,保证时效性数据的更新。
当外部大型系统,发出一条获取最新时效性数据指针指令时,时效性系统,加锁,然后copy热加载基类中的HotReloadData*_p_hot_reload指针,获得指针副本,然后解锁。以上为“原子操作”。并将指针副本返回给外部大型系统,作为最新的时效性数据指针。
为了更加清楚的说明本申请实施例,下面参照图6对时效性系统的工作过程进行进一步描述:
启动一个线程,每隔一段时间(时效性时间,如10分钟)从对应机房的网盘上拉取最新的时效性数据(第二时效性数据),热加载基类的_p_hot_reload_buffer buffer数据指针(第二指针)调用实例类的加载方法,对此buffer指针进行处理,用最新时效性数据填满(赋值)buffer指针,之后进行加锁处理,进而双buffer数据指针切换:_p_hot_reload和_p_hot_reload_buffer热加载基类的两个指针进行内容交换(交换后此时_p_hot_reload又是指向最新的时效性数据),进行解锁处理。
总体来说,利用_p_hot_reload_buffer(第二指针)读取最新时效性数据,并交换给_p_hot_reload(第一指针),使得此指针,每次都是指向最新的时效性数据,外部设备(大型系统)需要获取最新时效性数据指针时候,时序系统根据_p_hot_reload生成一个副本指针返回外部设备即可。
综上所述,本申请实施例的数据处理方法,可解决跨机房传输非常慢的问题,也可解决系统(基于知识图谱)数据切换,需要重启的问题,因为重启消耗资源太大解决系统(基于知识图谱)时效性不够的问题,可以将时效性提到分钟级别(如1分钟);而且具有成本低、代码复用率高的优点
本申请实施例还提出了一种数据数理装置,图7为本申请实施例提供的一种数据数理装置的结构示意图。
如图7所示,该数据数理装置700包括:初始化模块710、第一获取模块720、第一存储模块730及第一更新模块740。
其中,初始化模块710,用于初始化时效性数据对应的多个指针,其中,所述多个指针包括:第一指针和至少一个第二指针,所述第一指针,用于存储第一时效性数据,所述第一时效性数据,是处于处理中状态的时效性数据;第一获取模块720,用于获取第二时效性数据,所述第二时效性数据,是处于待处理状态的时效性数据;第一存储模块730,用于将所述第二时效性数据存储至所述第二指针之中;以及第一更新模块740,用于采用热加载指针切换方式,根据所述第二指针之中存储的所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新。
在本申请的一个实施例中,所述第一更新模块740,可包括:第一加锁单元,用于对所述第一指针和所述第二指针分别进行加锁处理;第一更新单元,用于在所述加锁处理之后,采用所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新,并采用所述第一时效性数据对所述第二指针之中的所述第二时效性数据进行更新。
在本申请的一个实施例中,所述第一获取模块720,可包括:第一获取单元,用于获取所述第二时效性数据对应的第一加密值;第二获取单元,用于获取所述第二指针中已存储时效性数据对应的第二加密值;第三获取单元,用于如果所述第一加密值和所述第二加密值不相同,则获取第二时效性数据。
在本申请的一个实施例中,所述第一获取模块720,还包括:第一判断单元,用于如果所述第一加密值和所述第二加密值相同,则判断更新等待时长是否达到时长阈值;第一执行单元,用于如果所述更新等待时长达到所述时长阈值,则重新执行所述获取所述第二时效性数据对应的第一加密值。
在本申请的一个实施例中,所述第一获取模块720,还可包括:第一加密单元,用于采用预设加密算法对所述第二时效性数据进行加密处理,以得到第三加密值;第一写入单元,用于如果所述第三加密值和所述第一加密值相同,则将所述第二时效性数据添加至写入队列之中;第四获取单元,用于如果所述第三加密值和所述第一加密值不相同,则重新获取第二时效性数据;第一更新单元,用于根据重新获取的第二时效性数据对已获取的所述第二时效性数据进行更新,直至所述重新获取的第二时效性数据对应的加密值与所述第一加密值相同;所述第一存储模块730,可包括:第一存储单元,用于从所述写入队列中读取所述第二时效性数据,并将读取的所述第二时效性数据存储至所述第二指针之中。
在本申请的一个实施例中,第一存储模块730,可包括:第一确定单元,用于如果所述第二指针的数量是多个,则确定多个所述第二指针分别对应的多个当前状态;第二确定单元,用于从多个所述第二指针之中,确定出所述当前状态是空闲状态的目标第二指针;以及第二存储单元,用于将所述第二时效性数据存储至所述目标第二指针之中。
在本申请的一个实施例中,数据数理装置700还可包括:第一加锁模块,用于在接收到外部设备发送的数据获取请求时,对所述第一指针进行加锁处理;第一生成模块,用于生成与所述第一指针对应的第三指针,所述第三指针,用于存储与所述第一时效性数据对应的备份时效性数据;第一发送模块,用于根据所述数据获取请求,将所述第三指针之中的所述备份时效性数据发送至所述外部设备。
需要说明的是,本申请实施例的数据数理装置的其他具体实施方式可参见前述数据处理方法的具体实施方式,为避免冗余,此处不再赘述。
本申请实施例的数据数理装置,根据时效性数据对应的指针实现对时效性数据的更新,实现了无需重启即可对时效性数据进行的更新,不仅节约资源,而且有利于保证人工智能系统所获得的时效性数据为最新更新的数据。
根据本申请的实施例,本申请还提供了一种数据处理方法的电子设备、可读存储介质和计算机程序产品。下面结合图8进行说明。
如图8所示,是根据本申请实施例的数据处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如数据处理方法。例如,在一些实施例中,数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM803并由计算单元801执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS(VirtualPrivate Server,虚拟专用服务器)服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (14)
1.一种数据处理方法,其中,所述方法包括:
初始化时效性数据对应的多个指针,其中,所述多个指针包括:第一指针和至少一个第二指针,所述第一指针,用于存储第一时效性数据,所述第一时效性数据,是处于处理中状态的时效性数据;
获取第二时效性数据,所述第二时效性数据,是处于待处理状态的时效性数据;
将所述第二时效性数据存储至所述第二指针之中;以及
采用热加载指针切换方式,根据所述第二指针之中存储的所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新;
其中,所述采用热加载指针切换方式,根据所述第二指针之中存储的所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新,包括:
对所述第一指针和所述第二指针分别进行加锁处理;
在所述加锁处理之后,采用所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新,并采用所述第一时效性数据对所述第二指针之中的所述第二时效性数据进行更新。
2.如权利要求1所述的方法,其中,所述获取第二时效性数据,包括:
获取所述第二时效性数据对应的第一加密值;
获取所述第二指针中已存储时效性数据对应的第二加密值;
如果所述第一加密值和所述第二加密值不相同,则获取第二时效性数据。
3.如权利要求2所述的方法,在所述获取所述第二指针中已存储时效性数据对应的第二加密值之后,还包括:
如果所述第一加密值和所述第二加密值相同,则判断更新等待时长是否达到时长阈值;
如果所述更新等待时长达到所述时长阈值,则重新执行所述获取所述第二时效性数据对应的第一加密值的步骤。
4.如权利要求2所述的方法,在所述如果所述第一加密值和所述第二加密值不相同,则获取第二时效性数据之后,还包括:
采用预设加密算法对所述第二时效性数据进行加密处理,以得到第三加密值;
如果所述第三加密值和所述第一加密值相同,则将所述第二时效性数据添加至写入队列之中;
如果所述第三加密值和所述第一加密值不相同,则重新获取第二时效性数据;
根据重新获取的第二时效性数据对已获取的所述第二时效性数据进行更新,直至所述重新获取的第二时效性数据对应的加密值与所述第一加密值相同;
其中,所述将所述第二时效性数据存储至所述第二指针之中,包括:
从所述写入队列中读取所述第二时效性数据,并将读取的所述第二时效性数据存储至所述第二指针之中。
5.根据权利要求1所述的方法,其中,所述将所述第二时效性数据存储至所述第二指针之中,包括:
如果所述第二指针的数量是多个,则确定多个所述第二指针分别对应的多个当前状态;
从多个所述第二指针之中,确定出所述当前状态是空闲状态的目标第二指针;以及
将所述第二时效性数据存储至所述目标第二指针之中。
6.根据权利要求1所述的方法,还包括:
在接收到外部设备发送的数据获取请求时,对所述第一指针进行加锁处理;
生成与所述第一指针对应的第三指针,所述第三指针,用于存储与所述第一时效性数据对应的备份时效性数据;
根据所述数据获取请求,将所述第三指针之中的所述备份时效性数据发送至所述外部设备。
7.一种数据数理装置,其中,所述装置包括:
初始化模块,用于初始化时效性数据对应的多个指针,其中,所述多个指针包括:第一指针和至少一个第二指针,所述第一指针,用于存储第一时效性数据,所述第一时效性数据,是处于处理中状态的时效性数据;
第一获取模块,用于获取第二时效性数据,所述第二时效性数据,是处于待处理状态的时效性数据;
第一存储模块,用于将所述第二时效性数据存储至所述第二指针之中;以及
第一更新模块,用于采用热加载指针切换方式,根据所述第二指针之中存储的所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新;
其中,所述第一更新模块,包括:
第一加锁单元,用于对所述第一指针和所述第二指针分别进行加锁处理;
第一更新单元,用于在所述加锁处理之后,采用所述第二时效性数据对所述第一指针之中的所述第一时效性数据进行更新,并采用所述第一时效性数据对所述第二指针之中的所述第二时效性数据进行更新。
8.根据权利要求7所述的装置,其中,所述第一获取模块,包括:
第一获取单元,用于获取所述第二时效性数据对应的第一加密值;
第二获取单元,用于获取所述第二指针中已存储时效性数据对应的第二加密值;
第三获取单元,用于如果所述第一加密值和所述第二加密值不相同,则获取第二时效性数据。
9.根据权利要求8所述的装置,其中,所述第一获取模块,还包括:
第一判断单元,用于如果所述第一加密值和所述第二加密值相同,则判断更新等待时长是否达到时长阈值;
第一执行单元,用于如果所述更新等待时长达到所述时长阈值,则重新执行所述获取所述第二时效性数据对应的第一加密值。
10.根据权利要求8所述的装置,其中,所述第一获取模块,还包括:
第一加密单元,用于采用预设加密算法对所述第二时效性数据进行加密处理,以得到第三加密值;
第一写入单元,用于如果所述第三加密值和所述第一加密值相同,则将所述第二时效性数据添加至写入队列之中;
第四获取单元,用于如果所述第三加密值和所述第一加密值不相同,则重新获取第二时效性数据;
第一更新单元,用于根据重新获取的第二时效性数据对已获取的所述第二时效性数据进行更新,直至所述重新获取的第二时效性数据对应的加密值与所述第一加密值相同;
其中,所述第一存储模块,包括:
第一存储单元,用于从所述写入队列中读取所述第二时效性数据,并将读取的所述第二时效性数据存储至所述第二指针之中。
11.根据权利要求7所述的装置,其中,所述第一存储模块,包括:
第一确定单元,用于如果所述第二指针的数量是多个,则确定多个所述第二指针分别对应的多个当前状态;
第二确定单元,用于从多个所述第二指针之中,确定出所述当前状态是空闲状态的目标第二指针;以及
第二存储单元,用于将所述第二时效性数据存储至所述目标第二指针之中。
12.根据权利要求7所述的装置,还包括:
第一加锁模块,用于在接收到外部设备发送的数据获取请求时,对所述第一指针进行加锁处理;
第一生成模块,用于生成与所述第一指针对应的第三指针,所述第三指针,用于存储与所述第一时效性数据对应的备份时效性数据;
第一发送模块,用于根据所述数据获取请求,将所述第三指针之中的所述备份时效性数据发送至所述外部设备。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的数据处理方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110163835.9A CN112860719B (zh) | 2021-02-05 | 2021-02-05 | 数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110163835.9A CN112860719B (zh) | 2021-02-05 | 2021-02-05 | 数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860719A CN112860719A (zh) | 2021-05-28 |
CN112860719B true CN112860719B (zh) | 2023-09-29 |
Family
ID=75989404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110163835.9A Active CN112860719B (zh) | 2021-02-05 | 2021-02-05 | 数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860719B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009022A (zh) * | 2017-11-06 | 2018-05-08 | 联动优势科技有限公司 | 一种消息处理方法及服务器 |
CN109271193A (zh) * | 2018-10-08 | 2019-01-25 | 广州市百果园信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN109783243A (zh) * | 2018-12-28 | 2019-05-21 | 南京华飞数据技术有限公司 | 一种基于正副本切换的多线程数据无锁读写方法 |
CN110716959A (zh) * | 2019-10-09 | 2020-01-21 | 北京百度网讯科技有限公司 | 流式数据处理方法、装置、电子设备及存储介质 |
CN111158927A (zh) * | 2019-12-17 | 2020-05-15 | 科大讯飞股份有限公司 | 进程间通信方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713746B2 (en) * | 2018-01-29 | 2020-07-14 | Microsoft Technology Licensing, Llc | FIFO queue, memory resource, and task management for graphics processing |
-
2021
- 2021-02-05 CN CN202110163835.9A patent/CN112860719B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009022A (zh) * | 2017-11-06 | 2018-05-08 | 联动优势科技有限公司 | 一种消息处理方法及服务器 |
CN109271193A (zh) * | 2018-10-08 | 2019-01-25 | 广州市百果园信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN109783243A (zh) * | 2018-12-28 | 2019-05-21 | 南京华飞数据技术有限公司 | 一种基于正副本切换的多线程数据无锁读写方法 |
CN110716959A (zh) * | 2019-10-09 | 2020-01-21 | 北京百度网讯科技有限公司 | 流式数据处理方法、装置、电子设备及存储介质 |
CN111158927A (zh) * | 2019-12-17 | 2020-05-15 | 科大讯飞股份有限公司 | 进程间通信方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
Shih-Hsiang Lin ; Pei-Yin Chen ; Yu-Ning Lin.Hardware Design of Low-Power High-Throughput Sorting Unit.《IEEE Transactions on Computers》.2017,摘要. * |
差量存储的集中式文件级连续数据保护方法;生拥宏;刘川意;鞠大鹏;汪东升;;计算机科学与探索(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112860719A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274754B (zh) | 用于在区块链网络中同步数据的方法、设备和存储介质 | |
CN112650576B (zh) | 资源调度方法、装置、设备、存储介质及计算机程序产品 | |
JP6325001B2 (ja) | 階層データ構造のノードにおいて再帰的イベントリスナを用いる方法およびシステム | |
CN112069266B (zh) | 一种数据同步方法及服务节点 | |
US20170193070A1 (en) | System and method for a distributed replication lock for active-active geo-redundant systems | |
US8341368B2 (en) | Automatic reallocation of structured external storage structures | |
CN117632545A (zh) | 业务系统的数据共享方法、装置及电子设备 | |
CN112860719B (zh) | 数据处理方法、装置及电子设备 | |
CN111427689A (zh) | 集群保活方法、装置及存储介质 | |
CN110727666A (zh) | 面向工业互联网平台的缓存组件、方法、设备及存储介质 | |
CN115688867A (zh) | 用于训练神经网络的方法、装置、设备和存储介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113377295B (zh) | 多生产者单消费者的数据存储和读取方法、装置、设备 | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
US11442895B2 (en) | Method for copying data, electronic device and computer program product | |
CN108363613A (zh) | 一种独占锁的加锁方法、电子设备及存储介质 | |
CN114217986A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
CN110633324B (zh) | 用于同步数据的方法、装置、电子设备和计算机可读介质 | |
CN111209042B (zh) | 一种建立函数栈的方法、装置、介质和电子设备 | |
CN114546705A (zh) | 操作响应方法、操作响应装置、电子设备以及存储介质 | |
CN112559547A (zh) | 确定多存储对象副本之间一致性的方法及装置 | |
US8838910B2 (en) | Multi-part aggregated variable in structured external storage | |
US11972312B2 (en) | Data synchronization without middleware | |
CN114253476B (zh) | 存储空间扩展方法、装置、设备及计算机可读存储介质 | |
CN112732679B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |