CN108572970A - 一种结构化数据的处理方法和分布式处理系统 - Google Patents
一种结构化数据的处理方法和分布式处理系统 Download PDFInfo
- Publication number
- CN108572970A CN108572970A CN201710138541.4A CN201710138541A CN108572970A CN 108572970 A CN108572970 A CN 108572970A CN 201710138541 A CN201710138541 A CN 201710138541A CN 108572970 A CN108572970 A CN 108572970A
- Authority
- CN
- China
- Prior art keywords
- write request
- write
- data
- batch
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开一种结构化数据的处理方法和分布式处理系统,用于提高写请求的处理效率,降低写操作队列的排队时延。该结构化数据的处理方法,包括:根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,所述第一写请求包括:待写入的第一结构化数据和对应的写操作类型,所述第二写请求包括:待写入的第二结构化数据和对应的写操作类型;若所述第一写请求和所述第二写请求存在相同的写操作类型,将所述第一写请求和所述第二写请求合并为一个批量写请求,所述批量写请求包括:所述第一结构化数据和所述第二结构化数据;根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种结构化数据的处理方法和分布式处理系统。
背景技术
随着网络技术的发展,对信息的传递和处理的要求越来越高,能够用数据或统一的结构加以表示的信息,我们称之为结构化数据,如数字、符号。结构化数据有特定的字段,即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。例如用户使用社交软件发表一条说说,具有发表标识(Identifier,ID)、时间、标题、正文等字段。
现有技术中,在处理结构化数据时通常采用如下方案:客户端向数据处理系统中的逻辑层发送写请求,为了保证原子性,数据处理系统根据列表标识(List Key)将该写请求路由至写操作队列进行排队依次写入存储层,并依次返回客户端请求写入的结果。此时,写入数据的延迟=存储层处理延迟+排队延迟。现有技术中,数据处理系统在处理结构化数据写入的时候,都是采取排队依次逐个数据写入的方式,在并发量比较大的场景下,会导致很多写请求超时以至于无法写入存储层,造成客户端写入数据失败。
发明内容
本发明实施例提供了一种结构化数据的处理方法和分布式处理系统,用于提高写请求的处理效率,降低写操作队列的排队时延。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种结构化数据的处理方法,包括:
根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,所述第一写请求包括:待写入的第一结构化数据和对应的写操作类型,所述第二写请求包括:待写入的第二结构化数据和对应的写操作类型;
若所述第一写请求和所述第二写请求存在相同的写操作类型,将所述第一写请求和所述第二写请求合并为一个批量写请求,所述批量写请求包括:所述第一结构化数据和所述第二结构化数据;
根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中。
第二方面,本发明实施例还提供一种分布式处理系统,包括:
判断模块,用于根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,所述第一写请求包括:待写入的第一结构化数据和对应的写操作类型,所述第二写请求包括:待写入的第二结构化数据和对应的写操作类型;
合并模块,用于若所述第一写请求和所述第二写请求存在相同的写操作类型,将所述第一写请求和所述第二写请求合并为一个批量写请求,所述批量写请求包括:所述第一结构化数据和所述第二结构化数据;
提交模块,用于根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,首先根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,对于第一写请求和第二写请求存在相同的写操作类型的情况,可以将第一写请求和第二写请求合并为一个批量写请求,最后根据批量写请求将第一结构化数据和第二结构化数据存储到数据存储层中。在本发明的实施例中写操作队列中的多个写请求不需要排队依次处理,多个待写入的结构化数据具有相同的写操作类型时可以对多个写请求合并为一个批量写请求,从而通过一次处理就可以将多个结构化数据写入到数据存储层中,降低了排队时延和处理延迟,提高结构化数据的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种结构化数据的处理方法的流程方框示意图;
图2为本发明实施例提供的结构化数据的处理方法的一种数据处理场景示意图;
图3为本发明实施例提供的索引结构信息的组成内容示意图;
图4为本发明实施例提供的分布式处理系统的一种应用场景示意图;
图5-a为本发明实施例提供的分布式处理系统的一种组成结构示意图;
图5-b为本发明实施例提供的分布式处理系统中提交模块的一种组成结构示意图;
图5-c为本发明实施例提供的分布式处理系统的另一种组成结构示意图;
图5-d为本发明实施例提供的分布式处理系统的另一种组成结构示意图;
图5-e为本发明实施例提供的分布式处理系统中队列存储模块的一种组成结构示意图;
图5-f为本发明实施例提供的分布式处理系统的另一种组成结构示意图;
图6为本发明实施例提供的分布式处理系统应用于服务器的组成结构示意图。
具体实施方式
本发明实施例提供了一种结构化数据的处理方法和分布式处理系统,用于提高写请求的处理效率,降低写操作队列的排队时延。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明结构化数据的处理方法的一个实施例,具体可以应用于对结构化数据的批量处理中,提高数据处理效率。本发明实施例中,结构化数据是指包括特定的字段,可以用二维表结构来逻辑表达实现的数据,举例说明,在社交账号上发表的一条说说就是一个结构化数据,可以包括有发表标识(Identifier,ID)、时间、标题、正文等字段。请参阅图1所示,本发明一个实施例提供的结构化数据的处理方法,可以包括如下步骤:
101、根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,第一写请求包括:待写入的第一结构化数据和对应的写操作类型,第二写请求包括:待写入的第二结构化数据和对应的写操作类型。
在本发明的实施例中,分布式处理系统中配置有针对写请求的合并提交策略,分布式处理系统根据该合并提交策略对写操作队列中存储的多个写请求进行分析判断,从而确定在写操作队列中是否存在具有相同写操作类型的至少两个写请求。合并提交策略可以包括多种实现方式,例如,可以定时的轮询读取写操作队列中的写请求,从而判断在一定时间段内同时加入或者分次加入到写操作队列中的多个写请求是否能够进行批量处理。该合并提交策略可以由分布式处理系统的操作用户来确定,通过用户配置的方式配置到分布式处理系统中,也可以由分布式处理系统根据写操作队列的队列存储情况来确定,例如可以根据写操作队列中加入的写请求的个数占写操作队列的容量比例来确定是否执行本发明实施例中的合并提交策略。本发明实施例后续实施例中以写操作队列中存储了第一写请求和第二写请求为例进行说明批量处理的实现方式,不限定的是,在实际的写操作队列中还可以加入更多的写请求。
其中,第一写请求和第二写请求可以是来自同一个客户端,也可以是来自两个客户端,即分布式处理系统的写操作队列中的写请求可以按用户的写频率计算次数的,例如个人电脑和手机用同一用户名发帖子,则个人电脑和手机作为不同的客户端分别向分布式处理系统提交多个写请求。在本发明实施例中,加入到写操作队列中的每个写请求都携带有写操作类型的信息,具体的,第一写请求包括:待写入的第一结构化数据和对应的写操作类型,第二写请求包括:待写入的第二结构化数据和对应的写操作类型。举例说明如下,写操作类型可以包括添加操作、修改操作和删除操作,不同的写操作类型是对结构化数据的不同操作,因此通过写操作类型的判断就可以确定多个写请求是否能够进行合并批量处理。
在本发明的一些实施例中,步骤101根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型之前,本发明实施例提供的方法还包括:
A1、接收客户端发送的第一写请求;
A2、将第一写请求加入到写操作队列中,并触发执行如下步骤101:根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型。
其中,分布式处理系统和多个客户端之间分别建立通信链路,客户端需要存储结构化数据时,客户端向分布式处理系统发送一个写请求,举例说明如下,客户端发送第一写请求,分布式处理系统可以将第一写请求加入到写操作队列中,从而该第一写请求在写操作队列中等待处理,根据合并提交策略可以判断新加入写操作队列的第一写请求和写操作队列中正在排队的写请求是否存在相同的写操作类型。需要说明的是,同一个客户端还可以发送第二请求,或者另一个客户端向分布式处理系统发送第二请求,分布式处理系统对第二写请求的处理方式相类似,不再赘述。
进一步的,在本发明的一些实施例中,步骤A2将第一写请求加入到写操作队列中,包括:
A21、从第一写请求中获取第一结构化数据以及第一结构化数据对应的写操作类型、业务标识、列表标识(ListKey)和行标识(SubKey);
A22、将第一结构化数据以及第一结构化数据对应的写操作类型、对应的业务标识、ListKey和SubKey存储到写操作队列中的第一索引结构信息中。
其中,客户端发送的第一写请求中可以包括第一结构化数据,该写请求除了包括第一结构化数据的写操作类型,还可以包括:业务标识、列表标识和行标识,将第一结构化数据以及第一结构化数据对应的写操作类型、对应的业务标识、ListKey和SubKey存储到写操作队列中的第一索引结构信息中,通过索引结构信息可以存储写请求中携带的请求内容,从而通过索引结构可以实现数据的结构化存储,便于根据合并提交策略进行写操作类型的判断以及对结构化数据的业务标识、列表标识和行标识的读取。其中,业务标识是能够唯一标识一个业务的字符,ListKey能够唯一标识一张列表的字符串,行标识能够唯一表示列表中的一个行。
102、若第一写请求和第二写请求存在相同的写操作类型,将第一写请求和第二写请求合并为一个批量写请求,批量写请求包括:第一结构化数据和第二结构化数据。
在本发明实施例中,通过步骤101的判断,分布式处理系统在第一写请求和第二写请求存在相同的写操作类型的情况下,将第一写请求和第二写请求合并为一个批量写请求,其中,该批量写请求包括:第一结构化数据和第二结构化数据。批量写请求通过对具有相同写操作类型的多个写请求进行合并批量处理得到,该批量写请求的写操作类型是指合并后的新写操作类型,例如多个添加操作合并成一个批量添加操作类型。在本发明实施例中,写请求由客户端发送给分布式处理系统之后,分布式处理系统将写请求加入到写操作队列中,本发明实施例中写操作队列中的多个写请求不需要再排队依次处理,通过批量写请求,可以减少多个写请求的排队处理时延。
在本发明的一些实施例中,步骤103将第一写请求和第二写请求合并为一个批量写请求,包括:
B1、从第一写请求中提取出第一结构化数据,以及从第二写请求中提取出第二结构化数据;
B2、根据第一结构化数据和第二结构化数据生成批量写请求;
B3、将批量写请求加入到写操作队列中,以及删除写操作队列中的第一写请求和第二写请求。
其中,分布式处理系统通过对写操作队列中第一写请求和第二写请求的解析,可以提取出第一结构化数据和第二结构化数据,并且在生成批量写请求之后,从写操作队列中删除原先的写请求,从而简化写操作队列的管理开销。
在本发明的一些实施例中,步骤步骤102将第一写请求和第二写请求合并为一个批量写请求之后,本发明实施例提供的方法还包括:
C1、建立第一结构化数据对应的SubKey与第一链路文件描述符的第一映射关系以及第二结构化数据对应的SubKey与第二链路文件描述符的第二映射关系;
C2、根据第一映射关系和第二映射关系生成回包表,并将回包表存储到批量写请求中。
其中,每个结构化数据都对应有一个链路文件描述符,链路文件描述符是标识了回复用户请求结果连接的索引信息,通过SubKey和链路文件描述符的映射,可以生成回包表,回包表的作用将用户的请求批量处理完成后,通过回包表能够找到回复用户结果的连接。
103、根据批量写请求将第一结构化数据和第二结构化数据存储到数据存储层中。
在本发明实施例中,通过步骤102将第一写请求和第二写请求合并为一个批量写请求之后,该批量写请求中包括有需要写入的第一结构化数据和第二结构化数据,分布式处理系统根据该批量写请求可以将第一结构化数据和第二结构化数据存储到数据存储层中,本发明实施例中批量写请求中的多个结构化数据可以同时存储到数据存储层中,而不需要再依次存储,通过批量写请求,可以减少多个结构化数据的存储时延。
在本发明的一些实施例中,步骤103根据批量写请求将第一结构化数据和第二结构化数据存储到数据存储层中之后,本发明实施例提供的方法还包括:
D1、获取批量写请求对应的批量执行结果;
D2、从批量执行结果中分别获取到第一结构化数据的存储结果、第二结构化数据的存储结果;
D3、向发送第一写请求的客户端回复第一结构化数据的存储结果,以及向发送第二写请求的客户端回复第二结构化数据的存储结果。
其中,在分布式处理系统的数据存储层中完成对多个结构化数据的处理之后,可以分别获取到多个结构化数据的存储结果,例如从批量执行结果中分别获取到第一结构化数据的存储结果、第二结构化数据的存储结果,针对各个写请求再分别向相应的客户端做出回复,使得客户端能够获知所请求的结构化数据是否被成功写入。例如,在前述执行步骤C1至步骤C2的实现场景下,分布式处理系统可以通过回包表获取到第一链路文件描述符、第二链路文件描述符,向客户端回复所请求的结构化数据的存储结果。
通过以上实施例对本发明实施例的描述可知,首先根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,对于第一写请求和第二写请求存在相同的写操作类型的情况,可以将第一写请求和第二写请求合并为一个批量写请求,最后根据批量写请求将第一结构化数据和第二结构化数据存储到数据存储层中。在本发明的实施例中写操作队列中的多个写请求不需要排队依次处理,多个待写入的结构化数据具有相同的写操作类型时可以对多个写请求合并为一个批量写请求,从而通过一次处理就可以将多个结构化数据写入到数据存储层中,降低了排队时延和处理延迟,提高结构化数据的处理效率。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例公开了一种结构化数据提交时合并处理的方法,具体的,客户端通过接口向分布式处理系统的接入模块提交一个写请求,接入模块按照该条写请求的Listkey路由到逻辑模块进行排队,逻辑模块根据合并提交策略对一定时间内的写请求合并,向数据存储层提交一次批量写请求。这种写操作合并提交的机制,大大减少了逻辑模块和数据存储层交互的次数,节约了逻辑模块所需的处理写请求时间和系统资源,因而上述流程提高了处理结构化数据的效率。本发明实施例中,逻辑模块可以根据合并提交策略对一定时间内的多次写请求合并成一个批量请求,向数据存储层的统一写入,并解析返回结果分别回复相应的客户端,使得逻辑层合并处理,降低了排队延迟,数据存储层的处理请求被合并,降低了延迟。
请参阅图2所示,为本发明实施例提供的结构化数据的处理方法的一种数据处理场景示意图。逻辑模块根据合并提交策略对一定时间内的写请求合并成向数据存储层的一个批量写请求,并解析返回结果,分别回复相应的客户端,主要包括如下步骤:
1)、接入模块得到写请求后,解析信令包得出ListKey。将listkey的二进制数据转化成无符号(unsign)类型,并模逻辑模块中各个设备节点数量,即通过listkey通过哈希计算的方式,将写请求分配到逻辑模块的一台设备节点上进行逻辑处理,得到地址后把数据转发至该逻辑模块的节点。
请参阅图3所示,本发明实施例提供的索引结构信息的组成内容示意图,写入数据时需记录写操作类型(Flag)、业务标识(BID)、列表标识、任务信息、业务数据等这些信息,将这些信息存于索引结构信息里,其存储结构如下:
其中,任务信息Info结构定义如下:
2)、逻辑模块接收到数据后,根据BID、ListKey放入写操作队列。定时检查该队列上的任务属性,如图2所示,若是同类型的添加操作,则合并成一个新的操作类型,避免了单次提交的排队延时。并从写操作队列中删除原先的操作,建立subkey至链路文件描述符的映射关系,从而生成回包表。
3)、向数据存储层提交一个合并数据的批量写请求,降低了数据存储层的处理延时。
4)、数据存储层返回该批量写请求的执行结果,然后再将合并的写请求拆散单个的写操作请求。
5)逻辑模块,根据回包表将请求结果回复多条链路,客户端无需做任何适配。
接下来,请参阅图4所示,为本发明实施例提供的分布式处理系统的一种应用场景示意图,分布式结构化数据处理系统是针对用户原创内容(User Generated Content,UGC)数据提供服务的存储逻辑平台,它支持用户数据无限增长,能够提供排序、过滤、分类等读取功能,适用于说说、留言板、微信朋友圈、微博等大多数UGC类业务场景。
分布式处理系统的5个模块组成包括:接入模块、逻辑处理模块、长列表处理模块、节点管理模块和修复模块。其中,接入模块负责接入,业务直接请求访问,逻辑处理模块是分布式处理系统的核心逻辑,长列表处理模块负责大用户数据排序和过滤的处理,节点模块负责整个系统的配置管理,修复模块负责对一些逻辑流程失败的场景进行修复。
本发明实施例中提供批量合并的方式,对比单次写入,可以实现批量合并处理,降低了排队延迟存储的时延,同时处理请求也被合并,降低处理延迟,通过实测表明,同一个listkey的处理能力可以提高25倍。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图5-a所示,本发明实施例提供的一种分布式处理系统500,可以包括:判断模块501、合并模块502和提交模块503,其中,
判断模块501,用于根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,所述第一写请求包括:待写入的第一结构化数据和对应的写操作类型,所述第二写请求包括:待写入的第二结构化数据和对应的写操作类型;
合并模块502,用于若所述第一写请求和所述第二写请求存在相同的写操作类型,将所述第一写请求和所述第二写请求合并为一个批量写请求,所述批量写请求包括:所述第一结构化数据和所述第二结构化数据;
提交模块503,用于根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中。
在本发明的一些实施例中,请参阅图5-b所示,所述合并模块503,包括:
数据提取单元5031,用于从所述第一写请求中提取出所述第一结构化数据,以及从所述第二写请求中提取出所述第二结构化数据;
写请求聚合单元5032,用于根据所述第一结构化数据和所述第二结构化数据生成批量写请求;
队列存储单元5033,用于将所述批量写请求加入到所述写操作队列中,以及删除所述写操作队列中的所述第一写请求和所述第二写请求。
在本发明的一些实施例中,请参阅图5-c所示,所述分布式处理系统500还包括:
结果获取模块504,用于所述提交模块503根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中之后,获取所述批量写请求对应的批量执行结果;
结果解析模块505,用于从所述批量执行结果中分别获取到所述第一结构化数据的存储结果、所述第二结构化数据的存储结果;
结果反馈模块506,用于向发送所述第一写请求的客户端回复所述第一结构化数据的存储结果,以及向发送所述第二写请求的客户端回复所述第二结构化数据的存储结果。
在本发明的一些实施例中,请参阅图5-d所示,相对于图5-a所示,所述分布式处理系统500还包括:
接入模块507,用于所述判断模块501根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型之前,接收客户端发送的所述第一写请求;
队列存储模块508,用于将所述第一写请求加入到写操作队列中,并触发执行所述判断模块501。
在本发明的一些实施例中,请参阅图5-e所示,所述队列存储模块508,包括:
信息提取模块5081,用于从所述第一写请求中获取第一结构化数据以及所述第一结构化数据对应的写操作类型、业务标识、列表标识ListKey和行标识SubKey;
索引创建模块5082,用于将所述第一结构化数据以及所述第一结构化数据对应的写操作类型、对应的业务标识、ListKey和SubKey存储到所述写操作队列中的第一索引结构信息中。
在本发明的一些实施例中,请参阅图5-f所示,相对于图5-a所示,所述分布式处理系统500还包括:
映射模块509,用于所述合并模块502将所述第一写请求和所述第二写请求合并为一个批量写请求之后,建立所述第一结构化数据对应的SubKey与第一链路文件描述符的第一映射关系以及所述第二结构化数据对应的SubKey与第二链路文件描述符的第二映射关系;
回包表生成模块510,用于根据所述第一映射关系和所述第二映射关系生成回包表,并将所述回包表存储到所述批量写请求中。
通过以上对本发明实施例的描述可知,首先根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,对于第一写请求和第二写请求存在相同的写操作类型的情况,可以将第一写请求和第二写请求合并为一个批量写请求,最后根据批量写请求将第一结构化数据和第二结构化数据存储到数据存储层中。在本发明的实施例中写操作队列中的多个写请求不需要排队依次处理,多个待写入的结构化数据具有相同的写操作类型时可以对多个写请求合并为一个批量写请求,从而通过一次处理就可以将多个结构化数据写入到数据存储层中,降低了排队时延和处理延迟,提高结构化数据的处理效率。
图6是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的方法步骤可以基于该图6所示的服务器结构。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种结构化数据的处理方法,其特征在于,包括:
根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,所述第一写请求包括:待写入的第一结构化数据和对应的写操作类型,所述第二写请求包括:待写入的第二结构化数据和对应的写操作类型;
若所述第一写请求和所述第二写请求存在相同的写操作类型,将所述第一写请求和所述第二写请求合并为一个批量写请求,所述批量写请求包括:所述第一结构化数据和所述第二结构化数据;
根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一写请求和所述第二写请求合并为一个批量写请求,包括:
从所述第一写请求中提取出所述第一结构化数据,以及从所述第二写请求中提取出所述第二结构化数据;
根据所述第一结构化数据和所述第二结构化数据生成批量写请求;
将所述批量写请求加入到所述写操作队列中,以及删除所述写操作队列中的所述第一写请求和所述第二写请求。
3.根据权利要求1所述的方法,其特征在于,所述根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中之后,所述方法还包括:
获取所述批量写请求对应的批量执行结果;
从所述批量执行结果中分别获取到所述第一结构化数据的存储结果、所述第二结构化数据的存储结果;
向发送所述第一写请求的客户端回复所述第一结构化数据的存储结果,以及向发送所述第二写请求的客户端回复所述第二结构化数据的存储结果。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型之前,所述方法还包括:
接收客户端发送的所述第一写请求;
将所述第一写请求加入到写操作队列中,并触发执行如下步骤:根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一写请求加入到写操作队列中,包括:
从所述第一写请求中获取第一结构化数据以及所述第一结构化数据对应的写操作类型、业务标识、列表标识ListKey和行标识SubKey;
将所述第一结构化数据以及所述第一结构化数据对应的写操作类型、对应的业务标识、ListKey和SubKey存储到所述写操作队列中的第一索引结构信息中。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一写请求和所述第二写请求合并为一个批量写请求之后,所述方法还包括:
建立所述第一结构化数据对应的SubKey与第一链路文件描述符的第一映射关系以及所述第二结构化数据对应的SubKey与第二链路文件描述符的第二映射关系;
根据所述第一映射关系和所述第二映射关系生成回包表,并将所述回包表存储到所述批量写请求中。
7.一种分布式处理系统,其特征在于,包括:
判断模块,用于根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型,所述第一写请求包括:待写入的第一结构化数据和对应的写操作类型,所述第二写请求包括:待写入的第二结构化数据和对应的写操作类型;
合并模块,用于若所述第一写请求和所述第二写请求存在相同的写操作类型,将所述第一写请求和所述第二写请求合并为一个批量写请求,所述批量写请求包括:所述第一结构化数据和所述第二结构化数据;
提交模块,用于根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中。
8.根据权利要求7所述的系统,其特征在于,所述合并模块,包括:
数据提取单元,用于从所述第一写请求中提取出所述第一结构化数据,以及从所述第二写请求中提取出所述第二结构化数据;
写请求聚合单元,用于根据所述第一结构化数据和所述第二结构化数据生成批量写请求;
队列存储单元,用于将所述批量写请求加入到所述写操作队列中,以及删除所述写操作队列中的所述第一写请求和所述第二写请求。
9.根据权利要求7所述的系统,其特征在于,所述分布式处理系统还包括:
结果获取模块,用于所述提交模块根据所述批量写请求将所述第一结构化数据和所述第二结构化数据存储到数据存储层中之后,获取所述批量写请求对应的批量执行结果;
结果解析模块,用于从所述批量执行结果中分别获取到所述第一结构化数据的存储结果、所述第二结构化数据的存储结果;
结果反馈模块,用于向发送所述第一写请求的客户端回复所述第一结构化数据的存储结果,以及向发送所述第二写请求的客户端回复所述第二结构化数据的存储结果。
10.根据权利要求7至9中任一项所述的系统,其特征在于,所述分布式处理系统还包括:
接入模块,用于所述判断模块根据合并提交策略判断写操作队列中存储的第一写请求和第二写请求是否存在相同的写操作类型之前,接收客户端发送的所述第一写请求;
队列存储模块,用于将所述第一写请求加入到写操作队列中,并触发执行所述判断模块。
11.根据权利要求10所述的系统,其特征在于,所述队列存储模块,包括:
信息提取模块,用于从所述第一写请求中获取第一结构化数据以及所述第一结构化数据对应的写操作类型、业务标识、列表标识ListKey和行标识SubKey;
索引创建模块,用于将所述第一结构化数据以及所述第一结构化数据对应的写操作类型、对应的业务标识、ListKey和SubKey存储到所述写操作队列中的第一索引结构信息中。
12.根据权利要求11所述的系统,其特征在于,所述分布式处理系统还包括:
映射模块,用于所述合并模块将所述第一写请求和所述第二写请求合并为一个批量写请求之后,建立所述第一结构化数据对应的SubKey与第一链路文件描述符的第一映射关系以及所述第二结构化数据对应的SubKey与第二链路文件描述符的第二映射关系;
回包表生成模块,用于根据所述第一映射关系和所述第二映射关系生成回包表,并将所述回包表存储到所述批量写请求中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710138541.4A CN108572970B (zh) | 2017-03-09 | 2017-03-09 | 一种结构化数据的处理方法和分布式处理系统 |
PCT/CN2018/078086 WO2018161881A1 (zh) | 2017-03-09 | 2018-03-06 | 结构化数据的处理方法、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710138541.4A CN108572970B (zh) | 2017-03-09 | 2017-03-09 | 一种结构化数据的处理方法和分布式处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108572970A true CN108572970A (zh) | 2018-09-25 |
CN108572970B CN108572970B (zh) | 2022-07-08 |
Family
ID=63447310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710138541.4A Active CN108572970B (zh) | 2017-03-09 | 2017-03-09 | 一种结构化数据的处理方法和分布式处理系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108572970B (zh) |
WO (1) | WO2018161881A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110191168A (zh) * | 2019-05-23 | 2019-08-30 | 北京百度网讯科技有限公司 | 在线业务数据的处理方法、装置、计算机设备和存储介质 |
CN112612771A (zh) * | 2020-11-24 | 2021-04-06 | 深圳市和讯华谷信息技术有限公司 | 一种数据写入方法及系统 |
CN113126919A (zh) * | 2021-04-02 | 2021-07-16 | 山东英信计算机技术有限公司 | 一种RocksDB性能提升方法、系统及存储介质 |
CN113836238A (zh) * | 2021-09-30 | 2021-12-24 | 杭州数梦工场科技有限公司 | 数据命令的批量处理方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985944A (zh) * | 2019-05-21 | 2020-11-24 | 北京沃东天骏信息技术有限公司 | 物料数据的处理方法、装置、设备及存储介质 |
CN111782648B (zh) * | 2020-06-23 | 2023-08-18 | 中国平安人寿保险股份有限公司 | 结构化数据处理方法、装置、计算机设备及存储介质 |
CN112817530A (zh) * | 2021-01-22 | 2021-05-18 | 万得信息技术股份有限公司 | 一种多线程安全高效读写有序数据的方法 |
CN113377792A (zh) * | 2021-06-10 | 2021-09-10 | 上海微盟企业发展有限公司 | 一种数据回写方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030229650A1 (en) * | 2002-06-06 | 2003-12-11 | International Business Machines Corporation | Method and apparatus for selective caching of transactions in a computer system |
US20060041593A1 (en) * | 2004-08-17 | 2006-02-23 | Veritas Operating Corporation | System and method for communicating file system events using a publish-subscribe model |
CN104243395A (zh) * | 2013-06-06 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 一种高频次写操作方法、接口机及系统 |
CN104679881A (zh) * | 2015-03-13 | 2015-06-03 | 华为技术有限公司 | 一种并发控制方法及装置 |
CN106202459A (zh) * | 2016-07-14 | 2016-12-07 | 华南师范大学 | 虚拟化环境下的关系型数据库存储性能优化方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685406A (zh) * | 2008-09-27 | 2010-03-31 | 国际商业机器公司 | 用于对数据结构的实例进行操作的方法和系统 |
US9613122B2 (en) * | 2014-05-02 | 2017-04-04 | Facebook, Inc. | Providing eventual consistency for multi-shard transactions |
CN106293491B (zh) * | 2015-05-13 | 2019-07-09 | 华为技术有限公司 | 写请求的处理方法和内存控制器 |
-
2017
- 2017-03-09 CN CN201710138541.4A patent/CN108572970B/zh active Active
-
2018
- 2018-03-06 WO PCT/CN2018/078086 patent/WO2018161881A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030229650A1 (en) * | 2002-06-06 | 2003-12-11 | International Business Machines Corporation | Method and apparatus for selective caching of transactions in a computer system |
US20060041593A1 (en) * | 2004-08-17 | 2006-02-23 | Veritas Operating Corporation | System and method for communicating file system events using a publish-subscribe model |
CN104243395A (zh) * | 2013-06-06 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 一种高频次写操作方法、接口机及系统 |
CN104679881A (zh) * | 2015-03-13 | 2015-06-03 | 华为技术有限公司 | 一种并发控制方法及装置 |
CN106202459A (zh) * | 2016-07-14 | 2016-12-07 | 华南师范大学 | 虚拟化环境下的关系型数据库存储性能优化方法及系统 |
Non-Patent Citations (1)
Title |
---|
牟帅: "分布式事务并发控制关键技术研究", 《中国博士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110191168A (zh) * | 2019-05-23 | 2019-08-30 | 北京百度网讯科技有限公司 | 在线业务数据的处理方法、装置、计算机设备和存储介质 |
CN112612771A (zh) * | 2020-11-24 | 2021-04-06 | 深圳市和讯华谷信息技术有限公司 | 一种数据写入方法及系统 |
CN113126919A (zh) * | 2021-04-02 | 2021-07-16 | 山东英信计算机技术有限公司 | 一种RocksDB性能提升方法、系统及存储介质 |
CN113836238A (zh) * | 2021-09-30 | 2021-12-24 | 杭州数梦工场科技有限公司 | 数据命令的批量处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2018161881A1 (zh) | 2018-09-13 |
CN108572970B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572970A (zh) | 一种结构化数据的处理方法和分布式处理系统 | |
CN108647361B (zh) | 一种基于区块链的数据存储方法、装置及系统 | |
CN107995169B (zh) | 一种基于微服务架构的手机游戏服务端框架系统 | |
CN108664650B (zh) | 一种区块链网络的事务处理方法、装置、设备及存储介质 | |
CN103595790B (zh) | 设备远程访问的方法、瘦客户端和虚拟机 | |
CN108132987A (zh) | 一种数据查询系统及方法 | |
CN109597640B (zh) | 一种应用程序的账号管理方法、装置、设备和介质 | |
CN106815254A (zh) | 一种数据处理方法和装置 | |
CN110363663B (zh) | 基于区块链的数据批量处理方法、装置、设备及存储介质 | |
CN108132868A (zh) | 一种数据监控方法、装置、计算设备及存储介质 | |
CN106021566A (zh) | 一种提高单台数据库并发处理能力的方法、装置及系统 | |
CN107391672A (zh) | 数据的读写方法及消息化的分布式文件系统 | |
CN111127232A (zh) | 兴趣圈发现方法、装置、服务器和介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN114116908A (zh) | 一种数据管理方法、装置及电子设备 | |
CN108510071B (zh) | 数据的特征提取方法、装置及计算机可读存储介质 | |
CN113382075A (zh) | 企业信息管理平台、管理方法、电子设备及存储介质 | |
CN107169098B (zh) | 数据搬运方法、数据搬运装置及电子设备 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
CN109783559A (zh) | 房产交易数据的获取方法、装置、电子设备以及存储介质 | |
CN111026818A (zh) | 一种多对象关联视图构建方法、终端设备及存储介质 | |
CA3194547C (en) | System and method for automatic theming of a plurality thought objects | |
CN108595924A (zh) | 一种业务权限管理方法、装置、计算机设备及存储介质 | |
US11093935B2 (en) | System and methods for a resource-saving exchange protocol based on trigger-ready envelopes among distributed nodes | |
US20240160365A1 (en) | Integrated online and on-premises information system |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230914 Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |