CN114676166B - 数据处理方法及装置 - Google Patents

数据处理方法及装置 Download PDF

Info

Publication number
CN114676166B
CN114676166B CN202210579745.2A CN202210579745A CN114676166B CN 114676166 B CN114676166 B CN 114676166B CN 202210579745 A CN202210579745 A CN 202210579745A CN 114676166 B CN114676166 B CN 114676166B
Authority
CN
China
Prior art keywords
data
updating
node
module
writing module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210579745.2A
Other languages
English (en)
Other versions
CN114676166A (zh
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 China Co Ltd
Original Assignee
Alibaba China Co 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 China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210579745.2A priority Critical patent/CN114676166B/zh
Publication of CN114676166A publication Critical patent/CN114676166A/zh
Application granted granted Critical
Publication of CN114676166B publication Critical patent/CN114676166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/23Updating
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供数据处理方法及装置,其中所述数据处理方法应用于数据处理系统的数据读取模块,包括:确定待查询数据对应的目标数据节点;从所述目标数据节点中获取数据写入模块对应的更新数据查询端口;根据所述待查询数据的属性信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。从而避免了数据读取模块无法及时的获取到更新数据的问题,提高了数据写入模块与数据读取模块之间数据同步的时效性。

Description

数据处理方法及装置
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。
背景技术
随着互联网技术的不断发展及信息数据量的激增,很多的计算机应用领域会利用分布式文件系统进行数据存储。在分布式文件系统中存在很多边写入数据、边读取数据的情况发生,而在此过程中,需要保证数据写入端与数据读取端之间的数据同步;但是,由于数据存储量大、数据类型复杂等等原因,会导致数据写入端完成数据写入后,数据读取端无法及时的获取到写入的数据,因此,降低了数据写入端与数据读取端之间数据同步的时效性。
发明内容
有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,应用于数据处理系统的数据读取模块,包括:
确定待查询数据对应的目标数据节点;
从所述目标数据节点中获取数据写入模块对应的更新数据查询端口;
根据所述待查询数据的属性信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;
接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;
基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
根据本说明书实施例的第二方面,提供了一种数据处理装置,应用于数据处理系统的数据读取模块,包括:
确定模块,被配置为确定待查询数据对应的目标数据节点;
第一获取模块,被配置为从所述目标数据节点中获取数据写入模块对应的更新数据查询端口;
发送模块,被配置为根据所述待查询数据的属性信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;
接收模块,被配置为接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;
第二获取模块,被配置为基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据处理方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据处理方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述数据处理方法的步骤。
本说明书提供的数据处理方法,应用于数据处理系统的数据读取模块,包括:确定待查询数据对应的目标数据节点;从所述目标数据节点中获取数据写入模块对应的更新数据查询端口;根据所述待查询数据的属性信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
具体的,该方法通过数据写入模块对应的更新数据查询端口,将数据更新查询请求发送至数据写入模块;并基于接收到的数据写入模块发送的数据更新信息,从目标数据节点中获取待查询数据的更新数据,从而避免了数据读取模块无法及时的获取到更新数据的问题,提高了数据写入模块与数据读取模块之间数据同步的时效性。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法的应用场景示意图;
图2是本说明书一个实施例提供的一种数据处理方法中一种数据同步方案的示意图;
图3是本说明书一个实施例提供的一种数据处理方法中另一种数据同步方案的示意图;
图4是本说明书一个实施例提供的一种数据处理方法的流程图;
图5是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
分布式文件系统:若干物理机和网络组成的一个存储系统,对外暴露对文件的读写操作,用户不用关心数据写入到哪台机器,实现在任何可以和存储系统网络联通的系统中随时写入和读取数据。
一写多读:在分布式文件系统中,通常对于一个文件,在获得写锁后对于整个文件或者文件中的一段数据只能允许一个进程进行数据写入,但是允许其他进程可以读取文件的所有数据。
随着互联网技术的不断发展及信息数据量的激增,很多的计算机应用领域会利用分布式文件系统进行数据存储。在分布式文件系统中存在很多边写入数据、边读取数据的场景,新写入的数据何时能被消耗数据的模块看到并消耗,需要付出多大的代价,决定了使用数据的服务能做到的用户体验。例如,用户在访问网站点击页面,这些数据可能会以日志数据的方式流入到存储系统中,如果想实时统计当前用户对哪个页面最感兴趣,则需要将日志数据流入(该流入可以理解为输入至、发送至)系统中,并立即让系统中进行统计的模块看到有新数据写入,从而基于进行统计的模块完成实施统计。这个例子中统计模块就是消耗数据的模块。
再例如,在OSS(对象存储服务)中,当用户上传一个对象数据后,可能会有后续的后台操作需要对新写入的数据进行分类整理或者数据处理,数据能及时可见(即数据能够及时的被消耗数据的模块感知到),决定了后续处理数据的速度。同时由于数据存储量很大,这种写入数据和读取数据间的数据同步需要做到高效和并发,防止有分布式系统中由于有瓶颈点,导致数据同步的时效性降低的问题。
基于此,本说明书提供的一种方案为:在GFS类似架构的系统中,在写数据的时候需要调用特定接口后让数据对数据读取端(即数据读取模块)可见,会将新的数据长度提交请求给元数据服务,让元数据服务进行记录并可以被其他数据读取端查询到;数据读取端此时需要重新发送请求给元数据服务,查询到新的长度后来读取数据。但是,这个方案中,数据写入端(即数据写入模块)写完数据到数据读取端发现数据之间并没有任何的沟通机制,全靠上层使用数据的用户可以定期去执行数据同步的文件系统调用,实时性得不到保证;如果想做到实时,数据写入端和数据读取端都需要实时的频繁请求元数据服务(即元数据节点),使得元数据服务成为处理瓶颈。
基于此,在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种数据处理方法的应用场景示意图,参见图1,图1中提供了一种数据处理方法所应用的数据处理系统架构,该系统架构包括:目标数据节点102、数据写入模块104、数据读取模块106。其中,该目标数据节点102可以理解为分布式存储系统中的节点,该目标数据节点102,用于存储数据写入模块104写入的数据,以及该数据写入模块104所登记的服务端口。需要说明的是,该数据写入模块104写入的数据可以通过文件的方式存储在目标数据节点102中,该文件可以为任意一种文件类型,本说明书对此不做具体限制,例如,该文件可以为日志文件、二维表等等能够存储数据的文件。
在本说明书提供的一实施例中,本说明书提供的数据处理方法可以应用于分布式存储系统中;在数据处理方法应用于分布式存储系统的情况下,该分布式存储系统包括数据节点,以及与该数据节点对应的元数据节点,该元数据节点可以为存储文件元信息(元数据)的节点,或者元数据节点可以为存储文件元信息(元数据)的进程。例如元数据节点存储一个文件的id、长度、存储数据的位置、数据存储的介质这类信息;相对于元数据节点,还具有数据节点,数据节点是真正存储用户数据的节点;当用户(数据读取端或数据写入端)想访问自己存储的数据时,都必须先从元数据节点获得数据的存储位置和长度等信息,之后再和数据节点交互完成数据读写。此外,在元数据节点为进程的情况下,该元数据节点所运行的服务器可以为该元数据节点对应的数据节点。也即是说,与该数据节点对应的元数据节点,可以为运行在数据节点(服务器)中的一个进程。或者,在元数据节点为进程的情况下,该元数据节点所运行的服务器,可以为专用于运行该元数据节点的服务器,该元数据节点对应的数据节点可以为专用于存储数据的服务器。也即是说,运行该元数据节点的服务器独立于数据节点存在。
基于此,该目标数据节点102可以为数据节点和/或元数据节点。该数据节点用于存储数据写入模块104写入的数据,需要说明的是,该数据可以通过文件的方式存储在数据节点中,该文件可以为任意一种文件类型,本说明书对此不做具体限制,例如,该文件可以为日志文件、二维表等等能够存储数据的文件。
该数据节点对应的元数据节点用于存储该数据节点的元数据等数据,元数据节点存储的数据包括但不限于文件长度、文件的位置信息、文件等等。其中,文件长度可以表示了一个文件中存储的数据量,长度增加证明有新数据写入。因此,数据写入端增加长度,数据读取端看到长度增加后认为有新数据可以消费,就开始读取新写入的数据。此外,该数据写入模块104可以将自己提供的服务端口登记(该登记可以理解为存储、保存)在元数据节点中,便于后续数据读取模块106能够从该元数据节点中获取到该服务端口,该服务端口可以理解为建立数据写入模块104与数据读取模块106之间通讯的端口,例如,该服务端口可以为一个TCP/UDP的地址。
该数据写入模块104可以理解为向目标数据节点102中写入数据的模块,也即是,产生数据的模块,例如,该数据写入模块104可以为分布式存储系统中,需要向节点中写入数据的客户端。或者,该分布式存储系统中,需要向一个数据节点中写入数据的其它节点。或者,该数据写入模块可以为分布式存储系统中节点、客户端、服务器等设备中产生数据,并将产生的数据存储至数据节点的模块。
相应的,该数据读取模块106可以理解为从目标数据节点102中读取数据的模块,也即是,消费数据的模块,例如,该数据读取模块106可以为分布式存储系统中,需要从数据节点中读取数据的客户端。或者,该分布式存储系统中,需要从一个节点中读取所需数据的其它节点。或者,该数据读取模块可以为分布式存储系统中节点、客户端、服务器等设备中需要从数据节点中获取数据的模块。
在本说明书提供的一实施例中,本说明书提供的数据处理方法可以应用于服务器中;在数据处理方法应用于服务器的情况下,数据写入模块104可以为服务器中产生数据的模块,该数据读取模块106可以为服务器中消费数据的模块,该目标数据节点102可以为服务器中存储数据写入模块104写入的数据的模块。在此情况下,该数据写入模块104可以将自己提供的服务端口登记在目标数据节点102中,便于后续数据读取模块106能够从该目标数据节点102中获取到该服务端口,该服务端口可以理解为建立数据写入模块104与数据读取模块106之间通讯的端口,例如,该服务端口可以为一个API接口、套接字等等,本说明书对此不做具体限制。
具体的,本说明书提供的数据处理方法,为了解决数据读取模块106无法及时的获取到更新数据的问题,提高了数据写入模块104与数据读取模块106之间数据同步的时效性,利用元数据节点的低频率查询功能,可以建立起来数据读取端(数据读取模块106)和数据写入端(数据写入模块104)间的沟通桥梁,使得数据读取端和数据写入端之间通过数据写入端提供的服务端口进行通信,可以做到数据读取端实时更新到数据写入端的写入的新数据长度和位置等信息,防止元数据操作过多导致的系统处理瓶颈。并且,需要说明的是,本说明书的数据处理方法提供了两种数据同步方案可以解决读写这同步问题,同时可以消除文件系统中元数据的处理瓶颈。
其中,第一种方案的架构和请求交互可以参见图2,图2是本说明书一个实施例提供的一种数据处理方法中一种数据同步方案的示意图,具体包括如下步骤:
步骤201:数据写入端打开文件更新服务端口。
也即是,在数据写入端打开文件进行写操作的时候,可以在元数据节点登记自己的服务端口,告知数据读取端如果想获得最新的文件长度,可以向这个端口发送请求来获得。其中,该数据写入端包含有存储文件、该存储文件最新写入长度,以及文件长度查询服务。而该文件长度查询服务可以理解为为数据读取端提供的、针对文件长度进行查询的服务。
具体的,数据写入端向分布式存储系统的数据节点发送数据写入请求,该数据写入请求中携带有需要写入至数据节点中的数据。而该数据节点会在接收到该数据写入请求后,将数据写入请求中携带的数据进行存储,从而完成数据的写入。
同时,该数据写入端在数据节点中写入数据的过程中,会确定该数据节点对应的元数据节点,并将自己的提供给数据读取端的服务端口登记在元数据节点中,便于后续数据读取端如果想获得最新的文件长度,可以向这个端口发送请求来获得。其中,该数据节点与元数据节点之间可以是一对一的关系,也可以为一对多、或多对一的关系,本说明书对此不做具体限制。
其中,该文件长度可以用于表征文件是否存在更新的信息,在实际应用中,数据写入端会不断的向文件中写入数据。因此,当数据读取端确定文件长度出现变化时,即可确定该文件中有更新数据。后续数据读取端在确定文件有更新数据时,为了保证数据同步会及时的从数据节点中获取更新数据。
步骤202:打开文件获取数据写入端的服务端口。
也即是,在数据读取端打开文件读的时候,数据读取端可以从元数据节点获得数据写入端登记的端口,在后续读取过程中使用。其中,在本方案中数据读取端包含文件、该文件对应的可读取长度;并且需要说明的是,该元数据节点可以存储有文件、文件长度、文件的元数据、元数据可见长度等等,以及数据写入端登记的数据写入端的服务端口。
具体的,数据读取端在本地打开文件进行读取时,为了避免本地保存的文件中的数据为历史数据,因此需要确定该文件是否有更新,若是,则从数据节点中获取更新的数据。基于此,在数据读取端实时检测该文件是否有更新以及获取更新数据的过程中,首先,数据读取端需要从元数据节点中获取数据写入端登记的服务端口。
步骤203:数据读取端频繁进行定期更新。
也即是,数据读取端在读取数据后,立即触发一次查询文件长度的请求给数据写入端,并根据最新的长度继续读取数据。或者,如果长度没有更新,则根据实时性要求,定期发送请求给数据写入端查询新长度并读取。
具体的,数据读取端从元数据节点中获取数据写入端登记的服务端口之后,在数据读取端打开文件进行数据读取时,为了保证数据的时效性,会立刻通过服务端口向数据写入端发送携带有文件标识的文件长度查询请求。该数据写入端在接收到该文件长度查询请求之后,会确定与该请求中携带的文件标识对应的文件,并将该文件的文件长度发送给数据读取端。
或者数据读取端会根据实时性要求,即按照特定的时间频率(例如1秒钟、10秒钟等),定期通过服务端口向数据写入端发送携带有文件标识的文件长度查询请求。该数据写入端在接收到该文件长度查询请求之后,会确定与该请求中携带的文件标识对应的文件,并将该文件的文件长度发送给数据读取端。
该数据读取端在接收到该文件长度之后,将该文件长度与本地保存文件的文件长度进行比较,在确定两者不一致时,则确定该文件存在更新。反之,则确定文件未更新。
在确定文件更新的情况下,该数据读取端会从存储该文件的数据节点中,获取该文件的更新数据,也即是,该文件中被新写入的数据,从而避免读写不同步的问题。
此外,当数据写入端异常退出后,造成端口失效的情况下,也即是,该数据写入端因为断网、死机、停电等等因素无法正常提供服务时,则确定该数据写入端异常退出,因此进一步导致该服务端口失效,无法与数据读取端进行通信。在此情况下,数据读取端可以重新去查询元数据节点,从该元数据节点获得新数据写入端提供的服务端口,并继续执行第203步的数据读取过程。其中,该新数据写入端是在旧数据写入端出现故障时,为了保证服务正常执行所创建的新的数据写入端,该新数据写入端与旧数据写入端共同维护同一个文件。
其中,第二种方案的架构和请求交互可以参见图3,图3是本说明书一个实施例提供的一种数据处理方法中另一种数据同步方案的示意图,具体包括如下步骤:
步骤301:数据写入端打开文件更新服务端口。
也即是,在数据写入端打开文件写的时候,可以在元数据节点登记自己的一个服务端口,告知数据读取端如果想获得最新的文件长度,可以向这个端口发送请求来获得。
具体的,数据写入端向分布式存储系统的数据节点发送数据写入请求,该数据写入请求中携带有需要写入至数据节点中的数据。而该数据节点会在接收到该数据写入请求后,将数据写入请求中携带的数据进行存储,从而完成数据的写入。
同时,该数据写入端在数据节点中写入数据的过程中,会确定该数据节点所对应的元数据节点,并将自己的提供给数据读取端的服务端口登记在元数据节点中,便于后续数据读取端如果想获得最新的文件长度,可以向这个端口发送请求来获得。
步骤302:数据读取端打开文件获取数据写入端的服务端口。
也即是,在数据读取端打开文件读的时候,数据读取端可以从元数据节点获得数据写入端登记的端口,在后续读取过程中使用。
步骤303:数据读取端注册监听端口。
也即是,数据读取端获得数据写入端的服务端口后,将自己的监听端口注册到数据写入端,并携带上实时性要求。其中,在本方案中数据读取端包含文件、该文件对应的可读取长度以及监听端口。该监听端口可以理解为建立数据写入端与数据读取端之间通讯的端口,例如,该服务端口可以为一个TCP/UDP的地址。数据写入端可以通过该监听端口将文件最新写入长度发送至数据读取端。
具体的,数据读取端在本地打开文件进行读取时,为了避免本地保存的文件中的数据为历史数据,因此需要确定该文件是否有更新,若是,则从数据节点中获取更新的数据。基于此,在数据读取端实时检测该文件是否有更新以及获取更新数据的过程中,首先,数据读取端需要从元数据节点中获取数据写入端登记的服务端口。
之后,该数据读取端能够将自身的服务端口、实时性要求,以及需要查询的文件的文件标识等信息,通过服务端口发送至数据写入端。
步骤304:数据写入端推送最新长度。
也即是,当数据写入端有数据成功写入后,数据写入端可以将最新的文件长度按照数据读取端的实时性要求发送到所有已经注册到自己的、数据读取端的端口上。
具体的,该数据写入端在将文件标识对应的文件中的更新数据成功写入至数据节点之后,能够将最新的文件长度按照数据读取端的实时性要求,通过数据读取端提供的服务端口发送至数据读取端。
或者,该数据写入端也可以按照实时性要求,将该文件标识对应的文件的文件长度,通过数据读取端提供的服务端口发送至数据读取端。
之后,当数据读取端收到最新的数据长度后,可以读取新写入的数据。也即是,该数据读取端在接收到该文件长度之后,将该文件长度与本地保存文件的文件长度进行比较,在确定两者不一致时,则确定该文件存在更新。反之,则确定文件未更新。在确定文件更新的情况下,该数据读取端会从存储该文件的数据节点中,获取该文件的更新数据,也即是,该文件中被新写入的数据,从而避免读写不同步的问题。
此外,在方案中,如果数据读取端在自己实时性要求中规定的时间内,未收到数据写入端发的更新文件长度,则确定该数据写入端失效,则重新从元数据节点获取新数据写入端提供的服务端口。
需要说明的是,本说明书提供的数据处理方法中,元数据节点(提供元数据服务的节点)还记录数据写入端正在写入数据的位置;而数据读取端打开文件的时候,能够从该元数据节点中获得写入数据在数据节点中的位置;并定期去该写入位置更新(即获取)最新长度,并将更新到的长度提交给元数据节点。该元数据节点在确定该最新长度与本地存储的文件长度不一致的情况下,确定该文件出现更新。因此,首先,元数据节点记录下最新长度,然后,基于该最新长度与本地存储的文件长度确定出更新数据对应的位置信息(可读取的数据长度),并将可以读取的数据长度返回给数据读取端。
该数据读取端基于该可读取的数据长度,从数据节点中获取更新数据。但是,这种方式处理瓶颈点还是在元数据节点上,不能达到实时更新数据长度的目的。
基于上述内容可知,本说明书提供的数据处理方法提供了,通过元数据记录数据写入端的服务端口方式,让数据读取端获得查询新数据写入长度和位置的方法;数据写入端打开端口提供文件长度和写入位置查询的方法;数据读取端可以将自己更新长度的服务端口注册给数据写入端,实时获得数据长度和位置的方法;在数据写入端失效的时候,数据读取端重新查询元数据节点,获得新数据写入端的服务端口的方法;以及数据读取端可以根据实时性要求,注册给数据写入端并得到通知的方法;通过上述方法,可以做到数据读取端实时更新到数据写入端的写入的新数据长度和位置等信息,防止元数据操作过多导致的系统处理瓶颈。
图4示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,该数据处理方法应用于数据处理系统的数据读取模块,具体包括以下步骤。
步骤402:确定待查询数据对应的目标数据节点。
其中,该待查询数据可以为数据读取模块需要进行查询的数据,该待查询数据包括但不限于文件、日志、二维表等等,本说明书对此不做具体限定,该目标数据节点可以理解为存储有该待查询数据的节点。
在实际应用中,数据读取节点为了避免自身存储的数据为历史数据,该数据读取节点可以按照特定时间频率(例如,每1分钟)检测该待查询数据是否存在更新。在存在更新的情况下,获取待查询数据的更新数据,保证自身存储的数据为最新的数据。在不存在更新的情况下,则继续检测该待查询数据是否存在更新。
在本说明书提供的实施例中,分布性系统中包括数据节点以及数据节点对应的元数据节点,基于此,所述确定待查询数据对应的目标数据节点,包括:
接收针对所述待查询数据的数据获取请求;
响应于所述数据获取请求,确定存储所述待查询数据对应的数据存储节点,以及确定所述数据存储节点对应的元数据节点。
其中,该数据获取请求可以理解为需要获取该待查询数据的请求,例如,读请求。在实际应用中,用户可以向数据读取节点发送针对待查询数据的读取请求。而为了避免用户接收到历史数据,该数据读取节点会响应于针对待查询数据的读取请求,确定该待查询数据是否存在更新。在存在更新的情况下,获取待查询数据的更新数据,并将待查询数据以及待查询数据的更新数据发送至用户。在不存在更新的情况下,直接将待查询数据发送至用户。
该数据存储节点可以理解为存储待查询数据(例如文件)的节点,例如,分布式存储系统中存储待查询数据的数据节点,或者服务器中存储待查询数据的模块(如内存、缓存、磁盘等);该元数据节点可以理解为存储数据存储节点对应的元数据的节点,例如,在数据处理方法应用于分布式存储场景下,该数据存储节点为分布式存储系统中的数据节点,该元数据节点可以为分布式存储系统中的元数据节点,该元数据节点可以参见上述解释,本说明书对此不做赘述。或者,在数据处理方法应用于服务器场景下,该数据存储节点为服务器中存储待查询数据的模块,该元数据节点为服务器中存储待查询数据对应的元数据的模块。
具体的,在本说明书提供的数据处理方法应用于分布式存储场景的情况下,该数据读取模块会接收到针对待查询数据的数据获取请求,基于此,该数据读取模块会响应于该数据获取请求,确定该数据读取模块对应的数据存储节点。并确定与该数据存储节点对应的元数据节点,从而使得不同的节点负责不同的工作,避免了单个节点处理压力较大的问题。
在实际应用中,在数据读取模块确定数据存储节点对应的元数据节点的过程中,数据读取模块自身存储有数据存储节点与元数据节点的对应关系;或者,该数据读取模块可以从数据存储节点中获取该数据存储节点与元数据节点的对应关系;后续基于该对应关系确定该数据存储节点对应的元数据节点。
步骤404:从所述目标数据节点中获取数据写入模块对应的更新数据查询端口。
其中,本说明书提供的数据处理方法中,所述目标数据节点中在存储待查询数据的同时,还存储有数据写入模块登记的更新数据查询端口。该数据写入模块可以理解为向目标数据节点中写入数据的模块,例如,上述实施例中的数据写入端、产生数据的模块等等。该更新数据查询端口可以理解为建立数据写入模块与数据读取模块之间通信的端口,例如,上述实施例中数据写入端提供的服务端口。
在本说明书提供的实施例中,本说明书提供的数据处理方法能够应用于分布式存储场景,在此情况下,该数据读取模块能够从该分布式存储系统的元数据节点中获取到更新数据查询端口。具体的,所述从所述目标数据节点中获取数据写入模块对应的更新数据查询端口,包括:
根据所述待查询数据的标识信息生成端口获取请求,并将所述端口获取请求发送至所述元数据节点;
接收所述元数据节点发送的、数据写入模块对应的更新数据查询端口,其中,所述数据写入模块为向所述数据存储节点中写入与所述标识信息对应的所述待查询数据的模块,所述更新数据查询端口为所述数据写入模块写入至所述元数据节点的端口。
其中,端口获取请求可以理解为从该元数据节点中获取更新数据查询端口的请求。
待查询数据的标识信息可以理解为唯一表征一个待查询数据的信息,例如,待查询数据的名称、ID、编号等,本说明书对此不做具体限制。
具体的,该数据读取模块在获取更新数据的过程中,需要通过更新数据查询端口实现。因此,该数据读取模块根据该待查询数据的标识信息生成端口获取请求,并将端口获取请求发送至元数据节点。
该元数据节点在接收到该端口获取请求之后,基于该端口获取请求中携带的标识信息,确定与该标识信息对应的待查询数据,以及向数据存储节点中写入该待查询数据的数据写入模块。并确定该数据写入模块登记的更新数据查询端口,之后,将该更新数据查询端口发送至数据读取模块。
基于此,数据读取模块能够接收到元数据节点发送的、数据写入模块对应的更新数据查询端口,从而便于后续基于该更新数据查询端口建立数据写入模块与数据读取模块之间的通信,进一步保证了数据写入模块与数据读取模块之间数据同步的时效性。
步骤406:根据所述待查询数据的属性信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块。
其中,该数据更新查询请求可以理解为需要从该数据写入模块中获取数据更新信息的请求。待查询数据的属性信息包括但不限于该待查询数据的标识信息。
在本说明书提供的实施例中,所述根据所述待查询数据的属性信息生成数据更新查询请求,包括:
在确定所述待查询数据满足预设更新条件的情况下,确定所述待查询数据的标识信息,并基于所述标识信息生成数据更新查询请求。
其中,预设更新条件可以根据实际应用场景进行设置,本说明书对此不做具体限制。例如,数据读取模块在接收到针对待查询数据的数据获取请求的情况下,或者,数据读取模块在当前时间满足预设时间频率条件的情况下,确定待查询数据满足预设更新条件。
在实际应用中,数据读取端在基于接收到的数据读取请求进行读取数据后,或者在自身需要读取数据的情况下进行数据读取后,会立即触发一次查询文件长度的请求给数据写入端,并根据最新的长度继续读取数据。或者,如果长度没有更新的情况下,则根据实时性要求(即特定时间频率,例如1秒钟),定期发送查询文件长度的请求给数据写入端,查询文件的新长度并读取该文件。
基于此,数据读取模块在确定待查询数据满足预设更新条件的情况下,基于待查询数据的标识信息生成数据更新查询请求,之后可以通过该更新数据查询端口,将生成的数据更新查询请求发送至数据写入模块,使得该数据写入模块能够基于该更新数据查询端口返回该待查询数据的数据更新信息,从而便于快速的获取待查询数据的数据更新信息,保证了数据写入模块与数据读取模块之间数据同步的时效性。
进一步的,所述确定所述待查询数据满足预设更新条件,包括:
在接收到针对所述待查询数据的数据获取请求的情况下,确定所述待查询数据满足预设更新条件;或
在当前时间满足预设时间条件的情况下,确定所述待查询数据满足预设更新条件。
其中,该预设时间条件可以根据时间应用场景进行设置,本说明书对此不做具体限制。基于此,当前时间满足预设时间条件,可以理解为当前时间达到了预设时间频率,例如,预设时间频率为每秒,也即是,数据读取模块会在确定当前时间达到预设时间频率(每秒一次的频率)的情况下,向数据写入模块发送数据更新查询请求;再例如,预设时间频率为每小时,也即是,数据读取模块会在确定当前时间达到每小时一次的频率的情况下,向数据写入模块发送数据更新查询请求。
其中,待查询数据的数据获取请求可以理解为指示数据读取端获取该待查询数据的请求,例如,用户在需要打开数据读取端存储的文件时,会向该数据读取端发送的文件获取请求。
例如,数据读取端从元数据节点中获取数据写入端登记的服务端口之后,在数据读取端打开文件进行数据读取时,为了保证数据的时效性,会立刻通过服务端口向数据写入端发送携带有文件标识的文件长度查询请求。或者数据读取端会根据实时性要求,即按照特定的时间频率(例如1秒钟、10秒钟等),通过服务端口向数据写入端发送携带有文件标识的文件长度查询请求,从而保证了数据同步的时效性。
在本说明书提供的一实施例中,该数据写入模块可能存在失效的问题,在此情况下,该数据读取模块无法基于失效的数据写入模块提供的更新数据查询端口,查询到数据更新信息,从而导致数据同步的时效性较差的问题,基于此,所述接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息之前,还包括:
在基于所述更新数据查询端口,确定所述数据写入模块存在异常的情况下,从所述目标数据节点中确定所述待查询数据对应的、更新后的数据写入模块;
从所述目标数据节点中获取所述更新后的数据写入模块对应的更新数据查询端口;
通过所述更新数据查询端口,将所述数据更新查询请求发送至所述更新后的数据写入模块。
确定数据写入模块存在异常可以理解为数据写入模块无法提供数据更新信息查询、无法写入数据等情况。例如,该数据写入模块存在异常可以为数据写入端异常退出后,端口失效的情况,也即是,该数据写入端因为断网、死机、停电等等因素无法正常提供服务时,则确定该数据写入端异常退出,因此进一步导致该服务端口失效,无法与数据读取端进行通信。在此情况下,数据读取端可以重新去查询元数据节点,从该元数据节点获得新数据写入端提供的服务端口,保证了后续数据读取操作的稳定性,以及数据同步的时效性。
进一步的,所述基于所述更新数据查询端口,确定所述数据写入模块存在异常,包括:
在确定无法通过所述更新数据查询端口,将所述数据更新查询请求发送至所述数据写入模块的情况下,确定所述数据写入模块存在异常;或者
在将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块,且未接收到所述数据写入模块反馈的数据更新信息的情况下,确定所述数据写入模块存在异常,其中,所述数据更新信息为所述数据写入模块针对所述数据更新查询请求反馈的。
其中,该数据写入模块存在异常可以理解为该数据写入模块失效。在实际应用中,数据写入模块会因为断网、死机、停电等等因素无法正常提供服务时,确定该数据写入模块失效。
例如,数据读取端无法通过数据写入端提供的服务端口,将文件长度查询请求发送至该数据写入端的情况下,会确定该数据写入端失效,或者,在通过服务端口向数据写入端发送文件长度查询请求,但是,长时间未接收到数据写入端响应于该文件长度查询请求反馈的文件长度的情况下,确定该数据写入端失效。其中,该文件长度是数据写入端响应于数据读取端发送的数据更新查询请求、向数据读取端反馈的文件长度。
此外,在本说明书提供的一实施例中,数据读取端获得数据写入端的服务端口后,将自己的端口注册到数据写入端,并携带上实时性要求,而当数据写入端有数据成功写入后,数据写入端可以将最新的文件长度按照数据读取端的实时性要求发送到所有已经注册到自身的、数据读取端的端口上,从而使得数据读取端能够灵活的获得文件长度,并且,保证了数据同步的时效性。具体的,所述根据所述待查询数据的属性信息生成数据更新查询请求,包括:
确定所述待查询数据的标识信息、所述待查询数据对应的数据更新信息发送条件、以及更新数据接收端口;
基于所述标识信息、所述数据更新信息发送条件以及所述更新数据接收端口,生成数据更新查询请求。
其中,该数据更新信息发送条件可以理解为指示数据写入模块按照特定方式将数据更新信息发送至数据读取模块的条件。例如,数据更新信息发送条件可以为指示数据写入端在数据成功写入的情况下将文件长度发送至数据读取端。或者上述实时性要求;该实时性要求(即预设时间频率)可以根据实际应用场景进行设置,本说明书对此不做具体限制。例如,1秒钟、10秒钟等等。
更新数据接收端口理解为用于接收数据写入模块发送的数据更新信息的端口,例如上述监听端口。
例如,该数据读取端在获取该服务端口后,能够将自身的服务端口(即监听端口)、实时性要求,以及需要查询的文件的文件标识等信息生成一个请求,并通过数据写入端提供的服务端口,将该请求发送至数据写入端,后续数据写入端在将文件标识对应的文件中更新数据成功写入至数据节点之后,能够将最新的文件长度按照数据读取端的实时性要求,通过数据读取端提供的服务端口(即监听端口)发送至数据读取端。或者,该数据写入端也可以按照实时性要求,将该文件标识对应的文件的文件长度,通过数据读取端提供的服务端口(即监听端口)发送至数据读取端。从而使得数据读取端能够灵活的获得文件长度,并且保证了数据同步的时效性。
进一步的,在本说明书提供的说明书中,所述接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息之前,还包括:
确定将所述数据更新查询请求,发送至所述更新数据查询端口对应的所述数据写入模块的请求发送时间;
计算当前时间与所述请求发送时间之间的时间值;
在确定所述时间值大于预设异常时间阈值,且没有接收到所述数据写入模块发送的数据更新信息的情况下,确定所述数据写入模块存在异常;
在确定所述数据写入模块存在异常的情况下,从所述目标数据节点中确定所述待查询数据对应的、更新后的数据写入模块;
从所述目标数据节点中获取所述更新后的数据写入模块对应的更新数据查询端口;
通过所述更新数据查询端口,将所述数据更新查询请求发送至所述更新后的数据写入模块。
其中,预设异常时间阈值可以根据实际应用场景进行设置,本说明书对此不做具体限制。例如,1分钟、10分钟。
请求发送时间可以理解为数据读取模块向数据写入模块发送该更新数据查询端口的时间。时间值可以理解为当前时间与请求发送时间之间的时间差,例如,请求发送时间为12:00:00,当前时间为12:10:00,即该时间值为10分钟。
具体的,数据读取模块记录下将数据更新查询请求发送至更新数据查询端口对应的数据写入模块的请求发送时间;并实时计算当前时间与该请求发送时间之间的时间值;在确定该时间值大于预设异常时间阈值,且没有接收到数据写入模块发送的数据更新信息的情况下,确定数据写入模块存在异常。
在确定数据写入模块存在异常的情况下,从目标数据节点中确定待查询数据对应的、更新后的数据写入模块;从目标数据节点中获取更新后的数据写入模块对应的更新数据查询端口;通过更新数据查询端口,将数据更新查询请求发送至更新后的数据写入模块。
例如,如果数据读取端在自己实时性要求规定的时间内,没有收到数据写入端发的更新文件长度,则确定该数据写入端失效,则重新从元数据节点获取新数据写入端提供的服务端口,并重新将自身的服务端口、实时性要求,以及需要查询的文件的文件标识等信息生成一个请求,并通过新数据写入端提供的服务端口,重新将该请求发送至新数据写入端,从而保证了后续数据读取操作的稳定性,以及数据同步的时效性。
步骤408:接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息。
其中,该数据更新信息为表征该待查询数据是否存在更新的信息,例如文件长度、日志中的日志数量、待查询数据的版本号、待查询数据的编号等等。
进一步的,在本说明书提供的说明书中,所述接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息,包括:
接收所述数据写入模块响应于所述数据更新查询请求、在确定所述待查询数据满足数据更新信息发送条件的情况下,通过所述更新数据接收端口发送的数据更新信息。
例如,数据读取端在将自身的服务端口、实时性要求,以及需要查询的文件的文件标识等信息发送至数据写入端之后,能够接收到数据写入端发送的文件长度,该文件长度为数据写入端在将文件标识对应的文件中的更新数据,成功写入至数据节点之后,通过数据读取端提供的服务端口发送的。或者,是数据写入端按照实时性要求将该文件标识对应的文件的文件长度,通过数据读取端提供的服务端口发送的,从而使得数据读取模块能够实时感知到待查询数据的更新情况,保证了数据同步的时效性。
步骤410:基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
其中,更新数据为待查询数据中新增的数据,例如,在待查询数据为日志的情况下,该更新数据为日志文件中新增的日志记录。
进一步的,所述基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据,包括:
基于所述数据更新信息以及本地数据信息,确定更新数据对应的更新数据标识信息;
基于所述待查询数据在所述数据存储节点中的位置信息,确定所述数据写入模块写入至所述数据存储节点中的所述待查询数据;
基于所述更新数据标识信息,从所述待查询数据中获取更新数据。
其中,本地数据信息可以理解为数据读取模块本地存储的待查询数据的数据信息,包括但不限于待查询数据的大小、尺寸、版本号、编号等,例如,在待查询数据为本地文件时,该本地数据信息为该文件的长度。在该待查询数据为本地日志文件时,该本地数据信息为该日志文件中的日志数量。该更新数据标识信息可以理解为标识该更新数据的信息。
例如,待查询数据为本地日志文件时,数据更新信息可以为150条日志数据。该本地数据信息可以为100条日志数据,基于此,数据读取端在接收到数据写入端发送的日志文件的日志数量(150条)后,确定本地存储的日志文件中的日志数量(100条),基于该数据更新信息和本地数据信息可以确定该更新的日志记录为第101条至150条。在确定日志文件更新的情况下,首先基于该日志文件的位置信息,从数据节点中确定该日志文件,之后数据读取端基于该更新的日志记录的位置信息(第101条至150条),从存储该日志文件中获取该文件的更新数据(即日志文件中第101条至150条的日志数据),也即是,该文件中被新写入的数据,从而避免读写不同步的问题。
再例如,数据读取端在接收到该文件长度之后,将该文件长度与本地保存的文件的文件长度进行比较,在确定两者不一致时,则确定该文件存储更新,且接收到的文件长度中新增的长度为更新数据对应的长度(可读取长度)。反之,则确定文件未更新。
在确定文件更新的情况下,数据读取端基于该最新长度与本地存储的文件长度确定出的更新数据对应的位置信息(可读取的数据长度),之后基于该文件的位置信息从数据节点中确定该文件,并基于该位置信息从存储该文件的数据节点中获取该文件的更新数据,也即是,该文件中被新写入的数据,从而避免读写不同步的问题。
本说明书提供的数据处理方法,通过数据写入模块对应的更新数据查询端口,将数据更新查询请求发送至数据写入模块;并基于接收到的数据写入模块发送的数据更新信息,从目标数据节点中获取待查询数据的更新数据,从而避免了数据读取模块无法及时的获取到更新数据的问题,提高了数据写入模块与数据读取模块之间数据同步的时效性。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图5示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图5所示,该装置包括:
确定模块502,被配置为确定待查询数据对应的目标数据节点;
第一获取模块504,被配置为从所述目标数据节点中获取数据写入模块对应的更新数据查询端口;
发送模块506,被配置为根据所述待查询数据的属性信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;
接收模块508,被配置为接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;
第二获取模块510,被配置为基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
可选地,所述发送模块506,还被配置为:
在所述待查询数据满足预设更新条件的情况下,确定所述待查询数据的标识信息,并基于所述标识信息生成数据更新查询请求。
可选地,所述发送模块506,还被配置为:
在接收到针对所述待查询数据的数据获取请求的情况下,确定所述待查询数据满足预设更新条件;或
在当前时间满足预设时间条件的情况下,确定所述待查询数据满足预设更新条件。
可选地,所述请求处理装置,还包括第一端口获取模块,被配置为:
在基于所述更新数据查询端口,确定所述数据写入模块存在异常的情况下,从所述目标数据节点中确定所述待查询数据对应的、更新后的数据写入模块;
从所述目标数据节点中获取所述更新后的数据写入模块对应的更新数据查询端口;
通过所述更新数据查询端口,将所述数据更新查询请求发送至所述更新后的数据写入模块。
可选地,所述第一端口获取模块,还被配置为:
在确定无法通过所述更新数据查询端口,将所述数据更新查询请求发送至所述数据写入模块的情况下,确定所述数据写入模块存在异常;或者
在将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块,且未接收到所述数据写入模块反馈的数据更新信息的情况下,确定所述数据写入模块存在异常,其中,所述数据更新信息为所述数据写入模块针对所述数据更新查询请求反馈的。
可选地,所述发送模块506,还被配置为:
确定所述待查询数据的标识信息、所述待查询数据对应的数据更新信息发送条件、以及更新数据接收端口;
基于所述标识信息、所述数据更新信息发送条件以及所述更新数据接收端口,生成数据更新查询请求。
可选地,所述接收模块508,还被配置为:
接收所述数据写入模块响应于所述数据更新查询请求、在确定所述待查询数据满足数据更新信息发送条件的情况下,通过所述更新数据接收端口发送的数据更新信息。
可选地,所述请求处理装置,还包括第二端口获取模块,被配置为:
确定将所述数据更新查询请求,发送至所述更新数据查询端口对应的所述数据写入模块的请求发送时间;
计算当前时间与所述请求发送时间之间的时间值;
在确定所述时间值大于预设异常时间阈值,且没有接收到所述数据写入模块发送的数据更新信息的情况下,确定所述数据写入模块存在异常;
在确定所述数据写入模块存在异常的情况下,从所述目标数据节点中确定所述待查询数据对应的、更新后的数据写入模块;
从所述目标数据节点中获取所述更新后的数据写入模块对应的更新数据查询端口;
通过所述更新数据查询端口,将所述数据更新查询请求发送至所述更新后的数据写入模块。
可选地,所述确定模块502,还被配置为:
接收针对所述待查询数据的数据获取请求;
响应于所述数据获取请求,确定存储所述待查询数据对应的数据存储节点,以及确定所述数据存储节点对应的元数据节点。
可选地,所述第一获取模块504,还被配置为:
根据所述待查询数据的标识信息生成端口获取请求,并将所述端口获取请求发送至所述元数据节点;
接收所述元数据节点发送的、数据写入模块对应的更新数据查询端口,其中,所述数据写入模块为向所述数据存储节点中写入与所述标识信息对应的所述待查询数据的模块,所述更新数据查询端口为所述数据写入模块写入至所述元数据节点的端口。
可选地,所述第二获取模块510,还被配置为:
基于所述数据更新信息以及本地数据信息,确定更新数据对应的更新数据标识信息;
基于所述待查询数据在所述数据存储节点中的位置信息,确定所述数据写入模块写入至所述数据存储节点中的所述待查询数据;
基于所述更新数据标识信息,从所述待查询数据中获取更新数据。
本说明书提供的数据处理装置,通过数据写入模块对应的更新数据查询端口,将数据更新查询请求发送至数据写入模块;并基于接收到的数据写入模块发送的数据更新信息,从目标数据节点中获取待查询数据的更新数据,从而避免了数据读取模块无法及时的获取到更新数据的问题,提高了数据写入模块与数据读取模块之间数据同步的时效性。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器620执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (14)

1.一种数据处理方法,应用于分布式存储系统中的数据读取模块,所述分布式存储系统包括所述数据读取模块、数据写入模块以及目标数据节点,所述方法包括:
确定待查询数据对应的所述目标数据节点;
从所述目标数据节点中获取所述数据写入模块对应的更新数据查询端口;
根据所述待查询数据的标识信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;
接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;
基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
2.根据权利要求1所述的数据处理方法,所述根据所述待查询数据的标识信息生成数据更新查询请求,包括:
在确定所述待查询数据满足预设更新条件的情况下,确定所述待查询数据的标识信息,并基于所述标识信息生成数据更新查询请求。
3.根据权利要求2所述的数据处理方法,所述确定所述待查询数据满足预设更新条件,包括:
在接收到针对所述待查询数据的数据获取请求的情况下,确定所述待查询数据满足预设更新条件;或
在当前时间满足预设时间条件的情况下,确定所述待查询数据满足预设更新条件。
4.根据权利要求1或2所述的数据处理方法,所述接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息之前,还包括:
在基于所述更新数据查询端口,确定所述数据写入模块存在异常的情况下,从所述目标数据节点中确定所述待查询数据对应的、更新后的数据写入模块;
从所述目标数据节点中获取所述更新后的数据写入模块对应的更新数据查询端口;
通过所述更新数据查询端口,将所述数据更新查询请求发送至所述更新后的数据写入模块。
5.根据权利要求4所述的数据处理方法,所述基于所述更新数据查询端口,确定所述数据写入模块存在异常,包括:
在确定无法通过所述更新数据查询端口,将所述数据更新查询请求发送至所述数据写入模块的情况下,确定所述数据写入模块存在异常;或者
在将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块,且未接收到所述数据写入模块反馈的数据更新信息的情况下,确定所述数据写入模块存在异常,其中,所述数据更新信息为所述数据写入模块针对所述数据更新查询请求反馈的。
6.根据权利要求1所述的数据处理方法,所述根据所述待查询数据的标识信息生成数据更新查询请求,包括:
确定所述待查询数据的标识信息、所述待查询数据对应的数据更新信息发送条件、以及更新数据接收端口;
基于所述标识信息、所述数据更新信息发送条件以及所述更新数据接收端口,生成数据更新查询请求。
7.根据权利要求6所述的数据处理方法,所述接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息,包括:
接收所述数据写入模块响应于所述数据更新查询请求、在确定所述待查询数据满足数据更新信息发送条件的情况下,通过所述更新数据接收端口发送的数据更新信息。
8.根据权利要求6所述的数据处理方法,所述接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息之前,还包括:
确定将所述数据更新查询请求,发送至所述更新数据查询端口对应的所述数据写入模块的请求发送时间;
计算当前时间与所述请求发送时间之间的时间值;
在确定所述时间值大于预设异常时间阈值,且没有接收到所述数据写入模块发送的数据更新信息的情况下,确定所述数据写入模块存在异常;
在确定所述数据写入模块存在异常的情况下,从所述目标数据节点中确定所述待查询数据对应的、更新后的数据写入模块;
从所述目标数据节点中获取所述更新后的数据写入模块对应的更新数据查询端口;
通过所述更新数据查询端口,将所述数据更新查询请求发送至所述更新后的数据写入模块。
9.根据权利要求1所述的数据处理方法,所述确定待查询数据对应的目标数据节点,包括:
接收针对所述待查询数据的数据获取请求;
响应于所述数据获取请求,确定存储所述待查询数据对应的数据存储节点,以及确定所述数据存储节点对应的元数据节点。
10.根据权利要求9所述的数据处理方法,所述从所述目标数据节点中获取数据写入模块对应的更新数据查询端口,包括:
根据所述待查询数据的标识信息生成端口获取请求,并将所述端口获取请求发送至所述元数据节点;
接收所述元数据节点发送的、数据写入模块对应的更新数据查询端口,其中,所述数据写入模块为向所述数据存储节点中写入与所述标识信息对应的所述待查询数据的模块,所述更新数据查询端口为所述数据写入模块写入至所述元数据节点的端口。
11.根据权利要求9所述的数据处理方法,所述基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据,包括:
基于所述数据更新信息以及本地数据信息,确定更新数据对应的更新数据标识信息;
基于所述待查询数据在所述数据存储节点中的位置信息,确定所述数据写入模块写入至所述数据存储节点中的所述待查询数据;
基于所述更新数据标识信息,从所述待查询数据中获取更新数据。
12.一种数据处理装置,应用于分布式存储系统中的数据读取模块,所述分布式存储系统包括所述数据读取模块、数据写入模块以及目标数据节点,所述装置包括:
确定模块,被配置为确定待查询数据对应的所述目标数据节点;
第一获取模块,被配置为从所述目标数据节点中获取所述数据写入模块对应的更新数据查询端口;
发送模块,被配置为根据所述待查询数据的标识信息生成数据更新查询请求,并将所述数据更新查询请求发送至所述更新数据查询端口对应的所述数据写入模块;
接收模块,被配置为接收所述数据写入模块针对所述数据更新查询请求发送的数据更新信息;
第二获取模块,被配置为基于所述数据更新信息,获取所述数据写入模块写入所述目标数据节点中的、所述待查询数据的更新数据。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11任意一项所述数据处理方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至11任意一项所述数据处理方法的步骤。
CN202210579745.2A 2022-05-26 2022-05-26 数据处理方法及装置 Active CN114676166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210579745.2A CN114676166B (zh) 2022-05-26 2022-05-26 数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210579745.2A CN114676166B (zh) 2022-05-26 2022-05-26 数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN114676166A CN114676166A (zh) 2022-06-28
CN114676166B true CN114676166B (zh) 2022-10-11

Family

ID=82079766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210579745.2A Active CN114676166B (zh) 2022-05-26 2022-05-26 数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN114676166B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016086552A1 (zh) * 2014-12-04 2016-06-09 中兴通讯股份有限公司 一种文件处理的方法及客户端
WO2016197666A1 (zh) * 2015-06-10 2016-12-15 华为技术有限公司 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
CN110309156A (zh) * 2018-03-01 2019-10-08 阿里巴巴集团控股有限公司 数据库系统、数据库更新、扩容方法及设备
CN110554834A (zh) * 2018-06-01 2019-12-10 阿里巴巴集团控股有限公司 文件系统数据访问方法和文件系统
CN113204435A (zh) * 2021-07-01 2021-08-03 阿里云计算有限公司 数据处理方法以及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469172B (zh) * 2015-08-19 2019-07-23 阿里巴巴集团控股有限公司 分布式文件系统的数据更新方法和装置
US20200050692A1 (en) * 2018-08-10 2020-02-13 Microsoft Technology Licensing, Llc Consistent read queries from a secondary compute node
CN111723110A (zh) * 2019-03-21 2020-09-29 阿里巴巴集团控股有限公司 分布式缓存系统及关联查询和更新方法、设备与存储介质
CN111339130A (zh) * 2020-02-25 2020-06-26 腾讯科技(深圳)有限公司 一种数据查询方法、相关设备及可读存储介质
CN113297203A (zh) * 2020-07-15 2021-08-24 阿里巴巴集团控股有限公司 数据查询和写入方法和装置,计算机存储介质和电子设备
CN112084258A (zh) * 2020-08-18 2020-12-15 腾讯科技(深圳)有限公司 一种数据同步方法和装置
CN113448938A (zh) * 2021-07-20 2021-09-28 恒安嘉新(北京)科技股份公司 数据处理方法、装置、电子设备及存储介质
CN113315845B (zh) * 2021-07-28 2022-01-04 阿里云计算有限公司 数据传输方法、装置及分布式存储系统
CN113886350A (zh) * 2021-09-10 2022-01-04 阿里云计算有限公司 数据处理方法及系统
CN114218211A (zh) * 2021-11-19 2022-03-22 建信金融科技有限责任公司 数据处理系统、方法、计算机设备以及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016086552A1 (zh) * 2014-12-04 2016-06-09 中兴通讯股份有限公司 一种文件处理的方法及客户端
WO2016197666A1 (zh) * 2015-06-10 2016-12-15 华为技术有限公司 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
CN110309156A (zh) * 2018-03-01 2019-10-08 阿里巴巴集团控股有限公司 数据库系统、数据库更新、扩容方法及设备
CN110554834A (zh) * 2018-06-01 2019-12-10 阿里巴巴集团控股有限公司 文件系统数据访问方法和文件系统
CN113204435A (zh) * 2021-07-01 2021-08-03 阿里云计算有限公司 数据处理方法以及系统

Also Published As

Publication number Publication date
CN114676166A (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
CN109976667B (zh) 一种镜像管理方法、装置及系统
CN107133234B (zh) 缓存数据更新的方法、装置及系统
CN110096517B (zh) 基于分布式系统的缓存数据的监控方法、装置和系统
EP3477914B1 (en) Data recovery method and device, and cloud storage system
CN111475483B (zh) 数据库迁移方法、装置及计算设备
CN111291079A (zh) 一种数据的查询方法和装置
CN110765165B (zh) 一种跨系统数据同步处理的方法、装置及系统
CN111858676A (zh) 一种数据处理的方法及装置
CN113127732B (zh) 业务数据的获取方法、装置、计算机设备和存储介质
US20220269428A1 (en) System Startup Method and Related Device
CN114363144B (zh) 一种面向分布式系统的故障信息关联上报方法及相关设备
CN109871354B (zh) 一种文件处理的方法及装置
CN114661248B (zh) 数据处理方法及装置
CN110532123A (zh) HBase系统的故障转移方法及装置
US10241716B2 (en) Global occupancy aggregator for global garbage collection scheduling
CN113434312A (zh) 数据血缘关系处理方法及装置
WO2021259188A1 (zh) 路由读请求、反馈报文的方法以及各自装置、数据库
CN114722092A (zh) 时序数据处理方法、系统、存储介质和电子设备
CN114676166B (zh) 数据处理方法及装置
CN111125257B (zh) 词典更新方法、装置、设备和存储介质
CN112711466B (zh) 悬挂事务巡检方法和装置、电子设备和存储介质
CN115686816A (zh) 一种数据处理的方法、相关装置及设备
CN112433891A (zh) 数据处理方法、装置和服务器
CN112148712A (zh) 一种数据处理方法、装置、设备及介质
CN113642948A (zh) 一种模型管理方法、装置以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant