CN115238006A - 检索数据同步方法、装置、设备及计算机存储介质 - Google Patents
检索数据同步方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN115238006A CN115238006A CN202210899362.3A CN202210899362A CN115238006A CN 115238006 A CN115238006 A CN 115238006A CN 202210899362 A CN202210899362 A CN 202210899362A CN 115238006 A CN115238006 A CN 115238006A
- Authority
- CN
- China
- Prior art keywords
- retrieval
- feature
- database
- cluster
- write operation
- 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
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
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)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种检索数据同步方法、装置、设备及计算机存储介质,可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,通过将写操作相关服务部署在特征管理集群,检索操作相关服务部署在特征检索集群,两个集群物理隔离,各自维护自身关联的数据库,从而避免了整个检索***复用一个检索库,从而提升了检索***的可靠性。同时,特征管理集群在进行写操作之后,还会通过写扩散的方式将更新的特征同步至特征检索集群,使得特征检索集群同步更新自身的数据库,为了保障同步的可靠性,还通过各检索节点订阅特征管理数据库的写操作事务的方式,将操作事务信息作为兜底策略,以保障特征管理数据库和特征检索数据库之间同步的可靠性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及检索技术领域,提供一种检索数据同步方法、装置、设备及计算机存储介质。
背景技术
人工智能(Artificial Intelligence,AI)技术在内容理解领域有着广泛应用,例如:在图片内容审核场景中AI技术起到了很大的作用。图片内容审核是指针对上传的图片,审核是否包含违法违规内容,最为常见的图片内容审核方式是针对违法违规内容的图像进行特征提取,并将特征存储至数据库中,进而基于上传的图片提取特征在数据库进行特征检索。
一套典型的检索***包括图片输入、软件开发工具包(Software DevelopmentKit,SDK)处理及检索服务三个部分,SDK处理主要包括图片尺寸控制、编码、特征提取等,检索服务是整个检索***的核心,主要用于管理特征数据库,例如实现特征的增加、删除或者修改等操作,以及还用于特征检索,即基于特征数据库中的特征进行特征匹配输出检索结果。
可见,目前的整个检索***复用一个检索库,高并发检索请求时检索压力较大耗时增加,一旦检索库出现网络或磁盘故障将直接导致检索***不可用,降低了内容审核检索的效率以及可用性。
发明内容
本申请实施例提供一种检索数据同步方法、装置、设备及计算机存储介质,用于提升检索***的可靠性,从而提升检索效率以及可用性。
一方面,提供一种检索数据同步方法,应用于检索***包括的特征管理集群中,所述检索***还包括由至少一个检索节点组成的特征检索集群;所述方法包括:
响应于客户端发送的写操作请求,对关联的特征管理数据库进行相应的写操作,并在所述特征管理数据库的操作日志中,记录相应的操作事务信息;
分别向所述至少一个检索节点发起写扩散请求,所述写扩散请求携带所述写操作对应的特征信息,使得各检索节点基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
当各检索节点订阅所述特征管理数据库的写操作事务时,分别将所述操作事务信息发送给各检索节点,使得各检索节点执行所述同步更新未成功时,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
一方面,提供一种检索数据同步方法,应用于检索***包括的特征检索集群包括的任一检索节点中,所述检索***还包括特征管理集群;所述方法包括:
接收所述特征管理集群发送的写扩散请求,所述写扩散请求携带所述特征管理集群对关联的特征管理数据库的写操作所对应的特征信息,所述写操作是客户端发送的写操作请求所触发的;
基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
接收所述特征管理集群发送的操作事务信息,所述操作事务信息记录了所述写操作所对应的事务信息;
若确定所述同步更新未成功,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
一方面,提供一种检索数据同步装置,应用于检索***包括的特征管理集群中,所述检索***还包括由至少一个检索节点组成的特征检索集群;所述装置包括:
特征管理单元,用于响应于客户端发送的写操作请求,对关联的特征管理数据库进行相应的写操作,并在所述特征管理数据库的操作日志中,记录相应的操作事务信息;
写扩散单元,用于分别向所述至少一个检索节点发起写扩散请求,所述写扩散请求携带所述写操作对应的特征信息,使得各检索节点基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
事务推送单元,用于当各检索节点订阅所述特征管理数据库的写操作事务时,分别将所述操作事务信息发送给各检索节点,使得各检索节点执行所述同步更新未成功时,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
可选的,所述装置还包括配置单元,用于:
配置所述管理数据库对应的事务发件箱,所述事务发件箱包括消息中继模块和事务消息队列,所述消息中继模块对所述操作日志的更新进行订阅;
接收所述至少一个检索节点发送的订阅请求,所述订阅请求用于请求订阅所述特征管理数据库的写操作事务;
响应于各订阅请求,配置各检索节点对所述事务消息队列的订阅。
可选的,所述事务推送单元,具体用于:
通过所述消息中继模块,从所述操作日志获取所述操作事务信息,并将所述操作事务信息写入所述事务消息队列;
基于各检索节点对所述事务消息队列的订阅,从所述事务消息队列获取所述操作事务信息,并分别将所述操作事务信息发送给各检索节点。
可选的,所述装置还包括初始同步单元,用于:
接收所述特征检索集群中的新增检索节点发送的初始同步请求,所述初始同步请求中携带所述新增检索节点确定的目标同步方式;
若所述目标同步方式为基于操作日志的同步方式,则将所述操作日志发送给所述新增检索节点;
若所述目标同步方式为基于数据库快照的同步方式,则确定自身设备资源状态是否满足该同步方式的资源需求;
若满足,则执行快照持久化操作,以生成所述特征管理数据库的数据库快照,并将所述数据库快照发送给所述新增检索节点;
若不满足,则修改所述目标同步方式为基于操作日志的同步方式,并将所述操作日志发送给所述新增检索节点。
可选的,所述初始同步单元,还用于:
在执行所述快照持久化操作的过程中,若接收到客户端发送的写操作请求,则对接收的写操作请求进行缓存;
在将所述数据库快照发送给所述新增检索节点之后,所述方法还包括:
将缓存的写操作请求发送给所述新增检索节点,使得所述新增检索节点基于接收到的写操作请求进行相应的写操作。
可选的,所述特征管理单元,具体用于:
基于所述写操作请求,确定所述写操作对应的目标操作类型;
若所述目标操作类型为特征删除操作,则从所述特征管理数据库删除所述写操作请求指示的特征;
若所述目标操作类型为特征修改操作,则针对所述写操作请求携带的内容进行特征提取,并以获得的特征更新所述特征管理数据库中相应特征;
若所述目标操作类型为特征增加操作,则针对所述写操作请求携带的内容进行特征提取,并将获得的特征添加至所述特征管理数据库中。
一方面,提供一种检索数据同步装置,应用于检索***包括的特征检索集群包括的任一检索节点中,所述检索***还包括特征管理集群;所述装置包括:
接收单元,用于接收所述特征管理集群发送的写扩散请求,所述写扩散请求携带所述特征管理集群对关联的特征管理数据库的写操作所对应的特征信息,所述写操作是客户端发送的写操作请求所触发的;
写扩散执行单元,用于基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
所述接收单元,还用于接收所述特征管理集群发送的操作事务信息,所述操作事务信息记录了所述写操作所对应的事务信息;
事务性同步单元,用于若确定所述同步更新未成功,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
可选的,所述写扩散执行单元,还用于:
基于同步更新结果,更新所述写操作请求在本检索节点的任务状态;
则所述事务性同步单元,具体用于:
若所述任务状态指示所述写操作请求在本检索节点仍未完成,则确定所述同步更新未成功。
可选的,所述装置还包括初始同步单元,用于:
响应于本检索节点加入所述特征检索集群的指示,向所述特征管理集群发起初始同步请求,所述初始同步请求用于指示所述特征检索集群按照目标同步方式,将所述特征管理数据库中的特征全量同步至所述特征检索数据库;
接收所述特征管理集群返回的操作日志,依次按照所述操作日志记录的各操作事务信息对所述特征检索数据库进行同步操作;或者,
接收所述特征管理集群返回的数据库快照,并载入所述数据库快照至自身的特征检索数据库。
可选的,所述检索***还包括特征提取集群;则所述初始同步单元,具体用于:
确定所述特征提取集群的资源利用率是否大于所述预设阈值;
若确定所述资源利用率大于所述预设阈值,确定目标同步方式为基于数据库快照的同步方式;
若确定所述资源利用率不大于所述预设阈值,确定目标同步方式为基于操作日志的同步方式;
基于确定的目标同步方式,向所述特征检索集群发起所述初始同步请求。
可选的,所述初始同步单元,具体用于:
对所述操作日志进行反序列化处理,获得各操作事务信息对应的写操作请求;
对所述各个写操作请求进行合法性校验,并滤除校验不通过的写操作请求;
对滤除后的各个写操作请求进行去重处理;
执行去重后的各写操作请求指示的写操作,以将所述特征管理数据库中的特征全量同步至所述特征检索数据库。
一方面,提供一种数据检索***,包括特征管理集群和特征检索集群,所述特征检索集群包括至少一个检索节点;
所述特征管理集群响应于客户端发送的写操作请求,对关联的特征管理数据库进行相应的写操作,并在所述特征管理数据库的操作日志中,记录相应的操作事务信息;分别向所述至少一个检索节点发起写扩散请求,使得各检索节点基于写操作请求携带的特征信息,对关联的特征检索数据库进行同步更新;
当各检索节点订阅所述特征管理数据库的写操作事务时,所述特征管理集群还将所述操作事务信息发送给所述至少一个检索节点,使得各检索节点执行所述同步更新未成功时,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
可选的,所述数据检索***还包括接入设备;
所述接入设备接收客户端发送的操作请求,并在判断所述操作请求为写操作请求时,将写操作请求分发至所述特征管理集群,或者,在判断所述操作请求为检索操作请求时,将检索操作请求分发至所述特征检索集群。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法的步骤。
一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种方法的步骤。
本申请实施例提供的检索数据同步方法、装置、设备及计算机存储介质中,通过将检索***分为特征管理集群和特征检索集群,特征管理集群负责数据库相关的写操作,特征检索集群实现检索功能,各自维护自身关联的数据库,从而避免了整个检索***复用一个检索库,高并发检索请求时检索压力较大耗时增加,一旦检索库出现网络或磁盘故障将直接导致检索***不可用的问题,提升了检索***的可靠性,从而提升了检索效率以及可用性。同时,特征管理集群在进行写操作之后,还会通过写扩散的方式将更新的特征同步至特征检索集群,使得特征检索集群同步更新自身的数据库,为了保障同步的可靠性,本申请实施例还通过各检索节点订阅特征管理数据库的写操作事务的方式,使得一旦特征管理数据库写操作执行完成写入操作日志后,则触发将相应的操作事务信息发送给各检索节点,使得在同步更新失败时,将操作事务信息作为兜底策略,再次进行同步操作,以保障特征管理数据库和特征检索数据库之间同步的可靠性,进一步提升检索***的可靠性。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为相关技术中的1:N检索***的架构示意图;
图2为本申请实施例提供的应用场景示意图;
图3为本申请实施例提供的检索***的架构示意图;
图4为本申请实施例提供的读写分离CQRS框架的原理示意图;
图5为本申请实施例提供的初始同步的流程示意图;
图6为本申请实施例提供的检索数据同步方法的流程示意图;
图7为本申请实施例提供的写扩散过程的流程示意图;
图8为本申请实施例提供的写扩散结合事务发件箱机制的原理示意图;
图9为本申请实施例提供的图片内容审核场景为例示出的应用示意图;
图10为本申请实施例提供的一种检索数据同步装置的一种结构示意图;
图11为本申请实施例提供的另一种检索数据同步装置的一种结构示意图;
图12为本申请实施例提供的计算机设备的一种结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
操作日志:用于记录在数据库中所进行的所有操作事务信息,数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。在数据库***中,事务是工作的离散单位,它可以是修改数据库中的一个特征,也可以是增加一个特征等操作。例如,Binlog即是一种二进制的操作日志,用以记录检索服务对检索库修改的操作包括增删改特征等操作。
Kafka:是一种高吞吐量的分布式发布订阅消息队列***。
命令查询的责任分离(Command Query Responsibility Segregation,CQRS)架构:是一种读写分离的架构体系模式,能够使改变模型的状态的命令和模型状态的查询实现分离,本申请实施例提供的检索***则基于CQRS的思想而设立。
写操作:是指针对数据库中的特征进行操作,包括特征增加、特征删除以及特征修改等操作。
写扩散:本申请实施例中写扩散是指在特征管理数据库中的特征进行更新,会将这种更新扩散至其他的特征检索数据库。举例来讲,当在特征管理数据库中增加了新的特征,那么为了保持特征管理数据库以及特征检索数据库之间的同步,以保证检索的正确性,理所应当将增加的特征更新至特征检索数据库中。
事务发件箱:又称为***事件(Application events),是指把基于同一个事务执行正常的更新并将消息***到数据库中一个特定的发件箱表中,使得订阅的收件者能够接收这些消息,获知该事务对应的更新动作。当特征管理数据库进行写操作后,则会将相关的事务写入至操作日志中,这依赖于数据库高保证的事务特性,一旦写入操作日志则说明特征管理集群成功完成所有写操作,从而通过事务性消息将特征管理集群所执行的写操作通知给特征检索集群,有利于在写扩散未能够成功时,通过事务性消息作为兜底策略,保证特征管理数据库和特征检索数据库之间的一致性。
数据库快照:快照是指关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。快照其实是指向保存在存储设备中的数据的引用标记或指针,说穿了就是数据在某一时刻的状况,其工作原理核心就是建立一个指针列表,指示读取数据的地址,提供一个瞬时数据的影像,当数据有改变时,再进行复制。对于数据库而言,数据可能全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证数据不会因为故障而丢失,这种机制称之为持久化机制,快照即为持久化机制之一,言而言之,快照可以理解为对数据库某时刻的数据的全量备份。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及采用人工智能技术提取到的特征的管理以及基于这些特征实现的检索过程。具体而言,可以采用计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等AI技术训练得到的图像、音频、视频或者文本等内容的特征提取模型,来对需要提取的内容进行特征提取后,将特征存储至数据库中,从而后续可以基于这些特征实现相关的检索过程。
以内容审核场景中较为常用的图片内容审核场景为例,图片内容审核场景中主要的功能是判断图片中是否包含违规内容,从而通常数据库中包含了已认定的违规内容所对应的特征,以通过特征匹配的方式判断该图片中是否包含相应的特征,来确定图片是否包含违规内容。通常采用1:N检索***的方式来进行,参见图1所示,为典型的1:N检索***的架构示意图,该架构包括图片输入、软件开发工具包(Software Development Kit,SDK)处理及检索服务三个部分,图片输入部分输入待进行写操作或者检索的图片,SDK处理主要实现图片处理(包括图片尺寸控制)、图像框检测、编码、提特征等功能;检索服务是整个检索***的核心,主要包括特征管理如增加、删除、修改特征信息等写类操作,此外还包括特征检索主要实现特征匹配输出检索分。
可以看到,整个检索***复用一个检索库,在出现高并发的检索请求时检索压力较大耗时增加,且数据库一旦出现网络或磁盘故障将直接导致检索***不可用,影响内容审核的实时性;并且特征管理和特征检索模块置于同一个服务,耦合性大,相互之间影响大,不利于开发,例如,当需要开发或优化特征管理功能时则会影响到特征检索功能,甚至需要暂停整个检索***的功能。从设备资源消耗来看,若后续因检索请求增加而扩容时需要同时考虑特征管理和特征检索两个模块所需资源,存在明显的特征管理模块所需资源无效扩容带来的资源浪费问题。
在实际应用过程中,发现了在诸如内容审核等类似的场景中,写操作通常在审核***中属于低频操作,通常只有在检索***空闲时会统一入库一批特征,而检索请求是审核***的主要功能,属于高频操作。
考虑到检索***“增删少查询多”这一特性,本申请实施例提供一种检索数据同步方法,在该方法中,将增删改等写操作单独部署一套特征管理集群,而针对检索等读操作单独部署一套特征检索集群,为保证检索高可用彼此不影响,特征管理集群和特征检索集群之间物理隔离,通过同步机制保证数据一致性。
进而,提出了相应的同步机制,同步机制具体可以包括初始同步和动态同步。
初始同步是检索库同步机制中基础模块,基于检索节点的资源利用状态,可以动态选择基于操作日志的同步方式,或者基于数据库快照同步的同步方式,初始同步一般是在检索节点初次接入特征检索集群时使用。
动态同步是检索库同步机制中的核心模块,主要包括写扩散和事务发件箱两种策略,写扩散主要是在特征管理集群完成增删改等写操作请求后引入的实时更新策略,以及实时更新特征检索集群包括的各个检索节点关联的特征检索数据库的状态。即在特征管理集群的写操作更新特征管理数据库成功后,对多个检索节点发起多写操作,为了保证写操作不被阻塞保证实时性,写扩散采用异步方式实现,故而可能存在失败的可能性,事务发件箱则是针对写扩散请求更新检索节点失败时引入的兜底策略,通过订阅特征管理集群的数据库操作日志,生成操作事务信息写入消息队列,特征检索集群中各检索节点通过订阅消息队列获取操作事务信息,从而保证特征管理数据和特征检索数据库之间的一致性。
下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
本申请可以适用于图片审核高可用写少读多检索场景,引入此方案后将为公有云图片审核***实现更实时、高可用、高并发的检索信息,以便根据及时检索出的审核结果制定更为合理安全的运营策略。
本申请实施例提供的方案可以应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。例如,适用于大多数写少读多的检索场景中,例如人脸、同图等图片内容审核场景、公有云图片内容审核场景、声音特征检索场景、指纹特征检索场景等,在此不再一一例举。如图2所示,为本申请实施例提供的一种应用场景示意图,在该场景中,可以包括终端设备101、接入设备102、特征管理集群103、特征检索集群104。
终端设备101例如可以为手机、平板电脑(PAD)、笔记本电脑、台式电脑、智能可穿戴设备、智能语音交互设备、智能家电、车载终端或者飞行器等。终端设备101可以安装有发起写操作请求或者特征检索请求的目标应用,例如可以为是视频应用、即时通讯应用、图片应用、音乐应用或者浏览器等,本申请实施例涉及的应用可以是软件客户端,也可以是网页、小程序等客户端,服务器则是与软件或是网页、小程序等相对应的后台服务器,不限制客户端的具体类型。
接入设备102用于实现对接收到的任务请求的参数校验、任务分发等功能,即将写操作请求分发到特征管理集群,将特征检索请求分发到特征检索集群。
特征管理集群103用于实现特征增删改等写类操作,特征检索集群104用于实现特征匹配计算进而返回检索分和命中结果,特征检索集群104包括多个检索节点,在接入设备分发特征检索请求时通过负载均衡将请求路由到不同的检索节点,从而保证并支持检索能力的水平扩展,保证海量检索请求的高可用高并发能力。
以公有云图片内容审核场景为例,则特征管理数据库和特征检索数据库主要用于存储违规内容的图像特征,例如可以包含违规人脸、物品等相应的图像特征,当需要对数据库进行增删改等写操作请求时,则接入设备102可以获取到相应的写操作请求,并分发至特征管理集群103,特征管理集群103可以进行相应的写操作,更新特征管理数据库,同时将更新内容同步至特征检索集群104的各个检索节点,以更新这些检索节点各自的特征检索数据库。
在公有云图片内容审核场景中,相较于特征检索集群104的检索操作,特征管理集群103的特征管理操作属于低频操作,且主要是增加特征,所需资源不大,而检索操作的检索每秒查询率(Queries-per-second,QPS)可达万级,因此对特征检索集群104的高可用、高并发、实时性等有很高的要求,因而可以采用分布式检索节点,通过负载均衡来满足要求。
同样的,在类似的其他场景中,各设备的功能实现类似,因而不再进行赘述。
接入设备102、特征管理集群103以及特征检索集群104均可以通过具备一定计算能力的服务器设备来实现,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、即内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
需要说明的是,为了增加检索***的可靠性,避免设备故障使得检索***不可用,特征管理集群103以及特征检索集群104为不同的物理设备,相互之间物理隔离。
本申请实施例中,检索***还可以包括特征提取集群(在图2中未进行示出),用于实现特征提取的相关功能,其可以提供写操作请求、数据库同步以及特征检索请求等过程触发的特征提取功能。
特征管理集群103以及特征检索集群104中的各检索节点均可以包括一个或多个处理器、存储器以及交互I/O接口等,以及还可以配置各自的数据库,用于存储提取的特征。其中,各设备的存储器中可以存储本申请实施例提供的检索数据同步方法的程序指令,这些程序指令被相应的处理器执行时能够用以实现本申请实施例提供的检索数据同步方法的步骤,以实现特征管理数据库以及特征检索数据库之间的数据同步。
上述的各设备之间可以通过一个或者多个网络进行直接或间接的通信连接。该网络可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(Wireless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。
需要说明的是,在可能的情况下,上述的特征管理集群103和接入设备102可以通过相同的设备来实现,同样的,特征提取集群的功能也可以通过特征管理集群103或者接入设备102来实现,对此本申请实施例并不进行限制。
如图3所示,为本申请实施例提供的一种检索***的架构示意图,在该检索***中,包括检索接入模块、特征管理集群和特征检索集群三部分。
(1)检索接入模块用于实现对接收到的任务请求的参数校验、任务分发等功能,即将写操作请求分发到特征管理集群,将特征检索请求分发到特征检索集群。
(2)特征管理集群包括特征管理、库管理、写扩散管理和初始同步等功能,特征管理为针对写操作请求实现对特征管理数据库实现相关的写操作过程,库管理为针对特征管理数据库实现相关的管理功能,写扩散管理和初始同步均为保持特征管理数据库与特征检索数据库之间的同步所对应的功能。
(3)特征检索集群包括特征检索和同步管理等功能,特征检索是指针对特征检索请求执行相应的检索过程,即完成特征匹配计算进而返回检索分和命中结果,同步管理则为了保持特征管理数据库与特征检索数据库之间的同步所执行的同步过程。
在一种可能的实施方式中,该检索***可以为基于读写分离CQRS框架的分布式检索***,参见图4所示,为读写分离CQRS框架的原理示意图。
读写分离CQRS是一种命令查询的责任分离的体系模式,能够使改变模型状态的命令和模型状态的查询实现分离,因而在本申请实施例中,将特征管理和特征检索两部分通过不同的物理设备来实现,命令端也就是特征管理集群主要关注优化写入特征数据,在接收到写操作请求时,通过特征管理集群的特征管理服务来实现写操作过程,更新特征管理数据库;查询端也就是特征检索集群主要关注优化读取特征数据,即在接收到特征检索请求时,通过相应的检索节点的特征检索服务来实现检索过程,返回检索结果。命令端和查询端相互之间独立部署,通过物理方式进行隔离,并通过数据同步机制来保证检索数据实时性和最终一致性。
在一种可能的应用场景中,本申请实施例中涉及的相关数据(如特征数据等)以及模型参数可以采用云存储(cloud storage)技术进行存储。云存储是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(或称存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
在一种可能的应用场景中,为了便于降低检索的通信时延,可以在各个地区部署检索节点,或为了负载均衡,可以由不同的检索节点分别去服务不同地区的终端设备,例如,终端设备位于地点a,则与服务地点a的检索节点建立通信连接,终端设备位于地点b,则与服务地点b的检索节点建立通信连接,多个检索节点以及特征管理集群可以组成一数据共享***,通过区块链实现数据的共享。
对于数据共享***中的每个检索节点或者特征管理集群,均具有与该检索节点或者特征管理集群对应的节点标识,数据共享***中的每个检索节点或者特征管理集群均可以存储有数据共享***中其他检索节点或者特征管理集群的节点标识,以便后续根据其他检索节点的节点标识,将生成的区块广播至数据共享***中的其他检索节点,例如,在发生写操作请求时,特征管理集群可以以此方式进行特征的同步。
当然,本申请实施例提供的方法并不限用于图2所示的应用场景或者图3的架构中,还可以用于其他可能的应用场景,本申请实施例并不进行限制。对于图2或图3所示的应用场景的各个设备或者模块所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
基于上述的读写分离CQRS架构,将增删改等操作部署在特征管理集群,检索等操作部署在特征检索集群,两个集群物理隔离、机器异构,避免设备故障带来的整个检索***的数据存储不可靠,使得整个检索***不可用的问题,可以保证资源有限时检索高并发的要求,并且当检索请求增加时只需水平扩展特征检索集群即可而无需扩展特征管理集群避免特征管理集群无效扩容。特征管理集群与特征检索集群之间通过同步过程实现特征管理数据库和特征检索数据库的同步。基于此,本申请实施例针对上述的检索***提供了一种检索数据同步方法,用于实现特征管理数据库和特征检索数据库之间的同步。其中,特征管理数据库和特征检索数据库之间的同步包括检索节点初始加入时的初始同步过程,以及检索节点使用过程中的动态同步过程,下面分别进行介绍。
参见图5所示,为本申请实施例提供的初始同步的流程示意图。初始同步是指在检索节点初始加入特征检索集群中时,其关联的特征检索数据库未包含任何特征,那么此时需要将特征管理数据库中的全部特征同步至该特征检索数据库中,因而是一种特征数据的全量同步过程,其包含如下步骤:
步骤501:新增检索节点加入特征检索集群,启动初始同步流程。
当特征检索集群的检索需求增加时,可以方便的增加检索节点,来提升整个检索***对于检索请求的高并发量,当新增检索节点成功加入特征检索集群时,则需要进行初始同步过程。
当新增检索节点成功加入特征检索集群时,则可以指示新增检索节点已成功加入特征检索集群,进而响应于本检索节点加入特征检索集群的指示,向特征管理集群发起初始同步请求。
在一种可能的实施方式中,特征检索集群可以存在管理模块,当需要新增检索节点时,通过向管理模块发起申请,当新增检索节点相关的部署工作完成时,则管理模块可以向新增检索节点发送成功加入特征检索集群的指示。
在一种可能的实施方式中,还可以在相关人员的辅助下,完成新增检索节点的加入工作,当新增检索节点相关的部署工作完成时,则可以发起新增检索节点的初始同步过程。
例如,新增检索节点可以提供一显示界面,相关人员可以通过该显示界面进行操作,发起初始同步过程,当新增检索节点接收到相应的操作时,则即为接收到本检索节点加入特征检索集群的指示。
或者,相关人员还可以在检索***的管理页面上进行操作,来发起初始同步过程,当新增检索节点接收到以此触发的初始同步流程时,同样即为接收到本检索节点加入特征检索集群的指示。
步骤502:新增检索节点确定目标同步方式。
本申请实施例中,同步方式可以如下几种:
(1)基于操作日志的同步方式
其中,操作日志记载了对于特征管理数据库的全部操作,从而按照操作日志中的操作事务信息,执行同样的操作就可以得到与特征管理数据库相同的操作结果。
举例来讲,当特征管理数据库中新增了10个特征,那么则会在操作日志中记录该新增相应的操作事务信息,同样的,新增检索节点在获取操作日志知晓了该操作事务信息后,可以再次执行同样的写操作,以在自身关联的特征检索数据中新增10个特征。
但是,由于写操作的过程中可能涉及到特征的提取过程,该过程需要消耗特征提取资源,因而需要确定特征提取资源是否满足上述第一种同步方式的需求。
具体的,检索***还可以包括特征提取集群,负责写操作或者特征检索等过程中涉及到的特征提取操作。那么,由于基于操作日志的同步方式需要重新提取特征,对于特征提取集群的资源要求比较高,因而新增检索节点可以判断特征提取集群的当前状态是否满足上述同步方式的需求。
(2)基于数据库快照的同步方式
当采用这种同步方式时,特征管理集群会对特征管理数据库快照进行持久化,并向新增检索节点发送快照,新增检索节点接收到后进行载入,来完成初始同步。基于数据库快照的同步方式会增大特征管理集群的中央处理器(central processing unit,CPU)的负载,因而对于特征管理设备的设备状态有所要求。
当然,也可以采用其他的同步方式,本申请实施例对此并不进行限制。
在具体的实施方式中,新增检索节点可以获取特征提取集群的资源利用率,并判断特征提取集群的资源利用率是否大于所述预设阈值,若大于预设阈值,则表明特征提取集群当前的负载较高,若采用基于操作日志的同步方式,则会进一步增加特征提取集群的压力,因而为了保障线上检索所需的计算资源,可以采用其他的同步方式,否则,当资源利用率是否不大于预设阈值时,则可以采用基于操作日志的同步方式。
以图片内容审核场景为例,所涉及到的审核对象主要为图片,因而特征提取集群在进行特征提取时,主要消耗的资源时图像处理器(graphics processing unit,GPU)资源,因而,新增检索节点可以获取特征提取集群的GPU利用率,当GPU负载过高时说明线上计算资源紧张,为了不影响线上计算,此时就可以采用其他的同步方式,当GPU负载不高时,则可以采用基于操作日志的同步方式。
需要说明的是,初始同步采用的目标同步方式可以由新增检索节点预先指定,这里具体以此为例,但在实际应用中,也可以由特征管理集群在接收到初始同步请求后,由特征管理集群再进行决定。
步骤503:新增检索节点向特征管理集群发起初始同步请求。
本申请实施例中,初始同步请求用于指示特征检索集群按照上述确定的目标同步方式,将特征管理数据库中的特征全量同步至特征检索数据库。
步骤504:特征管理集群确定初始同步请求指示的目标同步方式。
步骤505:若目标同步方式为基于操作日志的同步方式,则特征管理集群将操作日志发送给新增检索节点。
在特征管理集群接收到初始同步请求后,则获取该初始同步请求中指示目标同步方式,当目标同步方式为基于操作日志的同步方式时,则特征管理集群将关联的特征管理数据库当前的操作日志发送给新增检索节点。
步骤506:新增检索节点依次按照操作日志记录的各操作事务信息对特征检索数据库进行同步操作。
操作日志中记录先后对特征管理数据库所进行的操作事务信息,则新增检索节点依次执行,则可以实现与特征管理数据库的同步。
在一种可能的实施方式中,操作日志可以为binlog,binlog中可以记录先后对特征管理数据库所进行的写操作所对应的写操作请求,为了节省宽带资源,可以按照顺序将binlog中的写操作请求序列转换为二进制形式,则新增检索节点接收到binlog后,则进行反序列化处理,获得各操作事务信息对应的写操作请求,如各写操作请求对应的请求结构体,其中包含所要执行的写操作类型以及写操作对象。对于图片内容审核场景而言,写操作对象具体可以为图片,或者,对于文本内容审核场景而言,写操作对象具体可以为文本。
为了避免无效请求以及重复请求产生的资源浪费,新增检索节点可以对各个写操作请求进行合法性校验,并滤除校验不通过的写操作请求,以及对滤除后的各个写操作请求进行去重处理,在针对最终去重后的各写操作请求,执行相应的写操作,来将各特征写入至关联的特征检索数据库中,以将特征管理数据库中的特征全量同步至特征检索数据库。
具体的,在进行去重处理时,可以针对同一写操作请求的重复请求进行去重,同时还可以针对同一特征的写操作进行合并,减少所要执行的写操作动作。例如,当在数据库中增加一个特征后,再执行了删除操作,相当于该特征既不存在,那么实质上增加凑走和删除操作可以无需进行,对于数据库最终结果是一致的;或者,当在数据库中增加一个特征后,再执行了修改操作,而数据库中仅会保留修改操作修改后的特征,那么只需执行一次修改操作即可。基于此,可以针对数据库中同一标识(identity,ID)的特征的操作进行合并,从而尽可能减少写操作的数据处理量。
在完成初始同步之后,则新增检索节点可以清理操作日志等数据。
步骤507:若目标同步方式为基于数据库快照的同步方式,则特征管理集群确定自身设备资源状态是否满足该同步方式的资源需求。
本申请实施例中,由于基于数据库快照的同步方式可能加大特征管理集群的CPU负载压力以及磁盘压力,为了保证不影响线上请求,因而特征管理集群需要确定自身设备资源状态(例如CPU和磁盘状态)是否满足该同步方式的资源需求,基于确定的结果选择是否修改目标同步方式。
步骤508:若满足,则特征管理集群执行快照持久化操作,以生成特征管理数据库的数据库快照。
步骤509:特征管理集群将数据库快照发送给新增检索节点。
步骤510:新增检索节点载入数据库快照至自身的特征检索数据库。
步骤511:若不满足,则特征管理集群修改目标同步方式为基于操作日志的同步方式。
步骤512:特征管理集群将操作日志发送给新增检索节点。
特征管理集群若确定CPU负载过高,则会将目标同步方式修改为基于操作日志的同步方式,同时,降低特征提取集群的并发数,使得对线上的影响调整到最低;而若确定CPU负载正常,则进行数据库快照流程来完成初始同步。
本申请实施例中,特征管理集群确定自身CPU负载过高时,还可以与新增检索节点进行协商,是否能够延后初始同步的时间,若可以,则可以确定新的初始同步时间,例如可以选择检索***较为空闲的时刻,该时刻可以基于历史数据统计得到。
本申请实施例中,考虑到特征管理数据库的规模较大时,初始同步过程可能需要消耗较长的时间,那么在初始同步的过程中,可能也会接收到新的写操作请求,对于新接收到的写操作请求,当采用基于操作日志的同步方式时,则可以将这些写操作请求对应的操作事务信息继续发送给新增检索节点。
当采用基于数据库快照的同步方式时,则在执行快照持久化操作的过程中,若接收到客户端发送的写操作请求,则可以采用增量同步方式,也就是对接收的写操作请求进行缓存,并将缓存的写操作请求发送给新增检索节点,使得新增检索节点基于接收到的写操作请求进行相应的写操作。
本申请实施例中,初始同步解决了新增检索节点第一次加入特征检索集群时的全量检索数据的同步,当加入特征检索集群并完成初始同步后,则检索节点可以投入使用,而在后续的使用过程中,就需要对特征管理集群和特征检索集群的差额数据进行实时同步并保证检索库的最终一致性。基于此,本申请实施例还引入了动态同步,动态同步主要包括写扩散和事务发件箱策略,其中写扩散保证特征管理集群的大部分写操作请求能够及时更新到特征检索集群,由于事务发件箱机制作为兜底策略,利用数据库高可用事务特性和消息队列的持久化,保证更新的特征能最终写入检索节点检索库。
参见图6所示,为本申请实施例提供的检索数据同步方法的流程示意图。
步骤601:特征管理集群接收客户端发送的写操作请求。
本申请实施例中,在检索***的接入层确定接收到的操作请求为写操作请求时,则会将写操作请求分发给特征管理集群。接入层会对写操作请求进行合法性校验,而特征管理集群对于分发来的写操作请求,还可以进行二次校验,判断写操作请求是否为无效请求,当为无效请求时,则忽略该写操作请求,结束流程,当为有效请求时,才会执行后续的流程来执行写操作。
步骤602:特征管理集群对关联的特征管理数据库进行相应的写操作。
步骤603:特征管理集群在特征管理数据库的操作日志中,记录相应的操作事务信息。
本申请实施例中,依赖于数据库高保证的事务特性,即在特征管理集群成功完成上述写操作请求中指示的所有写操作时,则会将相应的操作事务信息写入操作日志,而若未成功完成,或者未能全部完成,则不会写入操作日志,这也意味着,一旦在操作日志中记录了操作事务信息,则表明特征管理集群必定成功完成上述写操作请求中指示的所有写操作。
具体的,操作事务信息可以包括本次写操作对应的所有事务信息,包括但不限于写操作请求的请求结构体、执行写操作的过程信息等信息。
步骤604:特征管理集群分别向至少一个检索节点发起写扩散请求。
本申请实施例中,写扩散请求发起的条件是客户端向特征管理集群发送写操作请求,且特征管理集群完成特征管理、检索库入库以及服务binlog追加后自动触发的,特征检索集群发送的写扩散请求携带写操作对应的特征信息,对于删除操作而言,特征信息可以为特征ID,对于修改或者增加操作而言,特征信息可以包括修改或者增加的特征数据。
在一种可能的实施方式中,为了避免网络延迟或检索节点处理带来的耗时,本申请实施例中写扩散请求采取的方式为异步写方式,也就是,特征管理集群发起写扩散后,不等待检索节点的处理结果直接返回响应。
步骤605:各检索节点基于特征信息,对关联的特征检索数据库进行同步更新。
本申请实施例中,同步更新是指对特征检索数据库中的特征直接进行的操作,例如增加、修改或者删除。
具体的,当检索节点接收到的写扩散请求携带修改的特征数据时,则检索节点以接收到的特征数据替换相应的原有特征数据;当检索节点接收到的写扩散请求携带新增的特征数据时,则检索节点将接收到的特征数据加入特征管理数据库中;当检索节点接收到的写扩散请求携带删除的特征ID时,则检索节点查找并删除该ID的特征数据。
步骤606:特征管理集群分别将操作事务信息发送给各检索节点。
本申请实施例中,考虑到由于各种因素的影响,写扩散可能存在失败的情况,为避免特征管理数据库和特征检索数据库出现不一致的情况,需要采用更为可靠的同步方式作为兜底策略。
因此,考虑到数据库高保证的事务特性,可以通过各检索节点订阅特征管理数据库的写操作事务的方式,来获取特征管理数据库所执行的写操作。也就是说,当各检索节点订阅特征管理数据库的写操作事务时,则一旦特征管理数据库的操作日志发生更新,则特征管理集群则会将操作事务信息发送给各检索节点。
在一种可能的实施方式中,可以采用事务发件箱机制来实现上述过程,参见图6所示,可以通过订阅特征管理数据库的操作日志,使得当操作日志更新时,则将相应的操作事务信息写入事务消息队列,并且,各检索节点也对该事务消息队列主题进行订阅,使得事务消息队列更新时,则会将操作事务信息发送给各检索节点。
步骤607:检索节点判断同步更新是否成功。
若步骤607的结果为是,则忽略操作事务信息不执行。
步骤608:若步骤607的结果为否,则检索节点基于操作事务信息,对特征检索数据库进行同步操作。
本申请实施例中,由于操作事务信息与上述写扩散请求实质上是同一次更新,为则可以采用数据库的幂等性特性,来避免重复执行更新。
在一种可能的实施方式中,由于写操作请求,在特征管理集群或者特征检索集群,都需要对关联的数据库进行更新,因而针对同一写操作请求,可以在特征管理集群以及各个检索节点维护其相应的任务状态。例如,在特征管理集群中,当该写操作请求对应的写操作过程已完成时,则对应的任务状态更新为已完成,否则相应的任务状态更新为未完成;同样的,在各个检索节点中,也可以在写操作请求对应的写操作过程已完成时,则对应的任务状态更新为已完成,否则相应的任务状态更新为未完成。
那么,在检索节点基于写扩散请求执行同步更新后,则可以基于同步更新结果,更新写操作请求在本检索节点的任务状态,即当同步更新成功时,则更新任务状态为已完成,若同步更新失败,则更新任务状态为未完成。那么,当接收到操作事务信息时,则检索节点基于任务状态确定上述同步更新是否成功,即任务状态指示写操作请求在本检索节点仍未完成,则确定同步更新未成功,那么则可以基于操作事务信息,对特征检索数据库进行同步操作,也就是基于操作事务信息中的特征来更新特征检索数据库,或者基于操作事务信息中写操作请求的请求结构体,重新提取特征并更新特征检索数据库。
在一种可能的实施方式中,可以基于操作事务信息进行数据库更新时,确认是否进行过相同的更新,即操作对象、操作内容以及写操作请求等均一致,若一致,则表明同步更新已完成,则无需进行重复更新;若未进行过同样的更新,则对特征检索数据库执行更新。
本申请实施例中,参见图7所示,为写扩散过程的流程示意图。
步骤701:特征管理集群接收写操作请求。
步骤702:特征管理集群基于写操作请求,确定写操作对应的目标操作类型,以根据操作类型执行相应的处理流程。
步骤703:若目标操作类型为特征删除操作,则特征管理集群从特征管理数据库删除写操作请求指示的特征。
例如,写操作请求指示删除ID为“XXX”的特征,则特征管理集群依据ID查找该特征并进行删除。
步骤704:若目标操作类型为特征修改操作或者特征增加操作,则特征管理集群针对写操作请求携带的内容进行特征提取。其中,特征管理集群可以请求特征提取集群对携带的内容进行特征提取。
步骤705:特征管理集群确定特征提取是否成功。
步骤706:若成功,则特征管理集群再次判断操作类型。若失败,则流程结束。
步骤707:针对特征增加操作,特征管理集群构建特征数据唯一ID。
步骤708:特征管理集群将提取的特征进行入库。
例如,以图片内容审核场景为例,写操作请求指示将携带的图像对应的特征加入特征管理数据库,则调用特征提取集群,对写操作请求携带的图像进行特征提取,并为该特征分配ID,以在特征管理数据库中新增相应的特征。
步骤709:针对特征修改操作,特征管理集群以获得的特征更新特征管理数据库中相应特征。
例如,以图片内容审核场景为例,写操作请求指示将ID为“XXX”的特征修改为携带的图像对应的特征,则调用特征提取集群,对写操作请求携带的图像进行特征提取,并替换特征管理数据库中ID为“XXX”的原有特征。
步骤710:特征管理集群对写操作请求序列化写入操作日志。
步骤711:特征管理集群确定写入是否失败。
步骤712:若成功,则特征管理集群异步向特征检索集群的各检索节点发送写扩散请求,使得各检索节点接收写扩散请求并执行同步更新。
步骤713:若失败,则特征管理集群删除特征管理数据库中的特征。即若写入binlog失败,则表明本次写操作失败,需要将特征历数据库回退至操作之前的状态。其中,特征管理集群可采用懒删除的方式进行特征管理数据库中的特征的删除。
本申请实施例中,参见图8所示,为本申请实施例提供的写扩散结合事务发件箱机制的原理示意图。
本申请实施例中,参见图8所示,当存在写操作时,特征管理集群的特征管理服务会对关联的特征管理数据库进行相应的持久化更新,当更新成功时,通过写扩散的方式对特征检索集群的各个检索节点进行同步更新。但写扩散过程是异步操作,即发送写扩散请求后,特征管理集群不会等待各检索节点返回结果,则会向前端返回本次写操作的结果,因而不能保证各检索节点均写成功,参见图8所示,则可能存在某个检索节点的特征更新失败。为了保证数据一致性,故引入了事务发件箱机制作为兜底策略,基于数据库高可用的事务特性和消息队列对消息的持久化能够很好的保证写请求最终可以成功写到检索节点数据库。
本申请实施例中,在动态同步过程执行之前,需要配置特征管理数据库对应的事务发件箱,参见图8所示,事务发件箱主要包括消息中继(message relay)模块和事务消息队列(message queue)两个模块。其中,消息中继模块负责订阅特征管理集群数据库的操作日志,例如binlog,即对操作日志的更新进行订阅,这样,当特征管理集群成功完成提特征和写入数据库等连续操作后会往操作日志写入一条操作事务信息,订阅此信息的消息中继模块则会获取该消息并缓存,然后写入消息队列的特定主题内。并且,特征管理集群还接收各个检索节点发送的订阅请求,订阅请求用于请求订阅特征管理数据库的写操作事务,并响应于各订阅请求,配置各检索节点对事务消息队列的订阅。也就是说,各检索节点也会订阅该消息队列的主题,一旦消息队列有更新就会获取相应的操作事务信息,并更新到节点自身的数据库中,进而完成数据一致性。
进而,可以通过消息中继模块,从操作日志获取操作事务信息,并将操作事务信息写入事务消息队列,并且基于各检索节点对事务消息队列的订阅,从事务消息队列获取操作事务信息,并分别将操作事务信息发送给各检索节点。其中,消息中继模块订阅数据库的操作日志主要依赖数据库高保证的事务特性,一旦写入操作日志说明特征管理集群意成功完成当前写操作请求的所有写操作,消息队列主要完成***解耦和信息持久化避免信息丢失,各检索节点从消息队列接收到操作事务信息后,需保证检索节点更新按照特征管理集群消息的顺序一致,从而避免乱序,同时基于更新幂等性机制俩避免数据重复。
参见图9所示,为以图片内容审核场景为例示出的应用示意图。其中,当特征检索集群加入了新的检索节点时,则通过本申请实施例提供的初始同步的方式将特征管理数据库中的特征同步至该检索节点关联的特征检索数据库中。图片内容审核平台的管理员客户端基于上传的已认定的违规内容对应的图片,发起写操作请求,进而特征管理集群对该图片进行特征提取,并写入至特征管理数据库中,同时,在入库成功后,还通过本申请实施例提供的写扩散和事务发件箱机制对特征检索集群的各个检索节点进行同步更新。进而,当使用者客户端上传图片,需要对图片内容进行内容审核时,例如审核是否包含违规违法物品、人物或者人脸等,则特征检索集群可以接收到相应的特征检索请求,并调用特征提取集群提取待审核图片的特征,并在特征检索数据库中进行检索,输出检索结果,以帮助判定是否审核通过,并返回结果给使用者客户端。
综上所述,本申请实施例提出了一种联合写扩散和事务发件箱机制的分布式检索数据同步方案,该方案可以应用于基于CV技术的公有云图片内容审核场景,实现更实时、高可用、高并发的检索信息,以便根据及时检索出的审核结果制定更为合理安全的运营策略,当然也可以应用至其他类似的检索场景中,例如声音、指纹等其他类型的特征检索服务,该分布式检索***数据同步方案适用于其他硬件平台包括PC机、服务器等,可以大大提高审核检索***的可用性,而且通过引入读写分离CQRS框架,大大保证了***高并发情况下的稳定运行,并采用了联合实时写扩散和事务发件箱机制的动态同步机制,实时写扩散更新成功率99%以上,同步延迟低,在尽量保证检索实时性的同时,事务发件箱作为写扩散失败的兜底,基于数据库高可靠的事务保证和消息队列持久化可实现失败数据的最终更新从而达到两个集群检索库的最终一致性。
请参见图10,基于同一发明构思,本申请实施例还提供了一种检索数据同步装置100,应用于检索***包括的特征管理集群中,所述检索***还包括由至少一个检索节点组成的特征检索集群;该装置包括:
特征管理单元1001,用于响应于客户端发送的写操作请求,对关联的特征管理数据库进行相应的写操作,并在特征管理数据库的操作日志中,记录相应的操作事务信息;
写扩散单元1002,用于分别向至少一个检索节点发起写扩散请求,写扩散请求携带写操作对应的特征信息,使得各检索节点基于特征信息,对关联的特征检索数据库进行同步更新;以及,
事务推送单元1003,用于当各检索节点订阅特征管理数据库的写操作事务时,分别将操作事务信息发送给各检索节点,使得各检索节点执行同步更新未成功时,基于操作事务信息,对特征检索数据库进行同步操作。
可选的,该装置还包括配置单元1004,用于:
配置管理数据库对应的事务发件箱,事务发件箱包括消息中继模块和事务消息队列,消息中继模块对操作日志的更新进行订阅;
接收至少一个检索节点发送的订阅请求,订阅请求用于请求订阅特征管理数据库的写操作事务;
响应于各订阅请求,配置各检索节点对事务消息队列的订阅。
可选的,事务推送单元1003,具体用于:
通过消息中继模块,从操作日志获取操作事务信息,并将操作事务信息写入事务消息队列;
基于各检索节点对事务消息队列的订阅,从事务消息队列获取操作事务信息,并分别将操作事务信息发送给各检索节点。
可选的,该装置还包括初始同步单元1005,用于:
接收特征检索集群中的新增检索节点发送的初始同步请求,初始同步请求中携带新增检索节点确定的目标同步方式;
若目标同步方式为基于操作日志的同步方式,则将操作日志发送给新增检索节点;
若目标同步方式为基于数据库快照的同步方式,则确定自身设备资源状态是否满足该同步方式的资源需求;
若满足,则执行快照持久化操作,以生成特征管理数据库的数据库快照,并将数据库快照发送给新增检索节点;
若不满足,则修改目标同步方式为基于操作日志的同步方式,并将操作日志发送给新增检索节点。
可选的,初始同步单元1005,还用于:
在执行快照持久化操作的过程中,若接收到客户端发送的写操作请求,则对接收的写操作请求进行缓存;
在将数据库快照发送给新增检索节点之后,方法还包括:
将缓存的写操作请求发送给新增检索节点,使得新增检索节点基于接收到的写操作请求进行相应的写操作。
可选的,特征管理单元1001,具体用于:
基于写操作请求,确定写操作对应的目标操作类型;
若目标操作类型为特征删除操作,则从特征管理数据库删除写操作请求指示的特征;
若目标操作类型为特征修改操作,则针对写操作请求携带的内容进行特征提取,并以获得的特征更新特征管理数据库中相应特征;
若目标操作类型为特征增加操作,则针对写操作请求携带的内容进行特征提取,并将获得的特征添加至特征管理数据库中。
该装置可以用于执行本申请各实施例中特征管理集群所执行的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考前述实施例的描述,不多赘述。
请参见图11,基于同一发明构思,本申请实施例还提供了一种检索数据同步装置110,应用于检索***包括的特征检索集群包括的任一检索节点中,检索***还包括特征管理集群;该装置包括:
接收单元1101,用于接收特征管理集群发送的写扩散请求,写扩散请求携带特征管理集群对关联的特征管理数据库的写操作所对应的特征信息,写操作是客户端发送的写操作请求所触发的;
写扩散执行单元1102,用于基于特征信息,对关联的特征检索数据库进行同步更新;以及,
接收单元1101,还用于接收特征管理集群发送的操作事务信息,操作事务信息记录了写操作所对应的事务信息;
事务性同步单元1103,用于若确定同步更新未成功,基于操作事务信息,对特征检索数据库进行同步操作。
可选的,写扩散执行单元1102,还用于:
基于同步更新结果,更新写操作请求在本检索节点的任务状态;
则事务性同步单元1103,具体用于:
若任务状态指示写操作请求在本检索节点仍未完成,则确定同步更新未成功。
可选的,该装置还包括初始同步单元1104,用于:
响应于本检索节点加入特征检索集群的指示,向特征管理集群发起初始同步请求,初始同步请求用于指示特征检索集群按照目标同步方式,将特征管理数据库中的特征全量同步至特征检索数据库;
接收特征管理集群返回的操作日志,依次按照操作日志记录的各操作事务信息对特征检索数据库进行同步操作;或者,
接收特征管理集群返回的数据库快照,并载入数据库快照至自身的特征检索数据库。
可选的,上述检索***还包括特征提取集群;则初始同步单元1104,具体用于:
确定特征提取集群的资源利用率是否大于预设阈值;
若确定资源利用率大于预设阈值,确定目标同步方式为基于数据库快照的同步方式;
若确定资源利用率不大于预设阈值,确定目标同步方式为基于操作日志的同步方式;
基于确定的目标同步方式,向特征检索集群发起初始同步请求。
可选的,初始同步单元1104,具体用于:
对操作日志进行反序列化处理,获得各操作事务信息对应的写操作请求;
对各个写操作请求进行合法性校验,并滤除校验不通过的写操作请求;
对滤除后的各个写操作请求进行去重处理;
执行去重后的各写操作请求指示的写操作,以将特征管理数据库中的特征全量同步至特征检索数据库。
该装置可以用于执行本申请各实施例中特征检索集群中检索节点所执行的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考前述实施例的描述,不多赘述。
请参见图12,基于同一技术构思,本申请实施例还提供了一种计算机设备。在一种实施例中,该计算机设备可以为图1所示的特征管理集群中的节点或特征检索集群的检索节点,该计算机设备如图12所示,包括存储器1201,通讯模块1203以及一个或多个处理器1202。
存储器1201,用于存储处理器1202执行的计算机程序。存储器1201可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1201可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1201也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1201是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1201可以是上述存储器的组合。
处理器1202,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1202,用于调用存储器1201中存储的计算机程序时实现上述检索数据同步方法。
通讯模块1203用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1201、通讯模块1203和处理器1202之间的具体连接介质。本申请实施例在图12中以存储器1201和处理器1202之间通过总线1204连接,总线1204在图12中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1204可以分为地址总线、数据总线、控制总线等。为便于描述,图12中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1201中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的检索数据同步方法。处理器1202用于执行上述各实施例的检索数据同步方法。
在一些可能的实施方式中,本申请提供的检索数据同步方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的检索数据同步方法中的步骤,例如,计算机设备可以执行各实施例的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本申请件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种检索数据同步方法,其特征在于,应用于检索***包括的特征管理集群中,所述检索***还包括由至少一个检索节点组成的特征检索集群;所述方法包括:
响应于客户端发送的写操作请求,对关联的特征管理数据库进行相应的写操作,并在所述特征管理数据库的操作日志中,记录相应的操作事务信息;
分别向所述至少一个检索节点发起写扩散请求,所述写扩散请求携带所述写操作对应的特征信息,使得各检索节点基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
当各检索节点订阅所述特征管理数据库的写操作事务时,分别将所述操作事务信息发送给各检索节点,使得各检索节点执行所述同步更新未成功时,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
2.如权利要求1所述的方法,其特征在于,在所述当各检索节点订阅所述特征管理数据库的写操作事务时,分别将所述操作事务信息发送给各检索节点之前,所述方法还包括:
配置所述管理数据库对应的事务发件箱,所述事务发件箱包括消息中继模块和事务消息队列,所述消息中继模块对所述操作日志的更新进行订阅;
接收所述至少一个检索节点发送的订阅请求,所述订阅请求用于请求订阅所述特征管理数据库的写操作事务;
响应于各订阅请求,配置各检索节点对所述事务消息队列的订阅。
3.如权利要求2所述的方法,其特征在于,所述当各检索节点订阅所述特征管理数据库的写操作事务时,分别将所述操作事务信息发送给各检索节点,包括:
通过所述消息中继模块,从所述操作日志获取所述操作事务信息,并将所述操作事务信息写入所述事务消息队列;
基于各检索节点对所述事务消息队列的订阅,从所述事务消息队列获取所述操作事务信息,并分别将所述操作事务信息发送给各检索节点。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述特征检索集群中的新增检索节点发送的初始同步请求,所述初始同步请求中携带所述新增检索节点确定的目标同步方式;
若所述目标同步方式为基于操作日志的同步方式,则将所述操作日志发送给所述新增检索节点;
若所述目标同步方式为基于数据库快照的同步方式,则确定自身设备资源状态是否满足该同步方式的资源需求;
若满足,则执行快照持久化操作,以生成所述特征管理数据库的数据库快照,并将所述数据库快照发送给所述新增检索节点;
若不满足,则修改所述目标同步方式为基于操作日志的同步方式,并将所述操作日志发送给所述新增检索节点。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
在执行所述快照持久化操作的过程中,若接收到客户端发送的写操作请求,则对接收的写操作请求进行缓存;
在将所述数据库快照发送给所述新增检索节点之后,所述方法还包括:
将缓存的写操作请求发送给所述新增检索节点,使得所述新增检索节点基于接收到的写操作请求进行相应的写操作。
6.如权利要求1~5任一所述的方法,其特征在于,响应于客户端发送的写操作请求,对自身对应的特征管理数据库进行相应的写操作,包括:
基于所述写操作请求,确定所述写操作对应的目标操作类型;
若所述目标操作类型为特征删除操作,则从所述特征管理数据库删除所述写操作请求指示的特征;
若所述目标操作类型为特征修改操作,则针对所述写操作请求携带的内容进行特征提取,并以获得的特征更新所述特征管理数据库中相应特征;
若所述目标操作类型为特征增加操作,则针对所述写操作请求携带的内容进行特征提取,并将获得的特征添加至所述特征管理数据库中。
7.一种检索数据同步方法,其特征在于,应用于检索***包括的特征检索集群包括的任一检索节点中,所述检索***还包括特征管理集群;所述方法包括:
接收所述特征管理集群发送的写扩散请求,所述写扩散请求携带所述特征管理集群对关联的特征管理数据库的写操作所对应的特征信息,所述写操作是客户端发送的写操作请求所触发的;
基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
接收所述特征管理集群发送的操作事务信息,所述操作事务信息记录了所述写操作所对应的事务信息;
若确定所述同步更新未成功,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
8.如权利要求7所述的方法,其特征在于,在基于所述特征信息,对关联的特征检索数据库进行同步更新之后,所述方法还包括:
基于同步更新结果,更新所述写操作请求在本检索节点的任务状态;
则确定所述同步更新未成功,包括:
若所述任务状态指示所述写操作请求在本检索节点仍未完成,则确定所述同步更新未成功。
9.如权利要求7所述的方法,其特征在于,在接收所述特征管理集群发送的写扩散请求之前,所述方法还包括:
响应于本检索节点加入所述特征检索集群的指示,向所述特征管理集群发起初始同步请求,所述初始同步请求用于指示所述特征检索集群按照目标同步方式,将所述特征管理数据库中的特征全量同步至所述特征检索数据库;
接收所述特征管理集群返回的操作日志,依次按照所述操作日志记录的各操作事务信息对所述特征检索数据库进行同步操作;或者,
接收所述特征管理集群返回的数据库快照,并载入所述数据库快照至自身的特征检索数据库。
10.如权利要求9所述的方法,其特征在于,所述检索***还包括特征提取集群;则响应于本检索节点加入所述特征检索集群的指示,向所述特征管理集群发起初始同步请求,包括:
确定所述特征提取集群的资源利用率是否大于所述预设阈值;
若确定所述资源利用率大于所述预设阈值,确定目标同步方式为基于数据库快照的同步方式;
若确定所述资源利用率不大于所述预设阈值,确定目标同步方式为基于操作日志的同步方式;
基于确定的目标同步方式,向所述特征检索集群发起所述初始同步请求。
11.如权利要求9所述的方法,其特征在于,所述接收所述特征管理集群返回的操作日志,依次按照所述操作日志记录的各操作事务信息对所述特征检索数据库进行同步操作,包括:
对所述操作日志进行反序列化处理,获得各操作事务信息对应的写操作请求;
对所述各个写操作请求进行合法性校验,并滤除校验不通过的写操作请求;
对滤除后的各个写操作请求进行去重处理;
执行去重后的各写操作请求指示的写操作,以将所述特征管理数据库中的特征全量同步至所述特征检索数据库。
12.一种检索数据同步装置,其特征在于,应用于检索***包括的特征管理集群中,所述检索***还包括由至少一个检索节点组成的特征检索集群;所述装置包括:
特征管理单元,用于响应于客户端发送的写操作请求,对关联的特征管理数据库进行相应的写操作,并在所述特征管理数据库的操作日志中,记录相应的操作事务信息;
写扩散单元,用于分别向所述至少一个检索节点发起写扩散请求,所述写扩散请求携带所述写操作对应的特征信息,使得各检索节点基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
事务推送单元,用于当各检索节点订阅所述特征管理数据库的写操作事务时,分别将所述操作事务信息发送给各检索节点,使得各检索节点执行所述同步更新未成功时,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
13.一种检索数据同步装置,其特征在于,应用于检索***包括的特征检索集群包括的任一检索节点中,所述检索***还包括特征管理集群;所述装置包括:
接收单元,用于接收所述特征管理集群发送的写扩散请求,所述写扩散请求携带所述特征管理集群对关联的特征管理数据库的写操作所对应的特征信息,所述写操作是客户端发送的写操作请求所触发的;
写扩散执行单元,用于基于所述特征信息,对关联的特征检索数据库进行同步更新;以及,
所述接收单元,还用于接收所述特征管理集群发送的操作事务信息,所述操作事务信息记录了所述写操作所对应的事务信息;
事务性同步单元,用于若确定所述同步更新未成功,基于所述操作事务信息,对所述特征检索数据库进行同步操作。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1~6或者7~11任一项所述方法的步骤。
15.一种计算机存储介质,其上存储有计算机程序指令,其特征在于,
该计算机程序指令被处理器执行时实现权利要求1~6或者7~11任一项所述方法的步骤。
16.一种计算机程序产品,包括计算机程序指令,其特征在于,
该计算机程序指令被处理器执行时实现权利要求1~6或者7~11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210899362.3A CN115238006A (zh) | 2022-07-28 | 2022-07-28 | 检索数据同步方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210899362.3A CN115238006A (zh) | 2022-07-28 | 2022-07-28 | 检索数据同步方法、装置、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115238006A true CN115238006A (zh) | 2022-10-25 |
Family
ID=83676771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210899362.3A Pending CN115238006A (zh) | 2022-07-28 | 2022-07-28 | 检索数据同步方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115238006A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627775A (zh) * | 2023-07-24 | 2023-08-22 | 北京大学 | 有状态的服务器无感知函数的写优化方法和装置 |
-
2022
- 2022-07-28 CN CN202210899362.3A patent/CN115238006A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627775A (zh) * | 2023-07-24 | 2023-08-22 | 北京大学 | 有状态的服务器无感知函数的写优化方法和装置 |
CN116627775B (zh) * | 2023-07-24 | 2023-09-29 | 北京大学 | 有状态的服务器无感知函数的写优化方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102392944B1 (ko) | 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기 | |
US10922303B1 (en) | Early detection of corrupt data partition exports | |
CN113254466B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN105512266A (zh) | 一种实现分布式数据库操作一致性的方法及装置 | |
US20130151889A1 (en) | Disk-free recovery of xa transactions for in-memory data grids | |
CN102158540A (zh) | 分布式数据库实现***及方法 | |
CN109840166A (zh) | 一种跨集群对象存储异步备份方法、装置和*** | |
CN105872016A (zh) | 一种桌面云中虚拟机的运行方法 | |
US20120278429A1 (en) | Cluster system, synchronization controlling method, server, and synchronization controlling program | |
CN113806300B (zh) | 数据存储方法、***、装置、设备及存储介质 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
CN107153643B (zh) | 数据表连接方法及装置 | |
CN103440290A (zh) | 大数据加载***和方法 | |
CN111177159B (zh) | 一种数据处理的***、方法和数据更新设备 | |
CN102867035A (zh) | 一种分布式文件***集群高可用方法和装置 | |
CN110784498A (zh) | 一种个性化数据容灾方法及装置 | |
US20230418811A1 (en) | Transaction processing method and apparatus, computing device, and storage medium | |
CN106569896A (zh) | 一种数据分发及并行处理方法和*** | |
CN113010549A (zh) | 基于异地多活***的数据处理方法、相关设备及存储介质 | |
CN115238006A (zh) | 检索数据同步方法、装置、设备及计算机存储介质 | |
CN111400350A (zh) | 配置数据读取方法、***、电子设备和存储介质 | |
CN113014608A (zh) | 一种流量分发控制方法、装置、电子设备及存储介质 | |
CN112883119B (zh) | 数据同步方法、装置、计算机设备及计算机可读存储介质 | |
CN111414356A (zh) | 数据存储方法、装置、非关系数据库***及存储介质 | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium |
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 |