CN115426375A - 一种数据处理方法和数据处理系统 - Google Patents
一种数据处理方法和数据处理系统 Download PDFInfo
- Publication number
- CN115426375A CN115426375A CN202211044720.9A CN202211044720A CN115426375A CN 115426375 A CN115426375 A CN 115426375A CN 202211044720 A CN202211044720 A CN 202211044720A CN 115426375 A CN115426375 A CN 115426375A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- log
- heartbeat information
- coordination service
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- 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
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机技术领域,具体涉及一种数据处理方法和数据处理系统。其中的数据处理方法用于数据库系统,数据库系统包括作为代理节点、日志存储节点、数据协调服务节点、数据节点和对象存储节点的电子设备,具体方法包括:代理节点接收数据插入请求;代理节点将数据插入请求包装为插入日志,再发送至日志存储节点;数据节点监听日志存储节点获取插入日志;数据协调服务节点监听数据节点获取心跳信息;数据协调服务节点根据心跳信息,确定插入日志达到阈值,并发送封装信号至数据节点;数据节点将插入日志封装成历史数据块,并发送至对象存储节点;对象存储节点保存历史数据块。本申请实施例中的数据处理方法保证了执行副本的数据的一致性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据处理方法和数据处理系统。
背景技术
随着第五代移动通信技术(5th Generation Mobile CommunicationTechnology,5G)及物联网(Internet of Things,IoT)技术的高速发展,各种类型的数据量也随之增长,据统计仅2020一年全球就产生了超过4000Exabytes的新数据,而其中80%以上的数据都是非结构化数据。非结构化数据在数据形态和语义内容等方面都非常丰富,常见类型包括文本、图像、视频,也包括一些技术领域中的数据类型,如病毒代码、社交关系、时空数据、化合物结构、点云等。针对这类非结构化数据,通常可以采用神经网络技术将非结构化数据中的信息编码成向量,再将向量存储在向量数据库中。
现有的向量数据库常常采用分布式系统来存储大规模数据,由于副本数据的一致性无法保证,导致在向量数据库中执行请求获得的结果可能出现误差。同时,用来存储大规模数据的向量数据库的架构也更大,设计更加复杂。
发明内容
本申请实施例提供了一种数据处理方法、数据处理系统、电子设备和存储介质,既可以支持大批量的数据存储,也保证了执行副本的数据的一致性。
第一方面,本申请实施例提供了用于数据库系统,包括作为代理节点、日志存储节点、数据协调服务节点、数据节点和对象存储节点的电子设备,上述方法包括:
上述代理节点接收来自用户的数据插入请求;
上述代理节点将上述数据插入请求包装为插入日志,并将上述插入日志发送至上述日志存储节点;
上述数据节点监听上述日志存储节点获取插入日志;
上述数据协调服务节点监听上述数据节点并从上述数据节点获取心跳信息;其中,上述心跳信息包括上述插入日志的生命时间和上述插入日志中的数据条数;
上述数据协调服务节点根据上述心跳信息,确定上述插入日志达到阈值,并发送封装信号至上述数据节点,上述封装信号为封装上述插入日志的信号;
响应于上述封装信号,上述数据节点将上述插入日志封装成历史数据块,并发送至上述对象存储节点;
上述对象存储节点保存上述历史数据块。
本申请实施例提供的数据处理方法,可以支持大批量的数据存储,同时数据节点的执行数据可以从日志存储节点和对象存储节点获取,保证了执行副本的数据的一致性。
在上述第一方面的一种可能的实现方式中,上述代理节点将上述数据插入请求包装为插入日志,并将上述插入日志发送至上述日志存储节点,包括:
上述代理节点将上述数据插入请求包装为插入日志;
上述代理节点将上述插入日志发送至上述日志存储节点中的消息队列。
在上述第一方面的一种可能的实现方式中,上述数据协调服务节点根据上述心跳信息,确定上述插入日志达到阈值,并发送封装信号至上述数据节点,包括:
上述数据协调服务节点根据上述心跳信息中的上述插入日志的生命时间,确定上述插入日志的生命时间达到作为上述阈值的预设生命周期;
上述数据协调服务节点发送封装信号至上述数据节点。
在上述第一方面的一种可能的实现方式中,上述数据协调服务节点根据上述心跳信息,确定上述插入日志达到阈值,并发送封装信号至上述数据节点,包括:
上述数据协调服务节点根据上述心跳信息中的上述插入日志中的数据条数,确定上述插入日志中的数据条数大于等于作为上述阈值的上述插入日志的预设最大数据条数和预设比例的乘积;
上述数据协调服务节点发送封装信号至上述数据节点。
第二方面,本申请实施例提供了一种数据处理系统,上述数据处理系统包括代理节点、日志存储节点、数据协调服务节点、数据节点和对象存储节点,其中,
上述代理节点,用于接收来自用户的数据插入请求,将上述数据插入请求包装为插入日志并发送上述插入日志至上述日志存储节点;
上述数据协调服务节点,用于监听上述数据节点获取心跳信息并根据心跳信息,确定上述插入日志达到阈值,并发送封装信号至上述数据节点;其中,上述心跳信息包括上述插入日志的生命时间和上述插入日志中的数据条数;
上述数据节点,用于监听上述日志存储节点获取插入日志,并将上述插入日志封装成历史数据块发送至上述对象存储节点;
上述对象存储节点,用于保存上述历史数据块。
在上述第二方面的一种可能的实现方式中,上述代理节点,用于接收来自用户的数据插入请求,将上述数据插入请求包装为插入日志并发送上述插入日志至上述日志存储节点,包括:
上述代理节点,用于接收来自用户的数据插入请求,将上述数据插入请求包装为插入日志并发送上述插入日志至上述日志存储节点中的消息队列。
在上述第二方面的一种可能的实现方式中,上述数据协调服务节点,用于监听上述数据节点获取心跳信息并根据心跳信息,确定上述插入日志达到阈值,并发送封装信号至上述数据节点,包括:
上述数据协调服务节点,用于监听上述数据节点获取心跳信息,根据上述心跳信息中的上述插入日志的生命时间,确定上述插入日志的生命时间达到作为上述阈值的预设生命周期,并发送封装信号至上述数据节点。
在上述第二方面的一种可能的实现方式中,上述数据协调服务节点,用于监听上述数据节点获取心跳信息并根据心跳信息,确定上述插入日志达到阈值,并发送封装信号至上述数据节点,包括:
上述数据协调服务节点,用于监听上述数据节点获取心跳信息,根据上述心跳信息中的上述插入日志中的数据条数,确定上述插入日志中的数据条数大于等于作为上述阈值的上述插入日志的预设最大数据条数和上设比例的乘积,并发送封装信号至上述数据节点。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;一个或多个存储器存储有一个或多个程序,当一个或者多个程序被一个或多个处理器执行时,使得电子设备执行上述第一方面或第二方面的数据处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储介质上存储有指令,指令在计算机上执行时使计算机执行上述第一方面或第二方面的数据处理方法。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面或第二方面的数据处理方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例示出的一种数据处理的应用场景;
图2为本申请实施例示出的一种向量数据库200的系统架构;
图3为本申请实施例示出的一种数据处理方法的示意图;
图4为本申请实施例示出的一种对应于图2所示实施例中各节点之间的交互图;
图5为本申请实施例示出的一种电子设备的硬件结构框图。
具体实施方式
本申请的说明性实施例包括但不限于一种数据处理系统和数据处理方法。以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
在介绍本申请中的方案之前,为了便于理解本申请中的方案,下面对本申请中涉及一些概念、术语进行介绍。
无状态服务:架构层面的无状态服务指在任何时候都不存储数据,可以任意销毁创建,用户数据不会发生丢失,可以任意切换到任何一个副本,不影响用户。无状态服务的高可用在任何情况下都不会丢失,服务都不发生故障,在某些服务发生故障时保证影响最小,并可以快速恢复。
为了便于理解本申请的技术方案,下面首先结合图1介绍本申请技术方案适用的一种数据处理的应用场景。
如图1所示的包括向量数据库的电子设备200可以接收来自用户客户端,即电子设备100的多种数据处理请求,例如数据增加请求、数据删除请求、数据修改请求和数据查询请求等。向量数据库可以接收用户客户端的数据增加请求,并将来自用户客户端的大规模非结构化数据,例如视频数据、音频数据、图像数据等存储下来,同时可以通过接收用户客户端的数据删除请求和数据修改请求对存储的数据进行删除和修改操作,也可以通过接收用户客户客户端的数据查询请求对存储的数据进行查询操作,为客户提供包括以图搜图、快速搜索视频音频、实时视频推荐等服务。
其中,电子设备100可以包括但不限于:平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、台式电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本,以及手机、蜂窝电话、个人数字助理(personal digitalassistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器、智能电视、智能音箱、智能手表等。电子设备200可以是一台服务器多台,也可以是由多台服务器构成的服务器集群。
根据一些实施例,向量数据库如果需要存储大规模的数据,将导致向量数据库的规模也更大。同时,分布式存储的模式不能保证向量数据库中执行副本的数据的一致性,从而由于执行节点获取的副本的数据不一致,使得在向量数据库中执行用户请求获得的结果出现误差。
为此,本申请提供了一种数据处理系统,数据处理系统的架构包括代理节点、日志存储节点、数据协调服务节点、数据节点以及对象存储节点。上述数据处理系统采用通过时间戳定序的日志的形式来存储数据,其中,代理节点用于接收用户发送的请求和将执行请求获得的结果发送给用户,日志存储节点用于采用日志的形式存储代理节点发送的打包成日志的请求,数据协调节点用于向数据节点布置任务,数据节点用于监听日志存储节点以获得日志并根据日志的内容处理数据,再根据数据协调节点布置的任务,将达到阈值的日志以历史数据块的形式存储进对象存储节点。
上述数据处理系统采用在日志存储节点和对象存储节点中存储日志的形式来存储数据;同时将数据节点设置为无状态服务,因此数据节点本身不存储数据,而是通过从日志存储节点和对象存储节点中获取数据的形式处理数据,保证了各个数据节点都可以在同一时刻从日志存储节点和对象存储节点中获取相同的数据。
具体的,下面将结合图2对图1所示的应用场景中涉及的向量数据库的系统架构进行详细说明。为了便于说明,以下将结合具体的示例解释本申请的向量数据库的架构。
图2示出了一种向量数据库的系统架构。参考图2,向量数据库包括代理节点(Proxy)210、日志存储节点(LogBroker)220、数据协调服务节点(DataCoord)230、数据节点(DataNode)240、以及对象存储节点(Object Storage)250。其中,数据节点(DataNode)240为向量数据库的执行节点。
此外,代理节点210为向量数据库的接入层,可以对外提供统一的访问地址并提供服务。在一种可能的实现中,代理节点210用于接收用户客户端发送的数据插入、数据删除、数据修改、数据查询等请求,把请求数据打包成消息并发送至日志存储节点220,并将请求执行获得的结果返回用户客户端。
代理节点210可以包括多个代理子节点,各个代理子节点可以拥有相同的功能,包括分别接收用户客户端发送的请求,分别将请求数据打包成消息并发送至日志存储节点220,以及分别将请求执行获得的结果返回用户客户端。
日志存储节点220中的消息队列221可以接收代理节点210发送的消息,并将消息以日志的形式暂存至消息队列221中。日志可以看成是按照时间顺序排列的,只能增加数据的记录序列,即增量数据块(growing segment),如果表数据可以看成是有界数据,那么日志则可以看成为无界的表数据。日志存储节点220,可以维护“日志序列”,记录向量数据库中所有的关于数据增删改的操作。
消息队列221中可以包括多个不同类型的队列,例如对应于插入消息的插入队列,对应于删除消息的删除队列,对应于修改消息的修改队列,对应于查询队列的查询队列等等。
数据协调服务节点230可以用于向数据节点240等执行节点分配任务,这些任务包括集群拓扑节点管理、数据管理等。例如,数据协调服务节点可以用于负责管理数据节点240的拓扑结构,维护数据的元信息等。
数据协调服务节点230可以包括多个数据协调子服务,这些数据协调子服务可以拥有相同的功能,包括分别向数据节点240分配任务等。
数据节点240可以通过订阅日志存储节点220中的消息队列221获取增量数据块,处理数据请求,并将增量数据块打包存储在对象存储节点250上,实现日志的持久化存储。
在一种可能的实现中,数据节点240用于从日志存储节点220接收消息日志,并且将消息拆分后得到的数据保存至对象存储节点250中。在一种可能的实现中,数据节点240用于在增量数据块中的数据量达到阈值比如512MB,或者达到预设时间,比如10分钟,将增量数据块打包成历史数据块(sealed segment),存储在对象存储节点250中。
需要说明的是,上述数据量的阈值的数值或者预设时间只是一种示例,在实际应用中,数据量的阈值或者预设时间的具体数值可以根据需要设置,本申请对此不做限定。
数据节点240可以包括多个数据子节点,这些数据子节点可以拥有相同的功能,并被设置为无状态服务,即数据子节点只用于执行消息日志对应的任务,但是不用于存储任何数据。
通过采用消息队列存储增量数据块和采用对象存储节点250存储历史数据块,且不采用数据节点240存储任何数据,简化了数据节点240处理任务的复杂度,不同于现有向量数据库中采用主从数据节点的方式来处理任务,无状态服务的数据节点240的设置,使得各个数据节点240可以从消息队列和对象存储节点250中获取相同的数据,保证了分布式设计中各个数据节点240可以获取的数据的一致性。
对象存储节点250可以用于实现对数据的持久化存储,例如对用户通过客户端存储的标量/向量数据、由日志存储节点220生成的日志进行持久化存储。在一种可能的实现中,对象存储节点250用于存储用户通过客户端存储的图形、视频、音频等非结构化数据对应的特征向量。对象存储节点250也可以包括多个对象存储子节点,各个对象存储子节点还可以存储从其他对象存储子节点中获取的数据。
可以理解的是,图2示意的结构并不构成对本申请技术方案适用的向量数据库平台的具体限定,在本申请另一些实施例中,向量数据库平台可以包括比图示更多或更少的节点,或者组合某些节点,或者拆分某些节点,或者不同的节点布置。图2所示的节点可以以硬件,软件或软件和硬件的组合实现。各个节点可以是由单独的电子设备来实现,也可以是以若干个节点在同一电子设备中以不同的功能模块的形式存在。
图2所示的向量数据库中的各个节点及其子节点可以根据实际的需要进行扩容和缩容,因此,上述向量数据库可以支持大批量的数据存储,例如可以根据需要,增加日志存储节点中的消息队列,以存储更多日志形式的数据;也可以增加对象存储节点中的子节点,以存储更多的历史数据块;也可以增加更多的数据节点,以根据消息队列中的消息处理更多的数据。同时基于数据节点的无状态设置,采用消息队列和对象存储节点存储数据,每一个数据子节点都可以在同一个时刻从消息队列和对象存储节点中获取同样的日志数据,保证了分布式数据库中各个数据副本的一致性。
可以理解,上述消息队列作为成熟稳定的云基础组件,在本申请实施例中被用于存储日志数据,而数据节点被设置为无状态服务,将数据节点这种服务节点和数据存储解耦的方式,使得向量数据库中的数据的读写操作分离,便于从故障中快速恢复,同时也方便了向量数据库的扩容设计。
基于上述向量数据库,本申请还提供了一种数据处理方法,以下结合图2所示的向量数据库的架构详细描述。
图3示出了本申请实施例中的一种数据处理方法。
如图3所示,用户通过客户端向向量数据库发送数据插入请求。用户可以根据需要,预设向量数据库中增量数据块的生命周期、增量数据块中的数据的最大条数和比例。上述比例指增量数据块中的可以容纳的数据条数与最大条数的比值,比例的大小范围为(0,1]。
S301,代理节点接收用户的数据插入请求。
代理节点作为向量数据库与用户连接的窗口,可以接收用户发送的请求,并将向量数据库的处理结果发送给用户。
S302,代理节点将数据插入请求包装成插入日志发送至日志存储节点中的消息队列。
代理节点接收用户发送的数据插入请求,将数据插入请求其包装成插入日志发送至日志存储节点。日志存储节点中的消息队列可以存储代理节点发送的各个类型的日志,例如插入日志,删除日志,查询日志等。
S303,数据节点监听消息队列获得插入日志。
数据节点被设置为无状态服务,通过监听消息队列的形式,获得插入日志。插入日志中可以包括插入数据的主键信息,插入数据的内容,插入数据的时间等,插入日志可以根据时间写入新的数据,也即插入日志作为增量数据块,可以增加新的数据信息。
S304,数据协调服务节点监听数据节点获得心跳信息。
数据协调服务节点通过监听数据节点获得心跳信息,心跳信息中包括有数据节点获取的增量数据块的生命时间和数据条数。增量数据块的生命时间即增量数据块从建立开始持续到当前时刻的时间。
S305,数据协调服务节点根据心跳信息在确定插入日志达到阈值,发送封装信号至数据节点。
数据协调服务节点根据心跳信息判断插入日志是否到达阈值。例如,数据协调服务节点判断插入日志,即增量数据块的生命时间是否大于等于预设生命周期;或者数据协调服务节点判断增量数据块中的数据的条数,是否大于等于增量数据块中的数据的最大条数和比例阈值的工乘积;如果数据协调服务节点确定插入日志达到阈值,则发送封装该插入日志的信号至数据节点。
S306,数据节点将插入日志封装成历史数据块发送至对象存储节点。
数据节点接收封装信号,将增量数据块封装成历史数据块,再将历史数据块发送至对象存储节点。历史数据块即只可以读取,不可以被写入的数据块。
S307,对象存储节点保存历史数据块。
对象存储节点将数据节点发送的历史数据块持久化存储下来。
上述数据处理方法,采用代理节点将接收到的数据插入请求包装成插入日志,采用日志存储节点保存插入日志,采用无状态服务的数据节点通过监听的方式获得插入日志,数据协调服务节点判断插入日志到达阈值,再由数据节点将封装的插入日志保存进持久化存储中。
无状态服务的数据节点可以从日志存储节点和对象存储节点获取数据,但本身不保存数据,则可以根据实际的需要,扩容各个节点,实现大批量数据的保存,同时各个数据节点可以在同一时刻获取相同的数据副本,保证了向量数据库中数据副本的一致性。
图4示出了图2所示的向量数据库中各个节点在应用本实施例中的一种数据处理方法中的交互过程。
由图4所示,向量数据库接收用户通过电子设备100的输入设备发送的插入数据请求。
S401,代理节点接收用户发送的插入数据请求,将插入数据请求打包成插入日志。
代理节点210接收用户发送的插入数据请求,将插入数据请求打包成插入数据消息,也即插入日志。插入日志中包括插入数据的主键信息,插入数据的时间,以及需要被插入的数据等。
S402,代理节点将插入日志发送给消息队列中的插入队列。
日志存储节点220中的消息队列包括不同类型的队列,分别对应于不同类型的日志,例如,插入队列对应与插入日志,删除队列对应于删除日志,查询队列对应于查询日志等。代理节点210将插入日志发送给插入队列中保存。
S403,数据节点监听消息队列。
数据节点240通过监听消息队列中的不同类型的队列,获取消息队列中保存的不同类型的消息。
S404,数据节点获取插入日志。
数据节点240通过监听消息队列221中的插入队列,获取插入日志,也即增量数据块。
S405,数据协调服务节点监听数据节点获取心跳信息。
数据协调服务节点230通过监听数据节点获取心跳信息。心跳信息中包括数据节点获取的增量数据块的信息,例如增量数据块中的数据条数和增量数据块的生命时间。
S406,数据协调服务节点根据心跳信息确定增量数据块达到第一条件,发送封装信号。
数据协调服务节点230根据心跳信息判断增量数据块是否达到第一条件,如果是,数据协调服务节点230将发送封装增量数据块的信号至数据节点240。第一条件包括有第一子条件和第二子条件。第一子条件为增量数据块的生命时间达到预设生命周期。例如,预设增量数据块的生命周期为24小时,那么如果增量数据块的生命时间达到24小时,即增量数据块从设置开始到当前的时间大于等于24小时,则说明增量数据块满足第一子条件。第二子条件为增量数据块中的数据条数大于等于增量数据块的最大数据条数与预设比例的乘积。例如,设置预设比例为0.75,增量数据块的最大数据条数为1000条,那么如果增量数据块中的现有数据条数大于等于增量数据块的最大数据条数与0.75的乘积即750条,则说明增量数据块满足第二子条件。
需要说明的是,上述预设生命周期,增量数据块的最大数据条数和预设比例的数值只是一种示例,在实际应用中,预设生命周期,增量数据块的最大数据条数和预设比例的具体数值可以根据需要设置,本申请对此不做限定。
S407,数据节点将增量数据块封装成历史数据块发送至对象存储节点。
数据节点240将增量数据块封装成历史数据块,再将历史数据块发送至对象存储节点250。增量数据块为可以随时根据请求增加数据的动态数据块,相应的,历史数据块为被封装的数据块,只能够读取数据,而不能再写入数据,历史数据块将被保存在对象存储节点250中。
S408,对象存储节点保存历史数据块。
对象存储节点250将数据节点240发送的历史数据块持久化保存在对象存储节点250中。
例如,用户使用图2所示的向量数据库进行图像检索服务,该图像检索服务每10分钟可以生成5万张图片,也即每10分钟可以产生5万条向量数据,预设向量数据块中的每个增量数据块的最大数据条数为12万条,比例为0.75,增量数据块的预设生命周期为1小时。
用户A第一次使用向量数据库进行图像检索服务,生成了5万张图片,也即5万条向量数据,向量数据中包括主键信息。代理节点210接收5万条向量数据,将这些向量数据包装成插入日志发送至日志存储节点220中的插入队列进行存储。数据节点240通过监听日志存储节点220中的插入队列,获取这5万条数据。用户A第二次使用向量数据库进行图像检索服务,又生成了5万条向量数据,向量数据中包括主键信息,代理节点210根据主键信息将这5万条向量数据再次写入之前的插入日志,并将更新后的插入日志发送至存储节点220中的插入队列进行存储。数据节点240通过监听插入队列获取插入日志,获取10万条数据。数据协调服务节点230通过监听数据节点240获取心跳信息,心跳信息包括数据节点获取的插入日志,即增量数据块中的数据条数和增量数据块的生命时间。数据协调服务节点230判断增量数据块中的数据条数为10万条,大于预设向量数据块中的每个增量数据块的最大数据条数的12万和比例阈值0.75的乘积,数据协调服务节点230发送封装这个增量数据块的信号至数据节点240。数据节点240接收封装信号,将插入日志,即增量数据块进行封装,再将获得的历史数据块发送至对象存储节点250。对象存储节点250接收数据节点240发送的历史数据块,并将历史数据块保存下来。
在一种可能的实现中,如果数据协调服务节点230判断增量数据块的生命时间大于增量数据块的预设生命周期,即1小时,数据协调服务节点230也将发送封装这个增量数据块的信号至数据节点240。再由数据节点240将增量数据块进行封装获得历史数据块,并将历史数据块发送至对象存储节点250。最后,由对象存储节点250接收数据节点240发送的历史数据块,并将历史数据块保存下来。
因此,综上所述,本申请技术方案为用户提供了基于向量数据库架构的数据处理方法,采用日志存储节点以日志的形式保存实时数据(增量数据块),也即用户发送的对向量数据库中的数据进行增加、删除、修改等请求的数据;采用对象存储节点保存达到阈值的实时数据(历史数据块);其中,增量数据块为可以写入的数据块,历史数据块为只能读取不能写入的数据块;将数据节点设置为无状态服务,也即数据节点可以从日志存储节点中获取增量数据块表示的实时数据,也可以从对象存储节点中获取历史数据块表示的历史数据,而数据节点本身不保存数据,数据节点对获取到的数据进行处理。
上述数据处理方法,通过日志存储节点保存实时数据,通过对象存储节点保存历史数据,数据节点被设置为无状态服务处理数据,可以保证不同的数据节点可以在相同的时刻获取相同的数据副本,同时,数据节点的无状态服务设置,使得向量数据库的扩容和缩容都可以基于实际的场景需求进行改进,使得整个向量数据库的设计更为灵活。
图5为本申请实施例中提供的电子设备200的框图。图5示例性地示出了根据多个实施例的示例电子设备200。在一个实施例中,电子设备200可以包括一个或多个处理器104,与处理器104中的至少一个连接的系统控制逻辑108,与系统控制逻辑108连接的系统内存112,与系统控制逻辑108连接的非易失性存储器(NVM)116,以及与系统控制逻辑108连接的网络接口120。
在一些实施例中,处理器104可以包括一个或多个单核或多核处理器。在一些实施例中,处理器104可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备200采用eNB(Evolved Node B,增强型基站)101或RAN(Radio Access Network,无线接入网)控制器102的实施例中,处理器104可以被配置为执行各种符合的实施例。可以理解,本申请实施例中,处理器104可以用于执行本申请实施例中提供的数据处理方法。
在一些实施例中,系统控制逻辑108可以包括任意合适的接口控制器,以向处理器104中的至少一个和/或与系统控制逻辑108通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑108可以包括一个或多个存储器控制器,以提供连接到系统内存112的接口。系统内存112可以用于加载以及存储数据和/或指令。在一些实施例中电子设备200的内存112可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器116可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器116可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM/存储器116可以包括安装电子设备200的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口120通过网络访问NVM/存储116。
特别地,系统内存112和NVM/存储器116可以分别包括:指令124的暂时副本和永久副本。指令124可以包括:由处理器104中的至少一个执行时导致电子设备200实施本申请实施例中提及的数据处理方法的指令。在一些实施例中,指令124、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑108,网络接口120和/或处理器104中。
网络接口120可以包括收发器,用于为电子设备200提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口120可以集成于电子设备200的其他组件。例如,网络接口120可以集成于处理器104的,系统内存112,NVM/存储器116,和具有指令的固件设备(未示出)中的至少一种,当处理器104中的至少一个执行所述指令时,电子设备200实现本申请实施例中提及的数据处理方法。
网络接口120可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口120可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器104中的至少一个可以与用于系统控制逻辑108的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器104中的至少一个可以与用于系统控制逻辑108的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
电子设备200可以进一步包括:输入/输出(I/O)设备132。I/O设备132可以包括用户界面,使得用户能够与电子设备200进行交互;外围组件接口的设计使得外围组件也能够与电子设备200交互。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (10)
1.一种数据处理方法,用于数据库系统,所述数据库系统包括作为代理节点、日志存储节点、数据协调服务节点、数据节点和对象存储节点的电子设备,其特征在于,所述方法包括:
所述代理节点接收来自用户的数据插入请求;
所述代理节点将所述数据插入请求包装为插入日志,并将所述插入日志发送至所述日志存储节点;
所述数据节点监听所述日志存储节点获取插入日志;
所述数据协调服务节点监听所述数据节点并从所述数据节点获取心跳信息;其中,所述心跳信息包括所述插入日志的生命时间和所述插入日志中的数据条数;
所述数据协调服务节点根据所述心跳信息,确定所述插入日志达到阈值,并发送封装信号至所述数据节点,所述封装信号为封装所述插入日志的信号;
响应于所述封装信号,所述数据节点将所述插入日志封装成历史数据块,并发送至所述对象存储节点;
所述对象存储节点保存所述历史数据块。
2.根据权利要求1所述的方法,其特征在于,所述代理节点将所述数据插入请求包装为插入日志,并将所述插入日志发送至所述日志存储节点,包括:
所述代理节点将所述数据插入请求包装为插入日志;
所述代理节点将所述插入日志发送至所述日志存储节点中的消息队列。
3.根据权利要求1所述的方法,其特征在于,所述数据协调服务节点根据所述心跳信息,确定所述插入日志达到阈值,并发送封装信号至所述数据节点,包括:
所述数据协调服务节点根据所述心跳信息中的所述插入日志的生命时间,确定所述插入日志的生命时间达到作为所述阈值的预设生命周期;
所述数据协调服务节点发送封装信号至所述数据节点。
4.根据权利要求1所述的方法,其特征在于,所述数据协调服务节点根据所述心跳信息,确定所述插入日志达到阈值,并发送封装信号至所述数据节点,包括:
所述数据协调服务节点根据所述心跳信息中的所述插入日志中的数据条数,确定所述插入日志中的数据条数大于等于作为所述阈值的所述插入日志的预设最大数据条数和预设比例的乘积;
所述数据协调服务节点发送封装信号至所述数据节点。
5.一种数据处理系统,其特征在于,所述数据处理系统包括代理节点、日志存储节点、数据协调服务节点、数据节点和对象存储节点,其中,
所述代理节点,用于接收来自用户的数据插入请求,将所述数据插入请求包装为插入日志并发送所述插入日志至所述日志存储节点;
所述数据协调服务节点,用于监听所述数据节点获取心跳信息并根据心跳信息,确定所述插入日志达到阈值,并发送封装信号至所述数据节点;其中,所述心跳信息包括所述插入日志的生命时间和所述插入日志中的数据条数;
所述数据节点,用于监听所述日志存储节点获取插入日志,并将所述插入日志封装成历史数据块发送至所述对象存储节点;
所述对象存储节点,用于保存所述历史数据块。
6.根据权利要求5所述的系统,其特征在于,所述代理节点,用于接收来自用户的数据插入请求,将所述数据插入请求包装为插入日志并发送所述插入日志至所述日志存储节点,包括:
所述代理节点,用于接收来自用户的数据插入请求,将所述数据插入请求包装为插入日志并发送所述插入日志至所述日志存储节点中的消息队列。
7.根据权利要求5所述的系统,其特征在于,所述数据协调服务节点,用于监听所述数据节点获取心跳信息并根据心跳信息,确定所述插入日志达到阈值,并发送封装信号至所述数据节点,包括:
所述数据协调服务节点,用于监听所述数据节点获取心跳信息,根据所述心跳信息中的所述插入日志的生命时间,确定所述插入日志的生命时间达到作为所述阈值的预设生命周期,并发送封装信号至所述数据节点。
8.根据权利要求5所述的系统,其特征在于,所述数据协调服务节点,用于监听所述数据节点获取心跳信息并根据心跳信息,确定所述插入日志达到阈值,并发送封装信号至所述数据节点,包括:
所述数据协调服务节点,用于监听所述数据节点获取心跳信息,根据所述心跳信息中的所述插入日志中的数据条数,确定所述插入日志中的数据条数大于等于作为所述阈值的所述插入日志的预设最大数据条数和预设比例的乘积,并发送封装信号至所述数据节点。
9.一种可读介质,其特征在于,所述可读介质上存储有指令,所述指令在电子设备上执行时使所述电子设备实现权利要求1至4中任一项所述的数据存储方法。
10.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于执行所述存储器中存储的指令以实现权利要求1至4中任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211044720.9A CN115426375A (zh) | 2022-08-30 | 2022-08-30 | 一种数据处理方法和数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211044720.9A CN115426375A (zh) | 2022-08-30 | 2022-08-30 | 一种数据处理方法和数据处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115426375A true CN115426375A (zh) | 2022-12-02 |
Family
ID=84200732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211044720.9A Pending CN115426375A (zh) | 2022-08-30 | 2022-08-30 | 一种数据处理方法和数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115426375A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527860A (zh) * | 2024-01-05 | 2024-02-06 | 河北普兰特生物科技有限公司 | 一种基于分布式系统的物联网通信方法、系统及介质 |
-
2022
- 2022-08-30 CN CN202211044720.9A patent/CN115426375A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527860A (zh) * | 2024-01-05 | 2024-02-06 | 河北普兰特生物科技有限公司 | 一种基于分布式系统的物联网通信方法、系统及介质 |
CN117527860B (zh) * | 2024-01-05 | 2024-04-09 | 河北普兰特生物科技有限公司 | 一种基于分布式系统的物联网通信方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107153644B (zh) | 一种数据同步方法及装置 | |
CN110362547B (zh) | 日志文件的编码、解析、存储方法和装置 | |
US20210160054A1 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
CN113032099B (zh) | 云计算节点、文件管理方法及装置 | |
CN111786984B (zh) | Pod通信连接方法、装置及电子设备、存储介质 | |
US20210157801A1 (en) | Methods and systems for recording data based on plurality of blockchain networks | |
CN110781149A (zh) | 管理直播间信息的方法、装置、设备及存储介质 | |
CN114676135A (zh) | 数据存储方法、可读介质和电子设备 | |
CN115426375A (zh) | 一种数据处理方法和数据处理系统 | |
CN109982315B (zh) | 日志上传方法及相关设备 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN112650804B (zh) | 大数据接入方法、装置、系统及存储介质 | |
CN116560878B (zh) | 一种内存共享方法和相关装置 | |
CN111159298B (zh) | 业务请求处理方法、装置、电子设备及存储介质 | |
CN115982133A (zh) | 数据处理方法及装置 | |
US11086849B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
CN113742050B (zh) | 操作数据对象的方法、装置、计算设备和存储介质 | |
CN113760986A (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN114567674A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
EP4086781A1 (en) | Data reading method and terminal | |
CN112751893A (zh) | 一种消息轨迹数据的处理方法、装置及电子设备 | |
WO2024066904A1 (zh) | 一种容器创建方法、系统及节点 | |
CN115408363A (zh) | 数据处理方法、可读介质和电子设备 | |
WO2021063242A1 (zh) | 一种存储系统的元数据的发送方法及存储系统 | |
CN115730016B (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 |