CN113849574A - 一种数据处理方法及前端、计算机可读存储介质 - Google Patents

一种数据处理方法及前端、计算机可读存储介质 Download PDF

Info

Publication number
CN113849574A
CN113849574A CN202010598597.XA CN202010598597A CN113849574A CN 113849574 A CN113849574 A CN 113849574A CN 202010598597 A CN202010598597 A CN 202010598597A CN 113849574 A CN113849574 A CN 113849574A
Authority
CN
China
Prior art keywords
metadata
storage server
data processing
version number
log
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
Application number
CN202010598597.XA
Other languages
English (en)
Inventor
张露
夏晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010598597.XA priority Critical patent/CN113849574A/zh
Publication of CN113849574A publication Critical patent/CN113849574A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据处理方法及装置、计算机可读存储介质,所述方法包括前端接收到用户的数据处理请求,前端中存储有元数据及其对应的版本号;如果数据处理请求为读操作请求,前端确定元数据的版本号是否符合数据处理请求;如果符合,前端根据前端中存储的元数据为用户返回数据;如果不符合,前端从元数据存储服务器获得最新的元数据,并根据最新的元数据为用户返回数据;如果数据处理请求为写操作请求,前端根据数据处理请求对前端中存储的元数据和元数据存储服务器的元数据进行写更新。本申请使得多个前端可以并发处理用户的读写请求,提升了分布式系统的扩展性。

Description

