CN114756173A - 文件合并的方法、系统、设备和计算机可读介质 - Google Patents
文件合并的方法、系统、设备和计算机可读介质 Download PDFInfo
- Publication number
- CN114756173A CN114756173A CN202210396348.1A CN202210396348A CN114756173A CN 114756173 A CN114756173 A CN 114756173A CN 202210396348 A CN202210396348 A CN 202210396348A CN 114756173 A CN114756173 A CN 114756173A
- Authority
- CN
- China
- Prior art keywords
- file
- merging
- execution queue
- node
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/0625—Power saving in storage systems
-
- 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/0643—Management of files
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了文件合并的方法、系统、设备和计算机可读介质,涉及计算机技术领域。该方法的一具体实施方式包括:接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。该实施方式能够降低CPU和磁盘IO的消耗,提高存储空间的利用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件合并的方法、系统、设备和计算机可读介质。
背景技术
LSM树(Log-Structured Merge Tree)存储引擎,是一种分层,有序,面向磁盘的数据结构。其核心思想是充分利用了磁盘批量的顺序写要远比随机写性能高出很多,这一原理进行设计和优化,以此让写性能达到最优,并且通过定期合并瘦身,有效的清除无效数据,缩短读取路径,提高磁盘利用空间。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:大量对写吞吐有高要求的数据库,都在围绕LSM-Tree。但合并操作是非常消耗CPU和磁盘IO的,尤其是在业务高峰期,则会降低整个系统的吞吐量。
发明内容
有鉴于此,本发明实施例提供一种文件合并的方法、系统、设备和计算机可读介质,能够降低CPU和磁盘IO的消耗,提高存储空间的利用率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种文件合并的方法,包括:
接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;
基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;
将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。
所述多个文件标识对应的文件均是小于预设文件数据量的文件。
所述接收发起节点推送的合并操作,包括:
接收多个发起节点推送的多个合并操作;
所述将所述文本合并任务放入公共执行队列中,包括:
根据所述文件标识和发送合并操作的时间,确定所述多个合并操作的有效性;
将有效的合并操作按照所述合并操作时间,放入公共执行队列中。
所述多个文件标识对应的文件属于相同的数据分区且相邻。
所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,包括:
所述公共执行队列位于协调服务器上,所述分布式文件存储系统中的计算节点,收到协调服务器的通知消息,则监听到所述公共执行队列发生变化;
按照所述公共执行队列更新执行队列。
所述基于所述执行队列执行文件合并,包括:
所述分布式文件存储系统中的其他计算节点,基于所述执行队列查询所述共享存储得到合并后的文件,将所述合并后的文件加载到缓存中,以执行文件合并。
所述基于所述执行队列执行文件合并,包括:
所述发起节点,基于所述执行队列,在缓存中执行文件合并。
根据本发明实施例的第二方面,提供了一种文件合并的系统,包括:
发起节点,用于推送合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;
协调服务器,接收发起节点推送的合并操作,基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务,以及将所述文本合并任务放入公共执行队列中;
计算节点,用于监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。
根据本发明实施例的第三方面,提供了一种文件合并的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的方法。
根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述的方法。
上述发明中的一个实施例具有如下优点或有益效果:接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。在分布式文件存储系统中,计算节点通过队列实现文件合并,进而能够大大降低CPU和磁盘IO的消耗,提高存储空间的利用率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的文件合并的方法的主要流程示意图;
图2是根据本发明实施例的文件合并的应用场景示意图;
图3是根据本发明实施例的协调服务器处理多个合并操作的流程示意图;
图4是根据本发明实施例的按照公共执行队列更新执行队列的流程示意图;
图5是根据本发明实施例的计算节点执行文件合并的示意图;
图6是根据本发明实施例的文件合并的系统的主要结构示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
对于大量对写吞吐有高要求的数据库,都在围绕LSM-Tree。文件合并对于CPU和硬盘来说,会大量消耗CPU和磁盘IO,进而导致影响系统的吞吐量。
为了解决文件合并大量消耗CPU和磁盘IO,可以采用以下本发明实施例中的技术方案。
参见图1,图1是根据本发明实施例的文件合并的方法主要流程示意图,分布式文件存储中的计算节点,通过队列执行文件合并。如图1所示,具体包括以下步骤:在图1的技术方案中,协调服务器是各步骤的执行主体。
S101、接收发起节点推送的合并操作,合并操作包括计算节点标识、多个文件标识和合并文件标识,发起节点是分布式文件存储系统中发起合并操作的计算节点。
分布式文件存储系统,将大量数据分散到不同的计算节点存储,大大减小了数据丢失的风险。分布式文件存储系统具有冗余性,部分计算节点的故障并不影响整体的正常运行。而且,即使出现故障的计算机所述存储数据已经损坏,也可以由其它计算节点将损坏的数据恢复出来。此外,集群之外的计算机只需要经过简单的配置就可以加入到分布式文件存储系统中,共享数据,具有极强的可扩展能力。
参见图2,图2是根据本发明实施例的文件合并的应用场景示意图。图2是基于共享存储类LSM引擎数据库,计算节点和共享存储分离,计算节点可以水平秒级扩缩容。
由于采用共享存储,数据无需重分布,并且存储节点即分布式文件存储系统可以无限扩容。协调服务器提供分布式协调任务服务,包括分布式合并等。
协调服务器是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
图2中,针对读取文件和/或写入文件的指令,由计算节点处理,进而对存储在共享存储中的文件执行读取或写入操作。也就是说,文件是存储在共享存储上的,每个计算节点都可以看到共享存储上的文件。计算节点发起合并计划,以执行文件合并。合并文件的过程称为LSM引擎。
在本发明的实施例中,计算节点接收到读取和/或写入文件的指令后,就可以发起合并操作。其中,将发起合并操作的计算节点称为发起节点。即,发起节点是分布式文件存储系统中发起合并操作的计算节点。在分布式文件存储系统中,文件存储在共享存储中。即,文件存储在分布式文件存储系统中的共享存储中。
在本发明的一个实施例中,发起节点针对小数据量的文件发起合并操作,以执行合并计划。即,多个文件标识对应的文件均是小于预设文件数据量的文件。预设文件数据量可以基于实际应用场景预设设置。也就是说,响应于读取和/或写入文件的指令,针对小于预设文件数据量的文件,发起节点发起合并操作。
这是考虑到,在共享存储查询,若扫描大量小数据量的文件,则会大大降低查询速度。进而,为了提高查询速度,需要合并小数据量的文件。在本发明实施例中,以预设文件数据量衡量小数据量的文件。即,小于预设文件数据量的文件,为文件合并的对象。
为了实现合并操作,发起节点需要将合并操作推送至协调服务器,进而通过协调服务器执行文件合并。
下面就合并操作中所包括的参数进行示例性地说明。合并操作中包括节点标识、多个文件标识和合并文件标识。节点标识即发起节点的标识。多个文件标识是指多个待合并文件标识。合并文件标识是合并后的文件标识。作为一个示例,节点标识:CH1;多个文件标识分别为:202001_0_0_0和202001_0_0_1;合并文件标识202001_0_1_1。
在本发明实施例中,考虑到文件存储在共享存储中,为了便于文件合并,多个文件标识对应文件属于相同的数据分区且相邻。也就是说,待合并文件在同一个的数据分区中,待合并文件是相邻的文件。
采用计算存储分离的方式,计算节点无状态,共享存储可以分别横向无限扩展。所有计算节点共享同一份数据,文件对应的数据存储在共享存储中。文件目录格式为partitionId_minBlock_maxBlock_level。partitionId是数据分区标识;minBlock是最小块标识;maxBlock是最大块标识;level是合并次数。
文本目录格式包含以列的形式保存用户的数据,还包括一些辅助查询的数据。用户每次写入数据,都生成新的目录。后台线程不断的对磁盘上文件进行合并,减少存储放大。每发生一次文件合并操作,会生成新的文件,老的文件会被后台清理。为加快查询速度,计算节点会缓存文件,新生成的文件必须添加到计算节点的缓存中才会被用户看到。
S102、基于计算节点标识、多个文件标识和合并文件标识,创建文件合并任务。
协调服务器用于接收合并操作,进而基于计算节点标识、多个文件标识和合并文件标识,创建文件合并任务。可以理解的是,协调服务器接收一个或多个发起节点发送的合并操作。
在协调服务器接收一个发起节点发送的合并操作的情况下,就可以直接基于计算节点标识、多个文件标识和合并文件标识,创建文件合并任务,并将文本合并任务放入公共执行队列中。
S103、将文本合并任务放入公共执行队列中,以使分布式文件存储系统中的计算节点,监听到公共执行队列发生变化的情况下,按照公共执行队列更新执行队列,并基于执行队列执行文件合并。
在协调服务器接收多个发起节点发送的合并操作。即:多个发起节点,将多个合并操作并行推送至协调服务器。合并操作需要放入公共执行队列中执行,进而协调服务器需要处理多个合并操作。
参见图3,图3是根据本发明实施例的协调服务器处理多个合并操作的流程示意图,具体包括以下步骤:
S301、根据文件标识和发送合并操作的时间,确定多个合并操作的有效性。
协调服务器在接收到多个合并操作的情况下,需要确定合并操作的有效性。具体来说,根据文件标识和发送合并操作的时间,确定多个合并操作的有效性。
具体来说,协调服务器依据文件标识,判断多个合并操作是否冲突。多个合并操作不冲突的情况下,则确定多个合作操作均有效。多个合并操作冲突的情况下,可以按照发送合并操作的时间,确定合并操作的有效性。
作为一个示例,文件标识是待合并文件的标识,若多个合并操作的文本标识相同,或多个合并操作的文件标识对应文件重叠,则确定多个合并操作冲突。
在具体判断合并操作冲突的情况下,以两个合并操作进行判断是否冲突。需要说明的是,合并操作冲突是由于涉及相同的文件。
如:计算节点1和计算节点2,并行发起合并计划。计算节点1制定将文件标识201905_0_0_0和文件标识201905_1_1_0,合并为201905_0_1_1。计算节点2制定将201905_1_1_0和201905_3_3_0合并为201905_2_3_1。
由于计算节点1合并操作1中文件标识201905_1_1_0,与计算节点2合并操作2中文件标识201905_1_1_0相同,则说明合并操作1的待合并文件与合并操作2的待合并文件相同,因而合并操作1与合并操作2冲突。
在合并操作冲突的情况下,则基于合并操作时间,将合并操作时间早的合并操作确定为有效合并操作;将合并操作时间晚的合并操作确定为无效合并操作。
S302、将有效的合并操作按照合并操作时间,放入公共执行队列中。
对于有效的合并操作,需要按照合并操作时间依次执行。具体地,协调服务器,将有效的合并操作按照合并操作时间,放入公共执行队列中。
在图3的实施例中,协调服务器先确定多个合并操作的有效性,进而将有效的合并操作放入公共执行队列中。
分布式文件存储系统中的计算节点,为了执行文件合并,需要监听公共执行队列是否发生变化。计算节点在监听到公共执行队列发生变化的情况下,按照公共执行队列更新执行队列,以基于执行队列执行文件合并。其中,公共执行队列用于记录需要执行的文本合并任务。执行队列是计算节点自身执行文本合并的队列。
可以理解的是,对于分布式文件存储系统中的计算节点来说,监听到公共执行队列发生变化的情况下,则将发生变化的内容更新到自身的执行队列中,进而计算节点中执行文件合并,以确保计算节点所存储文件与共享存储所存储文件的一致性。
参见图4,图4是根据本发明实施例的按照公共执行队列更新执行队列的流程示意图。具体包括以下步骤:
S401、公共执行队列位于协调服务器上,分布式文件存储系统中的计算节点,收到协调服务器的通知消息,则监听到公共执行队列发生变化。
为了协调计算节点,公共执行队列位于协调服务器上。分布式文件存储系统中的计算节点,收到协调服务器的通知消息,则监听到公共执行队列发生变化。也就是说,在公共执行队列发生变化的情况下,各个计算节点通过监听事件,在收到协调服务器的通知消息,获知公共执行队列发生变化。
S402、按照公共执行队列更新执行队列。
监听到公共执行队列发生变化的计算节点,为了保障所存储文件与共享存储的一致性,按照公共执行队列更新执行队列。
在图4的实施例中,分布式文件存储系统中的计算节点,监听到公共执行队列发生变化,则更新执行队列,以保障自身存储文件与共享存储的一致性。
在本发明的一个实施例中,执行文件合并过程中,分布式文件存储系统中的计算节点分为两类,发起节点和非发起节点。发起节点即发起合并操作的计算节点。非发起节点即未发起合并的其他节点。
对于发起节点和非发起节点来说,基于执行队列执行文件合并的方式是不同的。
针对于发起节点,基于执行队列,在缓存中执行文件合并。这是考虑到发起节点,在经协调服务器处理后,可以在自身的缓存中执行文件合并。
针对非发起节点,即分布式文件存储系统中的其他计算节点,基于执行队列查询共享存储,将合并后的文件加载到缓存中,以执行文件合并。
非发起节点在缓存中并未存储合并后的文件。合并后的文件存储在共享存储中,非发起节点需要将合并后的文件加载到自身的缓存中,从而执行文件合并。即,分布式文件存储系统中的其他计算节点,基于执行队列查询共享存储得到合并后的文件,将合并后的文件加载到缓存中,以执行文件合并。
需要说明的是,共享存储在执行合并操作后,在共享存储中包括合并后的文件。
在本发明实施例中,同一个合并计划,只由一个计算节点执行,即发起节点执行,防止发生冲突。不执行合并操作的计算节点,等待发起节点执行完毕之后,基于执行队列查询共享存储以同步数据,更新自身的缓存,完成文件合并。
在上述实施例中,接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。在分布式文件存储系统中,计算节点通过队列实现文件合并,进而能够大大降低CPU和磁盘IO的消耗,提高存储空间的利用率。
参见图5,图5是根据本发明实施例的计算节点执行文件合并的示意图。其中,图5中涉及两个计算节点,计算节点1和计算节点2。
计算节点1和计算节点2并发发起合并计划。合并计划中包括合并操作。具体来说,在分发日志中包括合并操作涉及的参数。合并操作包括节点标识、起始文件标识、结束文件标识和合并文件标识。
作为一个示例,计算节点1的节点标识是:CH1;起始文件标识:201905_0_0_0;结束文件标识:201905_1_1_0;合并文件标识:201905_0_1_1。计算节点2的节点标识是:CH2;起始文件标识:201905_2_2_0;结束文件标识:201905_3_3_0;合并文件标识:201905_2_3_1。
经协调服务器协调,先执行计算节点1的合并操作。计算节点1是发起节点,计算节点2是非发起节点。
计算节点1和计算节点2,监听公共执行队列。在监听到公共执行队列发生变化的情况下,按照公共执行队列更新执行队列。上述记录在响应日志中。
对于发起节点和非发起节点,文件合并过程不同。对于计算节点1在缓存中执行合并;对于计算节点2,在共享缓存中加载合并后的文件。在完成计算节点1的合并操作后。类似地,再执行计算节点2的合并操作。
参见图6,图6是根据本发明实施例的文件合并的系统的主要结构示意图,文件合并的系统可以实现文件合并的方法,如图6所示,文件合并的系统具体包括:
发起节点601,用于推送合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;
协调服务器602,接收发起节点推送的合并操作,基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务,以及将所述文本合并任务放入公共执行队列中;
计算节点603,用于监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。
需要说明的是,发起节点601是计算节点中的一种。
在本发明的一个实施例中,所述多个文件标识对应的文件均是小于预设文件数据量的文件。
在本发明的一个实施例中,协调服务器602,具体用于接收多个发起节点推送的多个合并操作;以及,根据所述文件标识和发送合并操作的时间,确定所述多个合并操作的有效性;将有效的合并操作按照所述合并操作时间,放入公共执行队列中。
在本发明的一个实施例中,所述多个文件标识对应文件属于相同的数据分区且相邻。
在本发明的一个实施例中,计算节点603,具体用于所述公共执行队列位于协调服务器上,收到协调服务器的通知消息,则监听到所述公共执行队列发生变化;按照所述公共执行队列更新执行队列。
在本发明的一个实施例中,计算节点603,具体用于基于所述执行队列查询所述共享存储得到合并后的文件,将所述合并后的文件加载到缓存中,以执行文件合并。
在本发明的一个实施例中,发起节点601,具体用于基于所述执行队列,在缓存中执行文件合并。
图7示出了可以应用本发明实施例的文件合并的方法或文件合并的系统的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的文件合并的方法一般由服务器705执行,相应地,文件合并的系统一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发起节点、协调服务器和计算节点。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,计算节点还可以被描述为“用于监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;
基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;
将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。
根据本发明实施例的技术方案,接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。在分布式文件存储系统中,计算节点通过队列实现文件合并,进而能够大大降低CPU和磁盘IO的消耗,提高存储空间的利用率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种文件合并的方法,其特征在于,包括:
接收发起节点推送的合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;
基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务;
将所述文本合并任务放入公共执行队列中,以使所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。
2.根据权利要求1所述文件合并的方法,其特征在于,所述多个文件标识对应的文件均是小于预设文件数据量的文件。
3.根据权利要求1所述文件合并的方法,其特征在于,所述接收发起节点推送的合并操作,包括:
接收多个发起节点推送的多个合并操作;
所述将所述文本合并任务放入公共执行队列中,包括:
根据所述文件标识和发送合并操作的时间,确定所述多个合并操作的有效性;
将有效的合并操作按照所述合并操作时间,放入公共执行队列中。
4.根据权利要求1所述文件合并的方法,其特征在于,所述多个文件标识对应的文件属于相同的数据分区且相邻。
5.根据权利要求1所述文件合并的方法,其特征在于,所述分布式文件存储系统中的计算节点,监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,包括:
所述公共执行队列位于协调服务器上,所述分布式文件存储系统中的计算节点,收到协调服务器的通知消息,则监听到所述公共执行队列发生变化;
按照所述公共执行队列更新执行队列。
6.根据权利要求1所述文件合并的方法,其特征在于,所述基于所述执行队列执行文件合并,包括:
所述分布式文件存储系统中的其他计算节点,基于所述执行队列查询所述共享存储得到合并后的文件,将所述合并后的文件加载到缓存中,以执行文件合并。
7.根据权利要求1所述文件合并的方法,其特征在于,所述基于所述执行队列执行文件合并,包括:
所述发起节点,基于所述执行队列,在缓存中执行文件合并。
8.一种文件合并的系统,其特征在于,包括:
发起节点,用于推送合并操作,所述合并操作包括计算节点标识、多个文件标识和合并文件标识,所述发起节点是分布式文件存储系统中发起合并操作的计算节点;
协调服务器,接收发起节点推送的合并操作,基于所述计算节点标识、所述多个文件标识和所述合并文件标识,创建文件合并任务,以及将所述文本合并任务放入公共执行队列中;
计算节点,用于监听到所述公共执行队列发生变化的情况下,按照所述公共执行队列更新执行队列,并基于所述执行队列执行文件合并。
9.一种文件合并的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210396348.1A CN114756173A (zh) | 2022-04-15 | 2022-04-15 | 文件合并的方法、系统、设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210396348.1A CN114756173A (zh) | 2022-04-15 | 2022-04-15 | 文件合并的方法、系统、设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114756173A true CN114756173A (zh) | 2022-07-15 |
Family
ID=82331375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210396348.1A Pending CN114756173A (zh) | 2022-04-15 | 2022-04-15 | 文件合并的方法、系统、设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114756173A (zh) |
-
2022
- 2022-04-15 CN CN202210396348.1A patent/CN114756173A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858194A (zh) | 一种数据库扩容的方法和装置 | |
CN111181765A (zh) | 一种任务处理方法和装置 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN112597126A (zh) | 一种数据迁移方法和装置 | |
CN107526838B (zh) | 数据库集群扩容的方法和装置 | |
CN113282589A (zh) | 一种数据获取方法和装置 | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN113760924A (zh) | 一种分布式事务的处理方法和装置 | |
CN108833147B (zh) | 一种配置信息的更新方法和装置 | |
CN112115149A (zh) | 一种提供数据的方法和装置 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN111831503A (zh) | 一种基于监控代理的监控方法和监控代理装置 | |
CN112711572B (zh) | 适用于分库分表的在线扩容方法和装置 | |
CN114756173A (zh) | 文件合并的方法、系统、设备和计算机可读介质 | |
CN109213815B (zh) | 控制执行次数的方法、装置、服务器终端以及可读介质 | |
CN113535768A (zh) | 生产监控方法和装置 | |
CN113778657B (zh) | 一种数据处理方法和装置 | |
CN113760179A (zh) | 一种数据处理方法和装置 | |
CN110750410B (zh) | 一种监听数据库日志的方法和装置 | |
CN114090524A (zh) | 一种Excel文件分布式导出方法和装置 | |
CN112835724A (zh) | 一种解决消息版本冲突的方法和装置 | |
CN113065042A (zh) | 一种终端设备的管理方法和装置 | |
CN113110898A (zh) | 一种交易任务执行方法和装置 | |
CN114490128A (zh) | 一种异地多活架构下的数据存储方法和装置 | |
CN114756307A (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 |