CN111666045A - 基于Git系统的数据处理方法、系统、设备及存储介质 - Google Patents
基于Git系统的数据处理方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111666045A CN111666045A CN202010414822.XA CN202010414822A CN111666045A CN 111666045 A CN111666045 A CN 111666045A CN 202010414822 A CN202010414822 A CN 202010414822A CN 111666045 A CN111666045 A CN 111666045A
- Authority
- CN
- China
- Prior art keywords
- data
- git
- data processing
- request
- cache
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 158
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000014759 maintenance of location Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于Git系统的数据处理方法、系统、设备及存储介质。该数据处理方法应用于Git系统,该Git系统包括缓存处理器。上述数据处理方法包括:缓存处理器接收数据处理请求,其中,数据处理请求包括写入请求和读取请求;当数据处理请求为写入请求时,缓存处理器将第一数据写入缓存区,第一数据为与写入请求对应的数据;当数据处理请求为读取请求时,缓存处理器访问缓存区,根据访问结果进行读取操作。通过上述的方法,能够在缓存处理器层面快速响客户端的请求,进而提高Git系统整体性能。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及基于Git系统的数据处理方法、系统、设备及存储介质。
背景技术
随着开源的分布式版本控制系统的广泛应用,人们在线协同办公已经被众多公司企业逐步采用,Git是一个开源的分布式版本控制系统,可以进行项目版本管理。
目前,现有的Git服务产品只适用于一般的数据更新操作频率较低的场景,但对于高并发数据处理量的场景,其无法快速响应客户端的数据处理请求,导致Git系统性能不稳定。
发明内容
针对现有技术的不足,本申请提供一种基于Git系统的数据处理方法、系统、设备及存储介质,能够快速响应并处理Git系统的数据处理请求,提高Git系统整体性能。
第一方面,本申请提供一种基于Git系统的数据处理方法,该方法应用于Git系统,该Git系统包括缓存处理器。该数据处理方法包括:缓存处理器接收数据处理请求,其中,数据处理请求包括写入请求和读取请求;当数据处理请求为写入请求时,缓存处理器将第一数据写入缓存区,第一数据为与写入请求对应的数据;当数据处理请求为读取请求时,缓存处理器访问缓存区,根据访问结果进行读取操作。
第二方面,本申请提供一种Git系统。该Git系统包括缓存处理器,用于接收数据处理请求,其中,数据处理请求包括写入请求和读取请求;缓存区,用于缓存数据;当数据处理请求为写入请求时,缓存处理器将第一数据写入缓存区,第一数据为与写入请求对应的数据;当数据处理请求为读取请求时,缓存处理器访问缓存区,根据访问结果进行读取操作。
第三方面,本申请提供一种计算机设备,该计算机设备包括存储器和处理器,所述存储器存储又计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所述的数据处理方法。
第四方面,本申请提供一种存储介质,该存储介质存储有计算机程序,计算机程序被处理器执行时实现如第一方面描述的数据处理方法。
本申请的有益效果是:区别于现有技术的情况,本申请通过利用缓存处理器来处理数据处理请求,并根据数据处理请求的具体类型,进行相应的处理。当数据处理请求为写入请求时,缓存处理器通过将第一数据写入缓存区,以此实现对客户端的写入请求的快速响应。当数据处理请求为读取请求时,缓存处理器通过访问缓存区,进而根据访问结果,来进行读取操作,实现了在缓存处理器层面,对客户端的读取请求的快速响应。因此,本申请的技术方案可以在缓存处理器层面快速响客户端的数据处理请求,进而提高Git系统的整体性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的数据处理方法第一实施例的流程示意图;
图2是本申请提供的数据处理方法第二实施例的流程示意图;
图3是本申请提供的数据处理方法第三实施例的流程示意图;
图4是本申请提供的Git系统第一实施例的框架示意图;
图5是本申请提供的Git系统第二实施例的框架示意图;
图6是本申请提供的计算机设备一实施例的框架示意图;
图7是本申请提供的计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请实施例提供了一种基于Git系统的数据处理方法方法,可应用于Git系统。其中,该数据处理方法方法可以应用于终端或服务器中,其中,终端可以是笔记本电脑、台式电脑、个人数字助理等电子设备;服务器可以为独立的服务器,也可以为服务器集群。
请参阅图1。图1是本申请提供的数据处理方法第一实施例的流程示意图,该数据处理方法应用于Git系统,该Git系统包括缓存处理器,该数据处理方法具体包括以下步骤:
步骤S10:缓存处理器接收数据处理请求。
Git系统作为一个分布式版本控制系统,为用户提供数据存储服务,用户可以通过Git系统客户端进行数据读写操作。当用户打开Git系统的客户端进行操作时,用户通过客户端发出的数据处理请求可以包括写入请求或读取请求。写入请求就是请求将数据写入Git存储端中,以永久保存数据。读取请求即是请求获取Git存储端中的某一份数据。数据处理请求的数据可以是一份文件,或是一份代码或是其他类型的数据。
在一些实际场景中,当数量巨大的多个用户同时操作客户端,并同时向同一个Git系统发出数据处理请求时,Git系统无法同时快速响应多个客户端的数据处理请求快速的执行数据读写任务。因此,在本申请实施例中,在Git系统中设置缓存处理器,由该缓存处理器接收数据处理请求,并基于不同的数据处理请求执行相应的操作。
步骤S11:当数据处理请求为写入请求时,缓存处理器将第一数据写入缓存区。
缓存处理器在接收客户端发出的数据处理请求之后,会判断数据处理请求的类型,并根据数据处理请求的类型执行相应的操作。当数据处理请求为写入请求时,缓存处理器根据该写入请求,将对应的数据写入缓存区。
具体地,当缓存处理器接收到写入请求时,会同时接收到由客户端发出的与写入请求对应的数据,该数据可以定义为第一数据。在一些实施例中,也可以是缓存处理器先接收写入请求,再接收第一数据。
现有技术中,Git系统需要将其接收到的写入请求所对应的第一数据发送至Git存储端进行存储,并等到Git存储端执行存储操作后才能向客户端返回数据已处理的结果,即向客户端返回数据处理请求已执行的提示。可以理解的是,当Git存储端需要同时处理数量巨大的数据的时候,必然需要花费更多的时间来执行存储操作,且等待Git存储端执行存储后才能响应客户端,因此,Git系统对客户端的写入请求无法快速响应。
在本实施例中,Git系统设置了缓存处理器,通过缓存处理器接收写入请求,并将写入请求相应的第一数据写入缓存区,利用缓存区对第一数据进行缓存处理,在缓存处理器层面实现了数据的快速存储,实现了Git系统对数据处理请求的快速响应。
缓存区可以采用数据库的形式,即缓存处理器可以将第一数据写入数据库以缓存第一数据。数据库的类型可以采用nosql数据库或者其它数据库形式。数据库也可以选用基于磁盘的磁盘数据库,磁盘数据库能够实现对写入数据的快速存储,且数据不易丢失,当选择的磁盘为高速存储介质磁盘时,对应的存储响应速度更快。在其他实施例中,也可以选用基于内存的内存数据库,采用内存数据库时,由于内存能够快速读写的功能,能够进一步提升缓存处理器响应写入数据的处理请求的速度,但为了防止缓存数据丢失,还需要加入磁盘存储。
在具体实施场景中,缓存处理器在将第一数据写入缓存区以后,就可以向客户端发出数据处理请求执行成功的提示。请求执行成功的提示可以是向用户反馈存储数据的结果,例如是存储成功,请求成功等等,使得用户可以快速获得文件的存储结果,减少用户的等待时间,提高用户体验。
在本实施例中,通过利用缓存处理器将第一数据写入缓存区,而不是等待第一数据存储到Git存储端后,再向用户反馈请求的结果。以此实现了在缓存处理器层面对客户端发出的写入请求的快速响应,提高了Git系统的整体性能。
步骤S12:当数据处理请求为读取请求时,缓存处理器访问缓存区,根据访问结果进行读取操作。
具体地,当缓存处理器接收到读取请求时,缓存处理器先访问缓存区,根据缓存区的访问结果进行读取操作。
现有技术中,当数量巨大的多个客户端向Git系统同时发出读取请求时,客户端需要等待Git系统从Git存储端获取数据,然后再返回数据给客户端。可以理解的,当Git系统需要处理数量巨大的读取请求的时候,必然需要花费更多的时间,使得Git系统无法对客户端的读取请求进行快速响应。
在本实施例中,缓存处理器在接收到读取请求以后,访问缓存区,进而根据访问结果,来进行读取操作。以此就可以直接通过缓存处理器对缓存区进行相关的读取操作,而不必从Git存储端读取数据,实现了在缓存处理器层面,对客户端的读取请求的快速响应,提高了Git系统的整体性能。
本实施例提供了一种基于Git系统的数据处理方法,通过在Git系统中设置缓存处理器,利用缓存处理器将写入请求对应的数据快速写入缓存区,并可从缓存区快速获取读取请求对应的数据,从而实现在缓存处理器层面对数据处理请求的快速响应,提高了Git系统的整体性能。
在缓存处理器将写入的第一数据缓存到缓存区后,为了将第一数据永久保存,需将第一数据写入Git存储端。此时,Git系统还包括数据处理中心,缓存处理器可以以消息队列延迟任务的形式告知数据处理中心存在需要发送至Git存储端的第一数据。
请参阅图2,图2是本申请提供的数据处理方法第二实施例的流程示意图,具体步骤包括:
步骤S20:缓存处理器接收写入请求。
具体请参阅步骤S10中关于缓存处理器接收写入请求部分,此处不再赘述。
步骤S21:缓存处理器将第一数据写入缓存区。
具体请参阅步骤S11,此处不再赘述。
步骤S22:缓存处理器根据第一数据创建写入消息,并将写入消息存储在消息队列中。
具体的,缓存处理器可以根据接收到第一数据创建写入消息,再将该写入消息存储在消息队列中。
在具体实施例中,写入消息包括写入缓存区的第一数据的标识信息,根据该标识信息,能够查找到对应的第一数据。例如,缓存处理器根据接收到的第一数据,为每一个第一数据生成对应的唯一标识,然后缓存处理器将这些唯一标识作为写入消息的内容添加到消息队列中。
在一些实施例中,缓存处理器根据第一数据创建写入消息并将写入消息存储在消息队列中,这一步骤与缓存处理器将与写入请求对应的第一数据写入缓存区这一步骤可以同时进行;或是先将与写入请求对应的第一数据写入缓存区,再创建写入消息并存储在消息队列中,亦或是先创建写入消息并存储在消息队列中,再将与写入请求对应的第一数据写入缓存区。
在一些实施例中,也可以通过提供具有较大存储空间的消息队列,以将写入的的第一数据作为写入消息,添加到消息队列中。因为消息队列中包含了第一数据,因此数据处理中心就可以直接通过接收消息队列消息来获取第一数据,而不必再从缓存区中获取第一数据,以此可以减少缓存区需要处理的数据处理请求,提高了缓存区的整体性能。数据处理中心从消息队列中获取到第一数据以后,才能将缓存区中对应的第一数据删除,以此避免当消息队列出现故障时第一数据丢失的问题,提高了数据的安全性。
通过创建消息队列,实现了消息队列任务延迟,数据处理中心就可以通过消息队列来获取第一数据,而不必与缓存处理器交互,而缓存处理器也可以无需等待数据处理中心的处理结果,快速响应客户端的数据处理请求,提高了Git系统处理高并发写入请求的能力。
步骤S23:数据处理中心从消息队列中获取写入消息。
具体地,数据处理中心可以从消息队列中获取写入消息。在一具体实施例中,数据处理中心采用轮询机制从消息队列中获取写入消息。在另一具体实施例中,当写入消息存储到消息队列后,由缓存处理器发送消息指令,通知数据处理中心从消息队列中获取写入消息。
步骤S24:数据处理中心根据写入消息,获取第一数据,并将第一数据发送至Git存储端进行存储。
因为写入消息可以是第一数据的唯一标识或是第一数据本身,数据处理中心就可以根据获取到的写入消息,获取客户端发出的与写入请求对应的第一数据,并将第一数据发送至Git存储端进行存储。
具体而言,当写入信息是第一数据的唯一标识时,数据处理中心可以根据该唯一标识,获取存储在缓存区中的第一数据,进而将获取到的第一数据发送至Git存储端。可以理解的是,数据处理中心在收到消息队列的写入消息后,可以依据其自身的状态,决定何时从缓存区中获取第一数据。例如,当数据处理中心在接收到写入消息后,数据处理中心暂时不具备接收第一数据的能力时,可以选择待其自身具备接收数据的能力的时候,再从缓存区中获取第一数据。以此,可以提高数据处理中心的处理能力,提高了Git系统的整体性能。
因为当消息队列存储空间足够大时,可以直接将第一数据作为写入消息进行存储,使得数据处理中心可以直接从消息队列中获取第一数据,而无需再去调用缓存区的第一数据,有效减少了访问缓存区的次数,提高了缓存区的使用寿命。
数据处理中心在获得第一数据以后,就可以将第一数据发送到Git存储端,以利用Git存储端实现对第一数据的永久保存。数据处理中心在获得第一数据以后,缓存处理器将缓存区中已经存储到Git存储端的第一数据删除,使得这些数据所占用的存储空间可以得到释放,以此实现缓存区可以存储更多客户端发出的需要写入的第一数据,提高缓存处理器对客户端的响应能力,具体的删除条件可以根据存储业务需求或者缓存区的空间大小设置,此处不作具体限定。
在一些实施例中,Git系统还可以包括Git服务管理器,每个Git服务管理器用于管理一个Git存储端,例如Git服务管理器可以获取其管理的Git存储端存储状态、负载信息等等。Git服务管理器可以用于与数据处理中心进行交互。在本实施例中,数据处理中心发送第一数据至Git存储端进行存储的实现过程,包括以下步骤:
步骤S241:数据处理中心判断第一数据是否为更新数据。
在数据处理中心获取到第一数据以后,数据处理中心可以判断该第一数据是否为更新数据。如果第一数据为对Git存储端已有过存储记录,具有历史版本的数据进行更新的数据,则为更新数据,可以理解的,写入的数据如果不是更新数据,则为新建数据。需要说明的是,当第一数据是与Git存储端的数据完全相同时,可以将其视为更新数据,也可以不做存储处理,直接返回请求结果。
在具体实施例中,缓存处理器接收到写入请求后可以判断写入请求的第一数据的数据类型,将该写入请求的数据类型添加为写入消息的内容,并存储到消息队列中。当数据处理中心获取到该写入消息时,同时获取到了该写入请求所对应的第一数据的数据类型,根据该数据类型可得出第一数据是否为更新数据。例如,缓存处理器接收到客户端发出的数据写入请求为“请求写入一个新建类型的Git数据”时,数据处理中心就可以根据对应的写入消息,确定该写入请求对应的第一数据为新建数据。当缓存处理器接收到客户端发出的数据写入请求为“请求写入一个更新类型的Git数据”,数据处理中心就可以根据对应的写入消息,确定该写入请求对应的第一数据为更新数据。
步骤S242:若第一数据为更新数据,数据处理中心确定第一数据的上一版本数据所在的Git存储端为目标Git存储端。
当第一数据为更新数据时,可以根据第一数据查询到该第一数据对应的上一版本数据,并确定该上一版本数据的存储路径,即具体是存储在哪个Git存储端中,数据处理中心将该上一版本对应的Git存储端确定为目标Git存储端,其中,上一版本数据是第一数据的历史版本数据之一,或者是历史版本数据中最新的版本数据。确定目标Git存储端后,就可以直接对目标Git存储端的数据进行更新,提高数据更新的效率。
具体地,数据处理中心根据第一数据查找其上一版本数据的步骤,可以通过该第一数据的标识信息进行查询,或者,在更新数据或是写入请求中,可以包含其上一版本数据的存储路径,数据处理中心就可以根据上一版本数据的存储路径,查找到上一版本数据。
步骤S243:若第一数据不为更新数据,数据处理中心根据Git服务管理器从多个Git存储端确定其中一个Git存储端为目标Git存储端。
可以理解的,第一数据不是更新数据时,则是新建数据。
当第一数据为新建数据,由于其是第一次请求存储在Git存储端,因此可以选择存储在任意一个Git存储端上的任何空闲的存储空间。为了实现最优存储,数据处理中心可以根据Git服务管理器提供的关于各Git存储端的存储状态信息,从中筛选出最优的Git存储端作为目标Git存储端。
具体地,数据处理中心可以从Git服务管理器中获取Git存储端的存储状态信息,存储状态信息可以包括Git存储端的存储空间情况、当前正在执行的任务、当前负载情况或是Git存储端此时可以实现的最大存储速度等等。可以理解的,存储状态信息可以是反映Git存储端性能的信息,Git存储端性能会影响数据的存储速度。也即,数据处理中心可以从Git服务管理器中获取反映Git存储端当前性能的存储状态信息。数据处理中心在获取到存储状态信息以后,就可以根据该存储状态信息,选择当前性能最优的Git存储端作为目标Git存储端。以此,可以充分根据Git存储端的性能,选择最合适的Git存储端作为目标Git存储端存储第一数据,以提高存储效率,实现Git系统存储性能最优化。
步骤S244:数据处理中心将第一数据发送至目标Git存储端进行存储。
在确定了第一数据的的目标Git存储端以后,数据处理中心就可以将第一数据发送到该目标Git存储端,以对第一数据进行永久存储。
具体地,第一数据会经过对应的Git服务管理器,最终发送至目标Git存储端,由目标Git存储端将第一数据进行存储。
在一些实施例中,为了提高数据安全性,会对Git存储端中的数据进行备份,保证存储数据至少具有一个备份数据,以提高数据的安全性。具体地,可以通过设置备份磁盘的方式进行备份,例如,当第一数据存储到目标Git存储端以后,备份磁盘即将该第一数据进行复制并存储。
本实施例提供了一种数据处理方法,先通过缓存处理器缓存写入的第一数据,然后通过消息队列延迟任务的形式告知数据处理中心存在需要发送至Git存储端的第一数据,使得缓存处理器可以无需等待数据处理中心的处理结果,进而可以快速响应客户端的写入请求,而数据处理中心可以根据Git存储端的存储状态选择最优存储。
请参阅图3,图3是本申请一种数据处理方法的第三实施例的流程示意图。
可以理解的是,客户端除了可以发出写入数据的写入请求,同时还可以发出读取数据的请求,即读取请求。具体的,缓存处理器响应客户端读取请求的流程可以包括如下步骤:
步骤S30:缓存处理器接收数据读取请求。
具体请参阅步骤S10。
步骤S31:缓存处理器判断缓存区是否存在第二数据,第二数据为读取请求对应的数据。
由于缓存区可以存储数据,而且缓存处理器可以直接与缓存区进行交互。因此,缓存处理器在接收到读取请求时,就可以先判断缓存区是否存在与读取请求对应的数据。与读取请求对应的数据可以定义为第二数据。
具体的,当缓存处理器接收到读取请求后,可以通过分析该读取请求,以获得该读取请求对应的数据信息,然后根据该数据信息在缓存区中查找是否存在对应的第二数据。例如,缓存处理器通过分析读取请求后,获得需要读取的数据的文件名,根据该文件名就可以在缓存区中查找是否存在对应的第二数据。
在一些实施例中,缓存区还可以包括内容分发网络的网络节点(CDN缓存)。CDN缓存的节点分布较多,读取速度较快的特点,可以进一步提高缓存区的读取速度,以起到对客户端的读取请求的更快速响应。
步骤S32:若缓存区存在第二数据,缓存处理器从缓存区获取第二数据。
若缓存区存在第二数据时,缓存处理器可以直接从缓存区获取第二数据,而不必从Git存储端去获取第二数据。通过直接从缓存区获取第二数据并发送至客户端,即可实现对客户端读取请求的快速响应。
步骤S33:若缓存区不存在第二数据,缓存处理器从Git存储端获取第二数据。
可以理解的,因为缓存区的数据不是永久保存的,在特定情况下,与客户端发出的读取请求匹配的第二数据可能在缓存区中已经删除。因此,缓存处理器无法从缓存区直接获取第二数据并返回给客户端的。此时,缓存处理器就需要从Git存储端来获取第二数据。
具体地,缓存处理器在确定缓存区不存在第二数据后,将该读取请求发送至数据处理中心,由数据处理中心分析读取请求,得到第二数据的存储路径,数据处理中心根据第二数据的存储路径,将数据读取请求发送给对应的Git服务管理器,Git服务管理器解析该数据读取请求,然后向对应的第二Git存储端发出读取指令,以读取第二数据。读取指令是根据读取请求解析得到的,读取指令包含了第二数据的具体存储信息,Git存储端可以根据该读取指令,读取第二数据并发送至数据处理中心,再由数据处理中心将第二数据发送至缓存处理器。
因为数据处理中心可以从Git存储端中获取数据,使得缓存处理器不必直接从Git存储端中获取数据,而只需要将客户端的读取请求发送给数据处理中心即可,减少了缓存处理器所要执行的操作,因此可以提高缓存处理器对于客户端的处理能力,能够提高缓存处理器的工作效率。
步骤S34:缓存处理器将第二数据发送给客户端。
在数据处理中心将第二数据发送至缓存处理器,缓存处理器就可以响应客户端的读取请求,将第二数据发送给客户端,以此完成客户端的读取数据的操作。
步骤S35:缓存处理器根据缓存需求将第二数据写入缓存区。
可以理解的,客户端有可能会发出不止一次对某一数据的读取请求。此时,如果每次都从Git存储端中获取数据,则会使得操作的流程过长,读取数据的速度较慢。所以,在缓存处理器接收到第二数据以后,可以根据缓存需求将该第二数据写入缓存区中,使得客户端再次对该第二数据发出读取请求时,可以直接从缓存区中读取该第二数据,而不必再去Git存储端中查询并读取数据,使得缓存处理器可以对客户端发出的读取请求进行快速的响应。
在具体的实施例中,缓存处理器根据缓存需求将第二数据写入缓存区的步骤,包括:缓存处理器对第二数据进行分类,数据类型包括高频数据和低频数据,若该第二数据为高频数据,则将该第二数据写入缓存区,若该第二数据为低频数据,则该第二数据不写入缓存区,其中,高频数据为预测将来读取请求频率高的数据,对应的低频数据为预测将来读取请求频率低的数据。例如,某一个读取请求的第二数据是一个最近更新版本的数据或新建数据,则可将该第二数据划分为高频数据,则该第二数据具有缓存需求,需将该第二数据写入缓存区;若第二数据是一个历史版本的数据,则可该第二数据划分为低频数据,则该第二数据没有缓存需求,不写入缓存区。或者,在某一时间段,当某第二数据读取次数频率高于预设值时,将其划分为高频数据,具体的数据类型划分都是根据业务逻辑确定,划分方法多样,此处不再一一例举。
在一些实施例中,缓存处理器将与客户端发出的读取请求匹配的第二数据返回给客户之前,可以先执行将第二该数据写入缓存区中的操作。在另一些实施例中,也可以是缓存处理器同时执行返回第二数据给客户端的操作和写入缓存区的操作。
因为缓存处理器可以用于处理客户的数据处理请求,且每个缓存处理器都可以独立工作。因此,在一些实施例中,还可以通过设置多个缓存处理器来分别同时处理客户端的数据处理请求,以此缓解在高并发的场景下单个缓存处理器的处理压力,进一步的提高缓存处理器响应客户端的速度。在另一些实施例中,同理,也可以设置多个数据处理中心同时处理多个数据请求,来应对需要从Git存储端存储数据和读取数据的高并发需求,使得单个数据处理中心需要处理的数据请求数量可以降低,以此提高数据处理中心处理数据处理请求的速度。也就是说,缓存处理器和数据处理中心均是可伸缩扩展的。通过设置多个缓存处理器和数据处理中心,可以进一步提高Git系统处理高并发请求的能力。
另外,当数据处理中心和Git存储端处于离线更新状态时,缓存处理器依然可以接收数据处理请求,将第一数据写入缓存区或者从缓存区读取数据,响应客户端的数据处理请求。且当Git存储端的数据量较小,缓存区空间足够大时,可以将Git存储端的数据全部存储在缓存区中。在这样的情况下,客户端的全部数据处理请求,均可以由缓存处理器执行,例如,客户端发出写入请求后,缓存处理器可以根据写入请求,将第一数据写入缓存区;客户端发出读取请求后,缓存处理器可以从缓存区中获取对应的第二数据,发送给客户端。由此可见,因为缓存区的存在,使得数据处理中心和Git存储端可以暂时处于离线的状态,并且在此状态下,客户端的数据处理请求依然可以得到响应。也就是说,通过将Git存储端的数据全部存储在缓存区,可以实现继续响应客户端数据处理请求的同时,数据处理中心和Git存储端均可以单独更新,有助于后续Git系统的改进升级。在其他的实施例中,也可以是将部分数据存储到缓存区中,例如,将客户端经常需要读取的数据存储到缓存区中。
本实施例提供了一种数据处理方法,先通过缓存处理器直接在缓存区中读取数据,使得Git系统可以快速响应接收到的读取请求,还可将从Git存储端中获取到的数据又存入缓存区,从而实现了Git系统对读取请求的快速响应。
参阅图4,图4是本申请提供的Git系统的第一实施例的框架示意图。该系统40包括:缓存处理器401、缓存区402。
缓存处理器401,用于接收数据处理请求,其中,所述数据处理请求包括写入请求和读取请求。
缓存区402,用于缓存数据。当所述数据处理请求为写入请求时,缓存处理器401用于将与所述写入请求对应的第一数据写入缓存区402;当所述数据处理请求为读取请求时,缓存处理器401用于访问缓存区402,根据访问结果进行读取操作。
参阅图5,图5是本申请提供的Git系统第二实施例的框架示意图。该系统50包括缓存处理器501、缓存区502、数据处理中心503、Git服务管理器504和Git存储端505。
缓存处理器501用于接收数据处理请求,其中,数据处理请求包括写入请求和读取请求。
缓存区502,用于缓存数据。当数据处理请求为写入请求时,缓存处理器501将与写入请求对应的第一数据写入缓存区502;当数据处理请求为读取请求时,缓存处理器501访问缓存区502,根据访问结果进行读取操作。
可选的,缓存处理器501还可以用于创建写入消息,并将写入消息存储在消息队列中。
数据处理中心503用于从消息队列中获取写入消息。数据处理中心503还可以用于根据写入消息,获取第一数据,并将第一数据发送至Git存储端505进行存储。Git存储端505的数量至少为1个。
可选的,Git服务管理器504的数量至少为1个,每个Git服务管理器504可以管理1个Git存储端505。数据处理中心503还可以用于判断第一数据是否为更新数据。当第一数据是更新数据时,数据处理中心503还可以用于确定第一数据的上一版本数据所在的Git存储端505为目标Git存储端505。当第一数据不是更新数据时,数据处理中心503还可以用于根据Git服务管理器504从多个Git存储端505中确定其中一个Git存储端505为确定目标Git存储端505。数据处理中心503还可以用于将第一数据发送至目标Git存储端505进行存储。
可选的,数据处理中心503还可以用于从Git服务管理器504中获取Git存储端505的存储状态信息。数据处理中心503还可以用于根据存储状态信息确定第一Git存储端505。
可选的,缓存处理器501还可以用于判断缓存区502是否存在第二数据,第二数据为读取请求对应的数据。当存在时,缓存处理器501还可以用于从缓存处理器501获取第二数据。当不存在时,缓存处理器501还可以用于从Git存储端505获取第二数据。缓存处理器501还可以用于将第二数据发送给客户端。
可选的,缓存处理模块50还可以用于根据缓存需求将第二数据写入缓存区502。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述简洁,上述描述的Git系统和各模块的具体工作过程,可以参照前述数据处理方法实施中的对应过程,此处不再赘述。
请参阅图6,图6是本申请提供的计算机设备一实施例的框架示意图,计算机设备60包括互相连接的处理器601和存储器602,存储器602用于存储计算机程序,处理器601用于执行计算机程序并在执行计算机程序时实现上述实施例中的数据处理方法。
计算机设备60可以为服务器、计算机或终端等具有数据处理功能的硬件设备,存储器602可以包括非易失性存储介质和内存储器,处理器601可以是中央处理单元或其他通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器601可以由多个集成电路芯片共同实现。
请参阅图7,图7为本申请提供的计算机可读存储介质一实施例的框架示意图。计算机可读存储介质70存储有计算机程序,计算机程序被处理器执行时可实现上述任一实施例中数据处理方法的步骤。
该计算机可读存储介质70具体可以为U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储计算机程序的介质,或者也可以为存储有该计算机程序的服务器,该服务器可将存储的计算机程序发送给其他设备运行,或者也可以自运行该存储的计算机程序。
以上仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于Git系统的数据处理方法,其特征在于,所述数据处理方法应用于所述Git系统,所述Git系统包括缓存处理器,所述数据处理方法包括:
所述缓存处理器接收数据处理请求,其中,所述数据处理请求包括写入请求和读取请求;
当所述数据处理请求为所述写入请求时,所述缓存处理器将第一数据写入缓存区,所述第一数据为与所述写入请求对应的数据;
当所述数据处理请求为所述读取请求时,所述缓存处理器访问所述缓存区,根据访问结果进行读取操作。
2.根据权利要求1所述的数据处理方法,其特征在于,所述缓存处理器接收数据处理请求之后,还包括:
所述缓存处理器根据所述第一数据创建写入消息,并将所述写入消息存储在消息队列中。
3.根据权利要求2所述的数据处理方法,其特征在于,所述Git系统还包括数据处理中心和至少一个Git存储端,所述数据处理方法还包括:
所述数据处理中心从所述消息队列中获取所述写入消息;
所述数据处理中心根据所述写入消息,获取所述第一数据,并将所述第一数据发送至所述Git存储端进行存储。
4.根据权利要求3所述的数据处理方法,其特征在于,所述Git系统还包括至少一个Git服务管理器,每个所述Git服务管理器管理一个所述Git存储端,所述将所述第一数据发送至Git存储端进行存储的步骤,包括:
所述数据处理中心判断所述第一数据是否为更新数据;
若所述第一数据为更新数据,所述数据处理中心确定所述第一数据的上一版本数据所在的Git存储端为目标Git存储端;
若所述第一数据不为更新数据,所述数据处理中心根据所述Git服务管理器从多个所述Git存储端中确定其中一个Git存储端为目标Git存储端;
将所述第一数据发送至所述目标Git存储端进行存储。
5.根据权利要求4所述的数据处理方法,其特征在于,所述数据处理中心根据所述Git服务管理器从多个所述Git存储端中确定其中一个Git存储端为目标Git存储端的步骤,包括:
所述数据处理中心从所述Git服务管理器中获取所述Git存储端的存储状态信息;
根据所述存储状态信息确定目标Git存储端。
6.根据权利要求3所述的数据处理方法,其特征在于,所述缓存处理器访问所述缓存区,根据访问结果进行读取操作的步骤,包括:
所述缓存处理器判断所述缓存区是否存在第二数据,所述第二数据为所述读取请求对应的数据;
若所述缓存区存在所述第二数据,则从所述缓存区获取所述第二数据;
若所述缓存区不存在所述第二数据,则从所述Git存储端获取所述第二数据
将所述第二数据发送给客户端。
7.根据权利要求6所述的数据处理方法,其特征在于,所述从所述Git存储端获取所述第二数据的步骤之后,还包括:
根据缓存需求将所述第二数据写入所述缓存区。
8.一种Git系统,其特征在于,所述Git系统包括:
缓存处理器,用于接收数据处理请求,其中,所述数据处理请求包括写入请求和读取请求;
缓存区,用于缓存数据;
当所述数据处理请求为写入请求时,所述缓存处理器将第一数据写入所述缓存区,所述第一数据为与所述写入请求对应的数据;
当所述数据处理请求为读取请求时,所述缓存处理器访问所述缓存区,根据访问结果进行读取操作。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的数据处理方法。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414822.XA CN111666045A (zh) | 2020-05-15 | 2020-05-15 | 基于Git系统的数据处理方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414822.XA CN111666045A (zh) | 2020-05-15 | 2020-05-15 | 基于Git系统的数据处理方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111666045A true CN111666045A (zh) | 2020-09-15 |
Family
ID=72383799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010414822.XA Pending CN111666045A (zh) | 2020-05-15 | 2020-05-15 | 基于Git系统的数据处理方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666045A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157425A (zh) * | 2021-05-20 | 2021-07-23 | 深圳马六甲网络科技有限公司 | 业务访问的处理方法、装置、设备及存储介质 |
CN113468107A (zh) * | 2021-09-02 | 2021-10-01 | 阿里云计算有限公司 | 数据处理方法、设备、存储介质及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326372A (zh) * | 2016-08-12 | 2017-01-11 | 北京创新乐知信息技术有限公司 | Git中央仓库管理系统及控制方法 |
CN106469150A (zh) * | 2015-08-14 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
CN109165192A (zh) * | 2018-06-27 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法及装置、一种计算设备及存储介质 |
-
2020
- 2020-05-15 CN CN202010414822.XA patent/CN111666045A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106469150A (zh) * | 2015-08-14 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
CN106326372A (zh) * | 2016-08-12 | 2017-01-11 | 北京创新乐知信息技术有限公司 | Git中央仓库管理系统及控制方法 |
CN109165192A (zh) * | 2018-06-27 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法及装置、一种计算设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157425A (zh) * | 2021-05-20 | 2021-07-23 | 深圳马六甲网络科技有限公司 | 业务访问的处理方法、装置、设备及存储介质 |
CN113157425B (zh) * | 2021-05-20 | 2024-05-03 | 深圳马六甲网络科技有限公司 | 业务访问的处理方法、装置、设备及存储介质 |
CN113468107A (zh) * | 2021-09-02 | 2021-10-01 | 阿里云计算有限公司 | 数据处理方法、设备、存储介质及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11327799B2 (en) | Dynamic allocation of worker nodes for distributed replication | |
US11010240B2 (en) | Tracking status and restarting distributed replication | |
US20200348852A1 (en) | Distributed object replication architecture | |
US20210359924A1 (en) | Monitoring a stale data queue for deletion events | |
US20190245918A1 (en) | Distributed replication of an object | |
US10715622B2 (en) | Systems and methods for accelerating object stores with distributed caching | |
US11029891B2 (en) | Hybrid distributed storage system to dynamically modify storage overhead and improve access performance | |
CN109766318B (zh) | 文件读取方法及装置 | |
US8930518B2 (en) | Processing of write requests in application server clusters | |
CN111666045A (zh) | 基于Git系统的数据处理方法、系统、设备及存储介质 | |
CN114667506A (zh) | 多物理功能非易失性存储器设备的管理 | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
CN110427394B (zh) | 数据操作方法及装置 | |
US11243979B1 (en) | Asynchronous propagation of database events | |
US10067678B1 (en) | Probabilistic eviction of partial aggregation results from constrained results storage | |
CN113835613B (zh) | 一种文件读取方法、装置、电子设备和存储介质 | |
CN111796767B (zh) | 一种分布式文件系统及数据管理方法 | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
US10992743B1 (en) | Dynamic cache fleet management | |
CN113986962A (zh) | 排行榜生成方法、装置、设备及存储介质 | |
CN113051244A (zh) | 数据访问方法和装置、数据获取方法和装置 | |
CN113901018A (zh) | 一种待迁移文件识别方法、装置、计算机设备及存储介质 | |
US11914590B1 (en) | Database request router improving server cache utilization | |
US10140190B1 (en) | Efficient transaction log flushing | |
CN111399753A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200915 |
|
RJ01 | Rejection of invention patent application after publication |