一种数据处理方法及前端、计算机可读存储介质
技术领域
本申请涉及但不限于数据处理技术领域,尤其涉及一种数据处理方法及前端、计算机可读存储介质。
背景技术
分布式联机分析处理(On-Line Analytical Processing,OLAP)系统通过前端(Front-end,FE)组件,处理用户端发送的请求。为了提高每秒查询率(Queries-per-second,QPS),增强用户体验,往往需要多个前端同时提供服务来保证高可用。前端在提供服务的时候需要查询或更改元数据(Metadata),例如,在做数据定义语言(DataDefinition Language,DDL)操作时,需要写元数据;在做数据操纵语言(DataManipulation Language,DML)操作时,需要读元数据。为了保证数据的一致性,需要一套数据处理机制来同步各个前端之间的元数据。
发明内容
本申请提供了一种数据处理方法及前端、计算机可读存储介质,能够使得多个前端可以并发处理用户的读写请求。
本申请实施例提供了一种数据处理方法,包括:前端接收到用户的数据处理请求,所述前端中存储有元数据及其对应的版本号;如果所述数据处理请求为读操作请求,所述前端确定所述元数据的版本号是否符合所述数据处理请求;如果符合,则所述前端根据所述前端中存储的元数据为所述用户返回数据;如果不符合,则所述前端从元数据存储服务器获得最新的元数据,并根据所述最新的元数据为所述用户返回数据;如果所述数据处理请求为写操作请求,则所述前端根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新。
在一些可能的实现方式中,所述前端从元数据存储服务器获得最新的元数据,包括:所述前端读取所述元数据存储服务器的日志序列;根据所述日志序列确认日志增量;根据所述日志增量获得最新的元数据。
在一些可能的实现方式中,所述根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新,包括:根据所述数据处理请求生成改动的数据项;生成可执行的日志发送给所述元数据存储服务器,以使所述元数据存储服务器根据所述可执行的日志对所述元数据存储服务器的元数据进行写更新;根据所述改动的数据项更新所述前端中存储的元数据以及日志序列。
在一些可能的实现方式中,所述方法还包括:所述前端接收所述元数据存储服务器的更新响应;如果所述更新响应为更新成功,本次更新操作完成;如果所述更新响应为版本号错误,所述前端根据所述更新响应重新更新所述前端中元数据的版本号,并将更新后的版本号发送至所述元数据存储服务器。
在一些可能的实现方式中,所述方法还包括:所述前端每隔预设周期从所述元数据存储服务器获取当前最新版本号;比较所述前端存储的元数据的版本号与当前最新版本号,如果所述前端存储的元数据的版本号低于当前最新版本号,所述前端从所述元数据存储服务器获取增量更新日志,根据所述增量更新日志更新所述前端存储的元数据和版本号。
在一些可能的实现方式中,所述前端接收所述元数据存储服务器的元数据更新通知;根据所述元数据更新通知从所述元数据存储服务器获取增量更新日志,根据所述增量更新日志更新所述前端存储的元数据和版本号。
本申请实施例还提供了一种前端,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如以上任意一项所述的数据处理方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如以上任意一项所述的数据处理方法的步骤。
本申请实施例还提供了一种前端,包括数据存储模块、请求接收模块和请求处理模块,其中:所述数据存储模块,用于存储元数据及其对应的版本号;所述请求接收模块,用于接收用户的数据处理请求;所述请求处理模块,用于当所述数据处理请求为读操作请求时,确定所述元数据的版本号是否符合所述数据处理请求;如果符合,根据所述前端中存储的元数据为所述用户返回数据;如果不符合,从元数据存储服务器获得最新的元数据,并根据所述最新的元数据为所述用户返回数据;当所述数据处理请求为写操作请求时,根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新。
在一些可能的实现方式中,所述请求处理模块根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新,包括:根据所述数据处理请求生成改动的数据项;生成可执行的日志发送给所述元数据存储服务器,以使所述元数据存储服务器根据所述可执行的日志对所述元数据存储服务器的元数据进行写更新;根据所述改动的数据项更新所述前端中存储的元数据以及日志序列。
本申请实施例提供的数据处理方法及前端、计算机可读存储介质,通过为元数据设置版本号并根据版本号处理用户的数据处理请求,使得多个前端可以并发处理用户的读写操作请求,提升了分布式系统的扩展性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为相关技术中的一种元数据管理系统的结构示意图;
图2为相关技术中的另一种元数据管理系统的结构示意图;
图3为本申请实施例的一种数据处理方法的流程示意图;
图4为本申请实施例的一种数据处理系统的结构示意图;
图5为本申请实施例的一种读操作请求的处理过程示意图;
图6为本申请实施例的一种前端的结构示意图;
图7为本申请实施例的一种元数据管理系统的应用场景示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
相关技术通过Postgres(加州大学开发的一种数据管理系统)模式或Greenplum(基于Postgres开发的面向数据仓库应用的关系型数据库)模式来同步各个前端之间的元数据,但是,Postgres模式和Greenplum模式中多个前端不对等。如图1所示,Postgres模式采用主从模式的架构,一个前端充当主(Master)服务器,其它前端充当从(Slave)服务器;主服务器处理读写请求,从服务器只处理读请求,主服务器压力较大。如图2所示,Greenplum采用基于Postgres的分布式主从架构,主节点接收客户端的连接和结构化查询语言(Structured Query Language,SQL)语句,从(Segment)节点存储数据并执行主节点分配的数据操作,即只有主节点能够处理读写请求,从节点不提供读服务,也不提供写服务,因此,主节点压力仍然较大。
如图3所示,本申请实施例提供了一种数据处理方法,该方法包括步骤301至步骤306。
步骤301包括:前端接收到用户的数据处理请求,所述前端中存储有元数据及其对应的版本号。
在本申请实施例中,前端指的是一个专门接收并处理用户发出的数据处理请求的组件,对于分布式系统中,一个系统往往有多个前端。
任何存储系统中的数据分为实际数据(Data)和元数据(Metadata)。元数据指用来描述存储系统中一个文件,块设备或者对象的特征的系统数据,诸如访问权限、拥有者以及数据块的分布信息等等。元数据通常被称作“关于数据的数据”,即用于描述其它数据的数据。例如,用户的某个文件称为“数据”,在存储系统中,这个文件的元数据一般用于指示这个文件的名称、大小、创建时间、修改时间、所属用户、存储位置等。
为了区别不同前端不同时间产生的元数据,本申请采用版本号的方式对元数据进行区分,该版本号的具体设定规则可根据实际需求进行灵活设计,例如,该版本号可以为一系列递增的序列号,相邻的序列号之间可以连续,也可以不连续,示例性的,该序列号可以根据元数据产生时的时间生成。该版本号可以为纯数字,也可以由数字和字符组合而成,字符可以为纯字母、纯符号或者字母和符号的组合,本申请对此不作限制。本申请通过对元数据进行多版本的设计,使得各个前端之间的读写操作能够并发执行。
在具体实施中,在分布式系统中的某一时刻,每个前端都存储有一个版本的元数据,但是,每个前端存储的元数据的版本不一定相同,也并不一定是系统最新的元数据。
步骤302包括:前端判断用户的数据处理请求为读操作请求或写操作请求,如果为读操作请求,转到步骤303执行;如果为写操作请求,转到步骤306执行。
在一种示例性实施例中,该数据处理请求可以为读操作或者写操作。
步骤303包括:前端确定自身存储的元数据的版本号是否符合数据处理请求,如果符合,转到步骤304;如果不符合,转到步骤305;
在一种示例性实施例中,该读操作请求中包括要读取的元数据的版本号。
在一种示例性实施例中,版本号较小的元数据版本较低,也即,版本号较小的元数据的产生时间较早。
步骤304包括:前端根据前端中存储的元数据为用户返回数据。
在本步骤中,由于本地存储的元数据的版本号高于或等于用户要读取的元数据的版本号,因此,前端直接将本地存储的元数据发送至用户。
步骤305包括:前端从元数据存储服务器获得最新的元数据,并根据最新的元数据为用户返回数据。
本申请实施例通过元数据存储服务器集中存储各个版本的元数据的日志序列。在一些示例性实施例中,元数据存储服务器可以通过分布式文件系统实现,以保证高可靠性。
在一种示例性实施例中,前端从元数据存储服务器获得最新的元数据,包括如下步骤:
步骤3051:前端读取元数据存储服务器的日志序列;
步骤3052:前端根据日志序列确认日志增量;
步骤3053:前端根据日志增量获得最新的元数据。
本实施例中,日志序列中可以包括一个或多个版本号以及各个版本号对应的元数据操作日志。各个版本号对应的元数据操作日志可以来自同一个前端,也可以来自不同的前端。
在本步骤中,用户向前端发送读操作请求后,可以启动一个定时器,每隔第一时间间隔t,如果没有收到前端针对该读操作请求的响应,用户再重新发送该读操作请求,并重新启动定时,直到收到前端针对该读操作请求的响应,或者,本次操作的重试次数达到预设的重试次数n且在等待时长n*t内,均没有收到前端针对该读操作请求的响应为止。
步骤306包括:前端根据数据处理请求对前端中存储的元数据和元数据存储服务器的元数据进行写更新。
在一些示例性实施例中,前端根据数据处理请求对前端中存储的元数据和元数据存储服务器的元数据进行写更新,包括如下步骤:
步骤3061:根据数据处理请求生成改动的数据项;
步骤3062:生成可执行的日志发送给元数据存储服务器,以使元数据存储服务器根据可执行的日志对元数据存储服务器的元数据进行写更新;
步骤3063:根据改动的数据项更新前端中存储的元数据以及日志序列。
在本申请实施例中,各个前端将可执行的日志发送至元数据存储服务器之后,元数据存储服务器检测更新的版本号是否可用,如果元数据存储服务器检测到更新的版本号可用,则将接收到的可执行的日志存储至元数据操作日志中,并根据更新的版本号更新当前最新版本号,发送更新成功响应至相应的一个或多个前端。如果元数据存储服务器检测到更新的版本号不可用,例如,当元数据存储服务器同时收到多个前端的可执行的日志且多个前端的更新的版本号存在冲突时,或者当元数据存储服务器收到某个前端的更新的版本号小于或等于当前最新版本号时,则发送版本号错误至相应的一个或多个前端。元数据存储服务器作为一个中枢系统,对各个前端发送的内容,进行检测和排序整理,保证各个前端的读写请求有序且互不冲突,从而完成了并发情况下不同前端的请求同步问题。
如图4所示,由于各个前端之间的读写操作能够并发执行,各个前端的地位完全对等,用户的数据处理请求可以被发送给任意一个前端。
在一些示例性实施例中,该数据处理方法还包括如下步骤:
步骤307:前端接收元数据存储服务器的更新响应;
步骤308:如果更新响应为更新成功,本次更新操作完成;
步骤309:如果更新响应为版本号错误,前端根据更新响应重新更新前端中元数据的版本号,并将更新后的版本号发送至元数据存储服务器。
在本申请实施例中,由用户的写操作请求产生的可执行的日志不断的从各个前端传送到元数据存储服务器,同时各个前端不断的重放从元数据存储服务器拉取回来的可执行的日志,来实现各个前端之间的元数据的同步。
在一些示例性实施例中,该数据处理方法还包括如下步骤:
步骤307′:前端每隔预设周期从元数据存储服务器获取当前最新版本号;
步骤308′:比较前端存储的元数据的版本号与当前最新版本号,如果前端存储的元数据的版本号低于当前最新版本号,前端从元数据存储服务器获取增量更新日志,根据增量更新日志更新前端存储的元数据和版本号。
在一些示例性实施例中,根据增量更新日志更新前端存储的元数据和版本号,包括如下步骤:
前端按照从当前存储的元数据的版本号至当前最新版本号的执行顺序,在本地重放从当前存储的元数据的版本号至当前最新版本号之间的可执行的日志。
在另一些示例性实施例中,该数据处理方法还包括如下步骤:
步骤307″:前端接收元数据存储服务器的元数据更新通知;
步骤308″:前端根据元数据更新通知从元数据存储服务器获取增量更新日志,根据增量更新日志更新前端存储的元数据和版本号。
在本实施例中,当元数据存储服务器每次收到某个前端发送的可执行的日志,且元数据存储服务器发送更新成功的更新响应之后,向除该前端之外的其他前端发送元数据更新通知,以使得除该前端之外的其他前端可以及时更新本地的元数据。
在一种示例性实施例中,本申请实施例的数据处理方法的工作流程如下:
(1)用户的数据处理请求被发送给任意一个前端。
(2)该前端接收用户的数据处理请求,下面分读写两种情况进行描述:
读操作请求:根据不同请求对象,读取本地已有的元数据,判断本地的元数据的版本号是否高于或等于读操作请求中的版本号,若是则将本地的元数据发送至该用户,若否,则从元数据存储服务器读取当前最新版本号,并拉取从本地的元数据的版本号至当前最新版本号之间的增量更新日志,在本地重放该增量更新日志,以使得本地的元数据和元数据存储服务器上当前最新版本的元数据一致,然后将本地的元数据发送至该用户。
写操作请求:直接根据写操作请求中的内容(需要改动的元数据对应项),生成可执行的日志,并发送给元数据存储服务器。
(3)在接收和执行数据处理请求的同时,前端也一直在同步执行从元数据存储服务器拉取增量更新日志并重放的操作,以尽量同步本地的元数据至当前最新版本。
(4)写操作请求产生的可执行的日志不断的从各个前端传送到元数据存储服务器,同时,前端不断的重放从元数据存储服务器拉取回来的增量更新日志,来实现各个前端之间的元数据同步和一致。
(5)由于各个前端一直都在接收请求,元数据存储服务器上的元数据不断在更新,因此,某个前端的写操作请求都会带上一个版本号,这种多版本的设计实现了并发读写。
相关技术中无论是Postgres还是Greenplum,在读写元数据的时候,只能有一个前端写,其他的前端最多也只能处于可读的状态,其主要原因是它们均采用主从结构,只有一个主前端在同步元数据到其他的从前端,元数据的流动是单向的,为了保证一致性,所以只能有一个前端写,其他的前端最多只能做到读。
而本申请实施例中,用户的写操作请求产生的可执行的日志不仅仅写入接收到该请求的前端中,该前端也会把产生的可执行的日志复制到集中存储元数据操作日志的元数据存储服务器上。元数据存储服务器作为一个中枢系统,根据请求的时间和内容,排序、整理、检查各个请求,保证各个请求之间有序且不冲突,这样完成了并发情况下不同前端的请求同步问题。
元数据存储服务器在完成写更新的同时,也在不断的和各个前端交互,各个前端不断的从元数据存储服务器获取当前最新版本号,如果本地的版本号不是当前最新版本号,则拉取两者之间的增量更新日志,并在本地重放以实现元数据同步。
本申请实施例中,如图5所示,用户在发送元数据读请求之后,可以加入重试机制,如果在预设的第一时间间隔内没有接收到该前端的回复,并不直接退出,而是按照预设的重试次数进行重试,在用户进行重试的同时,前端会去元数据存储服务器拉取本地的版本号至当前最新版本号之间的增量更新日志,并在本地重放以实现元数据同步,从而使得该用户最终可以读取到满足版本要求的元数据。本申请的各个前端之间不是强一致而是具有最终一致性。
本申请通过为元数据引入多版本控制的设计,各个前端之间的元数据不是强一致而是最终一致(各个前端的元数据在某一个版本上具有一致性),从而使得各个前端能够并发处理用户的读写请求。
本申请实施例通过为元数据设置版本号并根据本地的元数据的版本号从元数据存储服务器获取增量更新日志,使得多个前端均可以并发处理用户的读写操作请求,实现了多点写入和读写并发执行的效果,各个前端完全对等,各个前端的元数据具有最终一致性,在DDL请求不多的场景下可以实现较高的每秒查询率(每秒查询率是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准),同时支持线性扩展。
基于同一发明构思,本申请实施例还提供了一种前端,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如以上任意一项所述的数据处理方法的步骤。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如以上任意一项所述的数据处理方法的步骤。
基于同一发明构思,如图6所示,本申请实施例还提供了一种前端,包括数据存储模块601、请求接收模块602和请求处理模块603。
其中,数据存储模块601,用于存储元数据及其对应的版本号;
请求接收模块602,用于接收用户的数据处理请求。
请求处理模块603,用于当数据处理请求为读操作请求时,确定元数据的版本号是否符合数据处理请求;如果符合,根据前端中存储的元数据为用户返回数据;如果不符合,从元数据存储服务器获得最新的元数据,并根据最新的元数据为用户返回数据;当数据处理请求为写操作请求时,根据数据处理请求对前端中存储的元数据和元数据存储服务器的元数据进行写更新。
在一种示例性实施例中,请求处理模块603从元数据存储服务器获得最新的元数据,包括:读取元数据存储服务器的日志序列;根据日志序列确认日志增量;根据日志增量获得最新的元数据。
在一种示例性实施例中,请求处理模块603根据数据处理请求对前端中存储的元数据和元数据存储服务器的元数据进行写更新,包括:根据数据处理请求生成改动的数据项;生成可执行的日志发送给元数据存储服务器,以使元数据存储服务器根据可执行的日志对所述元数据存储服务器的元数据进行写更新;根据改动的数据项更新前端中存储的元数据以及日志序列。
在一种示例性实施例中,请求处理模块603,还用于接收元数据存储服务器的更新响应;如果更新响应为更新成功,本次更新操作完成;如果更新响应为版本号错误,根据更新响应重新更新版本号,并将更新后的版本号发送至元数据存储服务器。
在一种示例性实施例中,该前端还包括第一数据更新模块,该第一数据更新模块,用于每隔预设周期从元数据存储服务器获取当前最新版本号;比较前端存储的元数据的版本号与当前最新版本号,如果前端存储的元数据的版本号低于当前最新版本号,从元数据存储服务器获取增量更新日志,根据增量更新日志更新前端存储的元数据和版本号。
在另一种示例性实施例中,该前端还包括第二数据更新模块,该第二数据更新模块,用于接收元数据存储服务器的元数据更新通知;根据元数据更新通知从元数据存储服务器获取增量更新日志,根据增量更新日志更新前端存储的元数据和版本号。
在一种示例性实施例中,第一数据更新模块或第二数据更新模块根据增量更新日志更新前端存储的元数据和版本号,包括:按照从前端存储的元数据的版本号至当前最新版本号的执行顺序,在本地重放前端存储的元数据的版本号至当前最新版本号之间的可执行的日志。
本申请实施例的前端,通过为元数据设置版本号并从元数据存储服务器获取增量更新日志,使得多个前端可以并发处理用户的读写操作请求,提升了分布式系统的扩展性。
基于同一发明构思,本申请实施例还提供了一种数据处理方法,应用于云端服务器,云端服务器包括多个前端和至少一个元数据存储服务器,每个前端存储有一个版本的元数据及其对应的版本号,元数据存储服务器存储有多个版本的元数据及其对应的版本号,该数据处理包括如下步骤:
任意一个前端接收用户的数据处理请求;
如果数据处理请求为读操作请求,该前端确定该前端自身存储的元数据的版本号是否符合数据处理请求;如果符合,该前端根据该前端自身存储的元数据为用户返回数据;如果不符合,该前端从元数据存储服务器获得最新的元数据,并根据最新的元数据为用户返回数据;
如果数据处理请求为写操作请求,该前端根据数据处理请求对该前端自身存储的元数据和元数据存储服务器的元数据进行写更新。
在一种示例性实施例中,用户可以为管理多个客户端的服务商,也可以为终端用户使用的客户端。
本实施例中,各个前端具体如何从元数据存储服务器获得最新的元数据、根据数据处理请求对该前端自身存储的元数据和元数据存储服务器的元数据进行写更新、如何更新自身存储的元数据等,请参照前文所述,此处不再赘述。
在一种示例性的应用场景中,如图7所示,在一种情况下,客户端发送读操作请求至服务商,服务商转发客户端的读操作请求至云端服务器中的任意一个前端,云端服务器中的该前端确定该前端自身存储的元数据的版本号是否符合数据处理请求;如果符合,该前端根据该前端自身存储的元数据为服务商返回数据;如果不符合,该前端从元数据存储服务器获得最新的元数据,并根据最新的元数据为服务商返回数据。服务商接收到返回的数据后,发送返回的数据至客户端,完成本次读操作。
在另一种情况下,客户端发送写操作请求至服务商,服务商转发客户端的写操作请求至云端服务器中的任意一个前端,云端服务器中的该前端根据数据处理请求对该前端自身存储的元数据和元数据存储服务器的元数据进行写更新,并发送写操作响应至服务商。服务商接收到写操作响应后,发送写操作响应至客户端,完成本次写操作。
本实施例中,云端服务器中的元数据存储服务器负责存储多个版本的元数据及对应的版本信息,云端服务器中的多个前端对外提供云存储服务,并发处理用户的读写请求。本申请提供的数据处理方法能够在日益庞大的元数据量的情况下,稳定可靠的提供数据存储服务,实现了具有高可靠、性能优异、易维护、扩展性强、高密度的超大规模低成本的存储系统,具有较强的可实施性,可以为服务商或终端客户提供高质量的服务。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
前端接收到用户的数据处理请求,所述前端中存储有元数据及其对应的版本号;
如果所述数据处理请求为读操作请求,所述前端确定所述元数据的版本号是否符合所述数据处理请求;如果符合,则所述前端根据所述前端中存储的元数据为所述用户返回数据;如果不符合,则所述前端从元数据存储服务器获得最新的元数据,并根据所述最新的元数据为所述用户返回数据;
如果所述数据处理请求为写操作请求,则所述前端根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新。
2.根据权利要求1所述的方法,其特征在于,所述前端从元数据存储服务器获得最新的元数据,包括:
所述前端读取所述元数据存储服务器的日志序列;
所述前端根据所述日志序列确认日志增量;
所述前端根据所述日志增量获得最新的元数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新,包括:
根据所述数据处理请求生成改动的数据项;
生成可执行的日志发送给所述元数据存储服务器,以使所述元数据存储服务器根据所述可执行的日志对所述元数据存储服务器的元数据进行写更新;
根据所述改动的数据项更新所述前端中存储的元数据以及日志序列。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述前端接收所述元数据存储服务器的更新响应;
如果所述更新响应为更新成功,本次更新操作完成;
如果所述更新响应为版本号错误,所述前端根据所述更新响应重新更新所述前端中元数据的版本号,并将更新后的版本号发送至所述元数据存储服务器。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述前端每隔预设周期从所述元数据存储服务器获取当前最新版本号;
比较所述前端存储的元数据的版本号与当前最新版本号,如果所述前端存储的元数据的版本号低于当前最新版本号,所述前端从所述元数据存储服务器获取增量更新日志,根据所述增量更新日志更新所述前端存储的元数据和版本号。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述前端接收所述元数据存储服务器的元数据更新通知;
根据所述元数据更新通知从所述元数据存储服务器获取增量更新日志,根据所述增量更新日志更新所述前端存储的元数据和版本号。
7.一种前端,其特征在于,包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至6任意一项所述的数据处理方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述的数据处理方法的步骤。
9.一种前端,其特征在于,包括数据存储模块、请求接收模块和请求处理模块,其中:
所述数据存储模块,用于存储元数据及其对应的版本号;
所述请求接收模块,用于接收用户的数据处理请求;
所述请求处理模块,用于当所述数据处理请求为读操作时,确定所述元数据的版本号是否符合所述数据处理请求;如果符合,根据所述前端中存储的元数据为所述用户返回数据;如果不符合,从元数据存储服务器获得最新的元数据,并根据所述最新的元数据为所述用户返回数据;当所述数据处理请求为写操作时,根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新。
10.根据权利要求9所述的前端,其特征在于,所述请求处理模块根据所述数据处理请求对所述前端中存储的元数据和所述元数据存储服务器的元数据进行写更新,包括:
根据所述数据处理请求生成改动的数据项;
生成可执行的日志发送给所述元数据存储服务器,以使所述元数据存储服务器根据所述可执行的日志对所述元数据存储服务器的元数据进行写更新;
根据所述改动的数据项更新所述前端中存储的元数据以及日志序列。
CN202010598597.XA 2020-06-28 2020-06-28 一种数据处理方法及前端、计算机可读存储介质 Pending CN113849574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010598597.XA CN113849574A (zh) 2020-06-28 2020-06-28 一种数据处理方法及前端、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010598597.XA CN113849574A (zh) 2020-06-28 2020-06-28 一种数据处理方法及前端、计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113849574A true CN113849574A (zh) 2021-12-28

Family

ID=78972148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010598597.XA Pending CN113849574A (zh) 2020-06-28 2020-06-28 一种数据处理方法及前端、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113849574A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687168A (zh) * 2023-01-05 2023-02-03 北京志翔科技股份有限公司 文件操作通知系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687168A (zh) * 2023-01-05 2023-02-03 北京志翔科技股份有限公司 文件操作通知系统及方法

Similar Documents

Publication Publication Date Title
CN110209735B (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
CN106874281B (zh) 实现数据库读写分离的方法和装置
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
CN104283956A (zh) 强一致性分布式数据存储方法、装置及系统
CN111930788B (zh) 操作请求的处理方法、装置、设备、可读存储介质及系统
CN111414403A (zh) 数据访问方法和装置、数据存储方法和装置
CN110019530A (zh) 基于分布式数据库的事务处理方法及装置
CN115004662A (zh) 数据同步方法、装置、数据存储系统及计算机可读介质
US8073813B2 (en) Refresh and filter anchors
CN113849574A (zh) 一种数据处理方法及前端、计算机可读存储介质
CN110597764A (zh) 一种文件管理方法及装置
CN112596956B (zh) 一种文件系统管理方法、装置及相关组件
CN113761052B (zh) 数据库同步方法和装置
CN112000850B (zh) 进行数据处理的方法、装置、系统及设备
US7146385B1 (en) System and method for application-transparent synchronization with a persistent data store
CN108959548B (zh) 业务请求的处理方法及装置
CN111639087A (zh) 数据库中数据更新方法、装置和电子设备
CN116049306A (zh) 数据同步方法、装置、电子设备以及可读存储介质
CN113778975B (zh) 基于分布式数据库的数据处理方法及装置
CN109815213A (zh) 一种Append-Only数据库上删除和修改数据的方法及系统
CN105653566A (zh) 一种实现数据库写访问的方法及装置
US8630976B2 (en) Fast search replication synchronization processes
CN114372052A (zh) 数据变更记录的存储方法和装置、计算机设备、存储介质
CN113645309A (zh) 多客户端数据差异化二次缓存及同步的处理方法及系统
US20210326323A1 (en) Information processing device and information processing 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