CN107247729A - 一种文件处理方法和装置 - Google Patents
一种文件处理方法和装置 Download PDFInfo
- Publication number
- CN107247729A CN107247729A CN201710303867.8A CN201710303867A CN107247729A CN 107247729 A CN107247729 A CN 107247729A CN 201710303867 A CN201710303867 A CN 201710303867A CN 107247729 A CN107247729 A CN 107247729A
- Authority
- CN
- China
- Prior art keywords
- back end
- data block
- management node
- mark
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及通信技术领域,尤其涉及一种文件处理方法和装置,用于实现在主管理节点失效之后,不需人工干预也能够保证文件处理的连续性。本发明实施例提供的文件处理方法适用于包括主管理节点、备管理节点和M个数据节点的系统;在确定主管理节点失效的情况下,将备管理节点作为当前的主管理节点;确定出M个数据节点中每个数据节点的选举权值;根据M个数据节点中每个数据节点的选举权值,从至少一个数据节点中选出一个数据节点作为当前的备管理节点;将当前的主管理节点上的管理数据同步至当前的备管理节点上。本发明实施例提供的文件处理方法实现了在主管理节点失效之后,不需人工干预也能够保证文件处理的连续性。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种文件处理方法和装置。
背景技术
在现有的银联系统中,交易量不断提高,导致交易产生的文件量也逐步提高;一个节点远远无法存储该系统海量的交易量,因此,需要对交易产生的海量文件进行跨机处理。
现有技术中,将海量文件存储在分布式系统中,该系统包括一个管理节点和多个数据节点,在管理节点出现失效的情况之后,必须人工的干预恢复管理节点;如果在人工干预管理节点恢复也失败的情况下,会导致无法获得管理节点中的管理数据,进而无法向该系统中存储文件和读取文件操作,影响到整个系统的可用性。
因此,亟需一种文件处理方法,实现在主管理节点失效之后,不需人工干涉也能够保证文件处理的连续性。
发明内容
本发明实施例提供一种文件处理方法和装置,实现在主管理节点失效之后,不需人工干涉也能够保证文件处理的连续性。
本发明实施例提供一种文件处理方法,适用于包括主管理节点、备管理节点和M个数据节点的系统;所述M为大于等于1的整数;该方法包括:
在确定所述主管理节点失效的情况下,将所述备管理节点作为当前的主管理节点;
确定出所述M个数据节点中每个数据节点的选举权值;
根据所述M个数据节点中每个数据节点的选举权值,从所述至少一个数据节点中选出一个数据节点作为当前的备管理节点;
将所述当前的主管理节点上的管理数据同步至所述当前的备管理节点上。
可选地,根据以下内容中的任一项或任多项内容确定的选举权值:中央处理器CPU核心数、所述CPU并发数、所述CPU参数经验值、内存容量、内存频率、内存参数经验值、磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值。
可选地,所述确定所述主管理节点失效,包括:通过所述M个数据节点中的每个数据节点向所述主管理节点发送心跳包、且在预设时长内未收到所述主管理节点发送的所述心跳包对应的响应包的情况下,确定所述主管理节点失效。
可选地,所述M个数据节点的每个数据节点包括至少一个数据块,所述至少一个数据块中每个数据块对应一个数据块的标识;一个数据块的标识所标识的数据块对应存储于至少一个数据节点上;所述方法还包括:在所述M个数据节点中存在至少一个数据节点失效的情况下,确定出每个失效的数据节点的标识,以及所述每个失效的数据节点包括的数据块的标识;针对所述每个失效的数据节点包括的每个数据块,执行:从所述M个数据节点中除包括有该数据块的标识的数据节点之外的节点中确定出:负载最小的数据节点;将该数据块移动到所述负载最小的数据节点上。
可选地,所述方法还包括:通过多次移动操作将所述M个数据节点上的数据块移动至所述新增的数据节点中,直至所述新增的数据节点的负载大于负载阈值;其中,所述多次移动操作中的每次移动操作对应移动一个数据块;针对所述多次移动操作中的每次移动操作,将所述M个数据节点中负载最大的数据节点上包括的数据块确定为该次移动操作需对应移动的数据块。
可选地,所述负载阈值根据:所述M个数据节点中负载最小的数据节点的负载,以及预设权重确定的。
可选地,所述方法还包括:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;根据文件标识和数据块的标识的对应关系,确定出存储所述待处理文件的数据块的标识;根据数据块的标识和数据节点的标识的对应关系,确定出存储所述待处理文件的数据块对应的数据节点的标识;从所述存储所述待处理文件的数据块对应的数据节点中的、存储所述待处理文件的数据块读取所述待处理文件。
可选地,所述方法还包括:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;从所述M个数据节点中的每个数据节点确定出可存储所述待处理文件的空闲块;将所述待处理文件存储在所述空闲块中;将所述待处理文件的文件标识和所述存储所述待处理文件的空闲块的标识的对应关系,以及所述存储所述待处理文件的空闲块的标识和所述空闲块对应的数据节点的标识的对应关系存储于所述管理节点中。
本发明实施例提供一种用于文件处理的装置,适用于包括主管理节点、备管理节点和M个数据节点的系统;所述M为大于等于1的整数;所述装置包括:
确定单元,用于在确定所述主管理节点失效的情况下,将所述备管理节点作为当前的主管理节点;确定出所述M个数据节点中每个数据节点的选举权值;
选举单元,用于根据所述M个数据节点中每个数据节点的选举权值,从所述至少一个数据节点中选出一个数据节点作为当前的备管理节点;
处理单元,用于将所述当前的主管理节点上的管理数据同步至所述当前的备管理节点上。
可选地,根据以下内容中的任一项或任多项内容确定的选举权值:中央处理器CPU核心数、所述CPU并发数、所述CPU参数经验值、内存容量、内存频率、内存参数经验值、磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值。
可选地,所述确定单元,用于:通过所述M个数据节点中的每个数据节点向所述主管理节点发送心跳包、且在预设时长内未收到所述主管理节点发送的所述心跳包对应的响应包的情况下,确定所述主管理节点失效。
可选地,所述M个数据节点的每个数据节点包括至少一个数据块,所述至少一个数据块中每个数据块对应一个数据块的标识;一个数据块的标识所标识的数据块对应存储于至少一个数据节点上;所述确定单元,还用于:在所述M个数据节点中存在至少一个数据节点失效的情况下,确定出每个失效的数据节点的标识,以及所述每个失效的数据节点包括的数据块的标识;针对所述每个失效的数据节点包括的每个数据块,执行:从所述M个数据节点中除包括有该数据块的标识的数据节点之外的节点中确定出:负载最小的数据节点;处理单元,还用于:将该数据块移动到所述负载最小的数据节点上。
可选地,所述处理单元,还用于:通过多次移动操作将所述M个数据节点上的数据块移动至所述新增的数据节点中,直至所述新增的数据节点的负载大于负载阈值;其中,所述多次移动操作中的每次移动操作对应移动一个数据块;针对所述多次移动操作中的每次移动操作,将所述M个数据节点中负载最大的数据节点上包括的数据块确定为该次移动操作需对应移动的数据块。
可选地,所述负载阈值根据:所述M个数据节点中负载最小的数据节点的负载,以及预设权重确定的。
可选地,所述装置还包括接收单元;所述接收单元,用于:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;所述确定单元,还用于:根据文件标识和数据块的标识的对应关系,确定出存储所述待处理文件的数据块的标识;根据数据块的标识和数据节点的标识的对应关系,确定出存储所述待处理文件的数据块对应的数据节点的标识;所述处理单元,还用于:从所述存储所述待处理文件的数据块对应的数据节点中的、存储所述待处理文件的数据块读取所述待处理文件。
可选地,所述装置还包括接收单元;所述接收单元,用于:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;所述确定单元,还用于:从所述M个数据节点中的每个数据节点确定出可存储所述待处理文件的空闲块;所述处理单元,还用于:将所述待处理文件存储在所述空闲块中;将所述待处理文件的文件标识和所述存储所述待处理文件的空闲块的标识的对应关,以及所述存储所述待处理文件的空闲块的标识和所述空闲块对应的数据节点的标识的对应关系存储于所述管理节点中。
本发明实施例提供一种计算机存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任意可能的实现方式中的方法。
本发明实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任意可能的实现方式中的方法。
本发明实施例中,由于在确定主管理节点失效的情况下,将备管理节点作为当前的主管理节点;确定出M个数据节点中每个数据节点的选举权值;根据M个数据节点中每个数据节点的选举权值,从至少一个数据节点中选出一个数据节点作为当前的备管理节点;将当前的主管理节点上的管理数据同步至当前的备管理节点上;因此,在该系统中始终存在两个管理节点,如此,实现了在主管理节点失效之后,不需人工干预也能够保证文件处理的连续性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种文件处理系统架构示意图;
图2为本发明实施例提供的一种文件处理方法流程示意图;
图3为本发明实施例提供的写文件方法示意图;
图4为本发明实施例提供的一种文件处理装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
图1示例性示出了本发明实施例适用的文件处理系统架构示意图。
本发明实施例中的文件处理系统包括主管理节点、备管理节点和M个数据节点;其中,M为大于等于1的整数;如图1所示,该文件处理系统架构100包括:主管理节点101、备管理节点102、数据节点103、数据节点104和数据节点105和文件处理装置106。其中,主管理节点101分别连接备管理节点102、数据节点103、数据节点104和数据节点105,具体的连接方式有多种,比如采用有线连接,又比如,采用无线连接。可选地,数据节点103、数据节点104和数据节点105之间也可以相互连接。本发明实施例中,文件处理装置106可以设置在主管理节点101中,也可以设置在备管理节点102中,也可以设置在数据节点103、数据节点104和数据节点105中的任一个数据节点中,也可以是在主管理节点101、备管理节点102、数据节点103、数据节点104和数据节点105之外设置的一个独立的装置;文件处理装置106用于执行本发明实施例提供的文件处理方法。
本发明实施例中,文件处理系统中的每个节点上都设置有如下服务功能:异步IO传输服务、异步任务服务、数据通信服务、选举服务、分配和管理BLOCK服务、管理数据节点服务、合并服务、压缩服务、数据存储服务、副本传输服务。但是只有主管理节点提供上述全部服务,而其它节点在特定其情况下才会提供上述任一项或任多项服务。举个例子,当主管理节点失效时,备管理节点会启动上述提供的所有服务功能,作为当前的主管理节点;而此时各个数据节点会启动选举服务,从所有数据节点中选举一个数据节点作为备管理节点。
本发明实施例中,主管理节点101和备管理节点102存储相同的管理数据;其中,管理数据包括数据节点的标识、数据节点存储的数据块的标识、数据节点上存储的文件的文件标识等。
本发明实施例中,管理数据用于在接收到文件处理请求时,根据管理数据确定处理文件处理请求的数据节点。具体分为多种情况:
第一种情况,若文件处理请求为写文件请求,即在某个数据节点中读取待处理文件;根据主管理节点101上存储的管理数据确定可以写入待处理文件的空闲块对应的数据节点的标识,在将待处理文件写入至空闲块对应的数据节点之后,得到该待处理文件的标识与该写入待处理文件的空闲块的标识的对应关系,以及该写入待处理文件的空闲块的标识与该写入待处理文件的空闲块所在的数据节点的标识的对应关系。
第二种情况,若文件处理请求为读文件请求,即在某个数据节点中读取待处理文件;因为主管理节点101上存储的管理数据包括:该待处理文件的标识和存储该待处理文件的数据块的标识的对应关系,以及存储该待处理文件的数据块的标识和存储该待处理文件的数据块所在的数据节点的标识的对应关系;所以根据主管理节点101上存储的管理数据和待处理文件的文件标识,可以确定存储待处理文件的数据块的标识,以及该存储待处理文件的数据块所在的数据节点的标识;然后在存储待处理文件的数据块所在的数据节点读取到处理文件。
图2示例性示出了本发明实施例提供的一种文件处理方法流程示意图。
基于图1所示的系统架构,如图2所示,本发明实施例提供的一种文件处理方法,适用于包括主管理节点、备管理节点和M个数据节点的系统;所述M为大于等于1的整数;该方法包括以下步骤:
步骤201:在确定主管理节点失效的情况下,将备管理节点作为当前的主管理节点;
步骤202:确定出M个数据节点中每个数据节点的选举权值;
步骤203:根据M个数据节点中每个数据节点的选举权值,从至少一个数据节点中选出一个数据节点作为当前的备管理节点;
步骤204:将当前的主管理节点上的管理数据同步至当前的备管理节点上。
本发明实施例中,由于在确定主管理节点失效的情况下,将备管理节点作为当前的主管理节点;确定出M个数据节点中每个数据节点的选举权值;根据M个数据节点中每个数据节点的选举权值,从至少一个数据节点中选出一个数据节点作为当前的备管理节点;将当前的主管理节点上的管理数据同步至当前的备管理节点上;因此,在该系统中始终存在两个管理节点,如此,实现了在主管理节点失效之后,不需人工干预也能够保证文件处理的连续性。
可选地,在确定主管理节点失效的情况下,将备管理节点作为当前的主管理节点;具体包括:启动备管理节点上的服务功能,该启动了服务功能的备管理节点开始管理所有数据节点。
本发明实施例中,系统中的主管理节点和M个数据节点之间通过心跳服务检测彼此的状态,具体包括以下两个方面:
一方面,主管理节点通过向数据节点发生心跳包,检测数据节点的状态:若通过主管理节点向M个数据节点中的每个数据节点发送心跳包、且在预设时长内接收到该数据节点返回的该心跳包对应的响应包,则确定该数据节点处于正常工作状态;若通过主管理节点向M个数据节点中的每个数据节点发送心跳包、且在预设时长内未接收到该数据节点返回的该心跳包对应的响应包,则确定该数据节点失效。可选地,主管理节点也可以通过向备管理节点发送心跳包,检测备管理节点的状态,具体方法同上述主管理节点检测数据节点的状态的方法。如此,根据主管理节点确定M个数据节点和备管理节点中的每个节点是否失效,进而实时进行后续操作:比如备管理节点失效,则可以及时从M个数据节点中选举出一个数据节点作为备管理节点;又比如,数据节点失效,则可以及时对失效的数据节点上的数据块移动到其它数据节点中,保证了整个系统的数据完整性。
另一方面,M个数据节点中的每个数据节点向所述主管理节点发送心跳包,检测主管理节点的状态:在通过所述M个数据节点中的每个数据节点向所述主管理节点发送心跳包、且在预设时长内收到主管理节点发送的该心跳包对应的响应包的情况下,确定所述主管理节点处于正常工作状态;而确定主管理节点失效,包括:在通过M个数据节点中的每个数据节点向主管理节点发送心跳包、且在预设时长内未收到主管理节点发送的该心跳包对应的响应包的情况下,确定主管理节点失效。如此,可以确定出及时的确定出主管理节点是否失效,便于及时启动备管理节点上的服务功能,以及各个数据节点上的选举服务,保证了系统的文件处理的连续性。
需要说明的是,当某一个或某几个数据节点在预设时长内未收到主管理节点发送的该心跳包对应的响应包时,有可能是该数据节点失效,导致对主管理节点状态检测结果不准确;为避免上述这种情况,在M个数据节点中的每个数据节点检测到主管理节点的状态之后,M个数据节点中的每个数据节点之间进行通信,相互彼此测的结果是否准确。举个例子,比如M等于10,在10个数据节点中,其中有8个数据节点检测结果为主管理节点处于正常工作状态,而有2个数据节点检测结果为主管理节点失效,此时,确定出主管理节点并未失效;而需要确定检测结果为主管理节点失效的2个数据节点是否失效,而且这2个数据节点的可能性较大。
本发明实施例中,在确定主管理节点失效之后,确定出M个数据节点中每个数据节点的选举权值的方式有多种,其中一种为:通过M个数据节点中每个数据节点本身计算选举权值;另一种方式为:通过当前的主管理节点中计算M个数据节点中每个数据节点选举权值。可选的一种确定当前的备管理节点的实现方式为:根据所述M个数据节点中每个数据节点的选举权值,确定出M个数据节点中选举权值最大的数据节点;将该选举权值最大的数据节点作为当前的备管理节点。可选地,根据以下内容中的任一项或任多项内容确定的选举权值:中央处理器CPU核心数、所述CPU并发数、所述CPU参数经验值、内存容量、内存频率、内存参数经验值、磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值。也就是说,其一为:根据上述任一项确定选举权值,比如根据中央处理器CPU核心数确定选举权值;又比如根据内存容量确定选举权值;其二为:根据上述任多项确定选举权值,比如可以根据中央处理器CPU核心数、CPU并发数和CPU参数经验值确定选举权值;也可以根据内存容量、内存频率、内存参数经验值;也可以根据磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值;其二为:根据上述所有项确定选举权值。如此,根据数据节点的选举权值确定出的当前的备管理节点,考虑了M个数据节点中的每个数据节点的系统性能,比如CPU、内存、磁盘的相关参数,使得确定出的备管理节点能更好的为整个系统服务。
本发明实施例提供一种根据上述所有项确定选举权值的具体实现方式:选举权值={(CPU核心数+并发数)*CPU频率}*CPU参数+(内存容量)*内存频率*内存参数+磁盘容量*磁盘I/O*磁盘数*磁盘参数;其中,CPU参数、内存参数和磁盘参数主要是协调CPU、内存、磁盘之间的计算公式使之处在相适应的计算权值上。可选的,权值越大说明选举成功的可能性越高。
可选地,M个数据节点的每个数据节点包括至少一个数据块,至少一个数据块中每个数据块对应一个数据块的标识;一个数据块的标识所标识的数据块对应存储于至少一个数据节点上;举个例子,例如有三个数据节点,分别对应的标识为:数据节点A、数据节点B、数据节点C;其中,数据节点A包括两个数据块,对应的数据块标识为数据块001、数据块002;数据节点B包括三个数据块,对应的数据块标识为数据块003、数据块004、数据块005;数据节点C包括三个数据块,对应的数据块标识为数据块001、数据块003、数据块005;在此例中,数据块001所标识的数据块存储于数据节点A和数据节点C上,数据块003所标识的数据块存储于数据节点B和数据节点C上,数据块005所标识的数据块存储于数据节点B和数据节点C上。
本发明实施例中,在M个数据节点中存在至少一个数据节点失效或者系统有新增加的数据节点的情况下,会触发负载均衡服务;本发明实施例提供的文件处理方法还包括以下两种情况下:
第一种,在M个数据节点中存在至少一个数据节点失效的情况下,确定出每个失效的数据节点的标识,以及每个失效的数据节点包括的数据块的标识;针对每个失效的数据节点包括的每个数据块,执行:从M个数据节点中除包括有该数据块的标识的数据节点之外的节点中确定出:负载最小的数据节点;将该数据块移动到负载最小的数据节点上。如此,保证了系统中的失效的数据节点上的数据块不丢失,而且在移动失效节点上的数据块时,考虑了每个数据节点的负载情况,保证了系统负载均衡;而且合理分配各个数据节点的资源,提高了系统资源的利用率。
举个例子,例如有四个数据节点,分别对应的标识为:数据节点A、数据节点B、数据节点C和数据节点D;其中,数据节点A包括两个数据块,对应的数据块标识为数据块001、数据块002;数据节点B包括三个数据块,对应的数据块标识为数据块003、数据块004、数据块005;数据节点C包括三个数据块,对应的数据块标识为数据块001、数据块003、数据块005;数据节点D包括两个数据块,对应的数据块标识为数据块004、数据块006;当其中一个数据节点失效时,比如数据节点A失效,需要将数据节点A上的数据块001、数据块002移动到其它数据节点上,具体为:
首先,移动数据节点A上的一个数据块,比如数据块001,确定出数据节点B和数据节点D中的负载最小的数据节点:数据节点D,将数据节点A上的数据块001移动到数据节点D中,此时数据节点D包括的数据块有:数据块001、数据块004和数据块006;
然后,移动数据节点A上的数据块002,需要重新确定出数据节点B、数据节点C和数据节点D中的负载最小的数据节点:数据节点C,将数据节点A上的数据块002移动到数据节点C中,此时数据节点C包括的数据块有:数据块001、数据块003、数据块005和数据块002。
第二种,在系统有新增的数据节点的情况下,通过多次移动操作将所述M个数据节点上的数据块移动至所述新增的数据节点中,直至所述新增的数据节点的负载大于负载阈值;其中,所述多次移动操作中的每次移动操作对应移动一个数据块;针对所述多次移动操作中的每次移动操作,将所述M个数据节点中负载最大的数据节点上包括的数据块确定为该次移动操作需对应移动的数据块。也就是说,当系统有新增的数据节点时,在将其他数据节点上的数据块移动到该新增的数据节点上时,每从其他数据节点上移动一个数据块,计算一次系统中所有数据节点的负载,再移动下一个数据块,如此,考虑了系统中每个数据节点的负载情况,达到了负载均衡的效果;而且合理分配各个数据节点的资源,提高了系统资源的利用率。
举个例子,例如有四个数据节点,分别对应的标识为:数据节点A、数据节点B、数据节点C和数据节点D;其中,数据节点A包括两个数据块,对应的数据块标识为数据块001、数据块002;数据节点B包括三个数据块,对应的数据块标识为数据块003、数据块004、数据块005;数据节点C包括三个数据块,对应的数据块标识为数据块001、数据块003、数据块005;数据节点D包括两个数据块,对应的数据块标识为数据块004、数据块006;
当新增一个数据节点E时,负载均衡的操作过程为:
首先,计算数据节点A、数据节点B、数据节点C和数据节点D中每个数据节点的负载,确定出其中负载最大的数据节点,比如为数据节点C;将数据节点C上的数据块001、数据块003、数据块005中的一个数据块,比如数据块005移动到新增的数据节点E上,此时数据节点C上的包括的数据块为数据块001和数据块003;数据节点E上的包括的数据块为数据块005;
然后,根据数据节点A包括数据块001、数据块002;数据节点B包括数据块003、数据块004、数据块005;数据节点C包括数据块001和数据块003;数据节点E包括数据块005;重新计算每个数据节点的负载,确定出其中负载最大的数据节点,比如为数据节点B,此时将数据节点B包括数据块003、数据块004、数据块005中的一个数据块移动到数据节点E上;此处应注意,每个数据节点上不能包括的两个及以上的相同的数据块标识,也就是说,数据节点E上已有数据块005,所以从数据节点B向数据节点E上移动数据块时只能移动数据块003和数据块004中的任一个;依此类推,直到新增的数据节点E的负载大于负载阈值,结束负载均衡。
本发明实施例中提供的文件处理系统,可以通过增加节点的方式无限的横向扩展数据节点,并且在增加数据节点时并不影响任何业务,具有服务高扩展性和低耦合性,而且具有高可用性强。任意数据节点的失效都不会影响整个节点群失效。通过特色选举权值算法能够达到任意管理节点失效都不会影响系统的可用性。
上述两种情况的负载均衡操作中,可根据以下内容中的任一项或任多项确定各个数据节点的负载:磁盘容量、磁盘I/O、磁盘数和磁盘参数;其中,磁盘参数为经验值;具体的,可以只根据磁盘容量、磁盘I/O、磁盘数和磁盘参数中的任一项确定负载大小,该任一项的值越大,负载越小;也可以根据磁盘容量、磁盘I/O、磁盘数和磁盘参数确定负载大小,具体为磁盘容量*磁盘I/O*磁盘数*磁盘参数的乘积越大,负载越小。
上述实施例中的负载阈值根据:M个数据节点中负载最小的数据节点的负载,以及预设权重确定的。预设权重可根据实际需要进行设置,比如设置为80%,又比如设置为70%,此处不作具体限定。本发明实施例提供一种可选的方案,比如将预设权重设置为80%,计算出M个数据节点中的负载最小值,在新增数据节点的负载大于负载最小值的80%的情况下,结束负载均衡。如此,系统的负载阈值可以根据实际需求进行设置,通过负载均衡可以合理分配各个数据节点的资源,提高系统资源的利用率。
本发明实施例中,基于上述描述的系统,在进行文件处理时,主要包括写文件和读文件,下面结合实施例进行具体介绍。
第一,在处理写文件请求时,该文件处理方法还包括:接收文件处理请求;文件处理请求包括待处理文件的文件标识;从M个数据节点中的每个数据节点确定出可存储待处理文件的空闲块;将待处理文件存储在空闲块中;将待处理文件的文件标识和存储待处理文件的空闲块的标识的对应关系,以及存储待处理文件的空闲块的标识和空闲块对应的数据节点的标识的对应关系存储于管理节点中。如此,在向系统中写文件时,将文件标识和块标识存储于管理节点中,使得在读取该文件时更快的找到存储该文件的数据节点,以及数据节点中的存储的块,提高文件处理的效率。
为了更清楚的介绍写文件的方法,举如下示例。
在向文件管理系统写入一份文件时,为了保证文件的安全性,可以在系统中存储多个副本,每一副本采用相同的块标识表示,根据文件的大小和每个数据块的大小;具体的分为两种情况:
一种情况,当一份文件大小小于等于一个数据块的大小时,可将一份文件数据存储在一个块中;一份文件大小小于等于一个数据块的大小时,可将一份文件数据存储在一个数据块中,不同的副本存储在不同的数据节点上;
另一种情况,当一份文件大小大于一个数据块的大小时,可将一份文件数据存储在多个数据块中,此时,可以将一份文件存入同一个数据节点上,也就是说,存储该文件的多个数据块都在同一个数据节点上;也可以将一份文件存储在不同的节点上,也就是说,存储该文件的多个数据块可以在不同的数据节点上。
图3示例性示出了本发明实施例提供的写文件方法流程示意图。如图3所示,具体包括以下步骤:
步骤301:客户端向主管理节点发送写文件请求;写文件请求中包括待处理文件的文件标识;
步骤302:主管理节点从M个数据节点中的每个数据节点确定出可存储待处理文件的空闲块;并将数据节点的标识返回至客户端;
步骤303:客户端根据主管理节点返回的包括空闲块的数据节点的标识,选择数据节点1写文件数据的主副本;在此步骤中,选择写文件数据的数据节点时,需要根据该数据节点的负载、容量等综合考虑,可选地,负载越低、容量越大,选择的可能性也就越大。
步骤304:数据节点1向数据节点2复制文件数据的备副本一;
步骤305:返回写完毕;
步骤306:数据节点1向数据节点3复制文件数据的备副本二;
步骤307:返回写完毕;
步骤308:数据节点1向主管理节点返回写完毕;
步骤309:主管理节点向数据节点1返回确定写操作完成,若存在版本更新则更新块版号;
步骤310:数据节点1向客户端返回写结果,包括:待处理文件在文件处理系统中的块标识(BLOCK ID)及文件标识(File ID)的对应关系。
上述步骤301至310中任一步骤发生错误,客户端都可以从步骤301开始重试。
需要说明的是,上述步骤304中的备副本一和步骤306中备副本二,备副均和主副本中的数据一样,且存储主副本和备副本的数据块的标识相同;举个例子,比如,主副本存储于数据节点1的一个数据块中,该数据块的标识为003;备副本一存储于数据节点2的一个数据块中,该数据块的标识为003;备副本一存储于数据节点3的一个数据块中,该数据块的标识为003。当主副本、备副本一和备副本二中的任一个副本,存储在多个块中时,该多个块也可以存储在不同的数据节点中。
第二,在处理读文件请求时,该文件处理方法还包括:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;根据文件标识和数据块的标识的对应关系,确定出存储所述待处理文件的数据块的标识;根据数据块的标识和数据节点的标识的对应关系,确定出存储所述待处理文件的数据块对应的数据节点的标识;从所述存储所述待处理文件的数据块对应的数据节点中的、存储所述待处理文件的数据块读取所述待处理文件。如此,在读取时根据文件标识,可以很快找到待处理文件存储的位置,进而快读读取待处理文件,提高了文件处理的效率。
可选地,待处理文件会在系统中存储多份,比如共三份,分别为主副本、备副本一和备副本二,在读取时先在主管理节点中查找到待处理文件的文件标识对应的块标识,然后找到主副本所存储的数据节点,进行待处理文件的读取;若主副本所在的数据节点失效、且数据还未同步完成的情况下,可找到备副本一所存储的数据节点,进行待处理文件的读取。
本发明实施例中,块标识可以包括系统名称、日期和编号中任一项或任多项;本发明实施例提供一种块标识的表示方式:块标识(BLOCK_ID)包括系统名称、日期和编号;具体为BLOCK_ID=系统+日期+编号;举个例子,比如系统名称为QFS,日期为20161021,编号为0001,那么块标识为QFS201610210001。由于块标识中携带有系统和日期,所以在针对BLOCK_ID的管理上具有很强的业务系统属性和日期属性。这样编码规则有如下几个方面的优势:首先,清理规则会变得通用而且简单;其次,在恢复管理数据的过程中可以方便的恢复最近的管理数据,从而提高系统的恢复能力。
本发明实施例中的管理节点具有的数据存储、更新和恢复等功能,作如下介绍:
主管理节点和备管理节点上的管理数据存储方式主要分为两部分,第一部分为:文件和BLOCK内存关系存储(FILE_MEM),第二部分为:操作日志(OPT_LOG);两部分合并起来为所有的管理数据。其中,FILE_MEM数据按照366份存储,每个FILE_MEM的后缀从001,002,……,366;FILE_MEM的更新主要通过更新服务实现,更新服务主要包含两个主要功能:更新内存中的FILE_MEM和更新本地的FILE_MEM文件。OPT_LOG里面主要包括N(可配置)条最新的操作记录,OPT_LOG分为10份存储,分别为01,02,……,10;每个OPT_LOG的日志里面含有5000条更新记录,超过5000,则开始记录下一个OPT_LOG。可选地,当系统的管理节点失效时,通过本地的FILE_MEM文件的恢复和OPT_LOG的操作可以瞬间恢复到最新的管理数据。
为了更清楚的介绍文件处理系统的服务功能,下面举具体的例子对合并和压缩服务进行介绍。
当客户端上传多个文件到文件处理系统中时,管理节点会分配如下的多个文件信息:例如,客户端上传文件对应的文件名称为FILE001,FILE002,FILE003;管理节点根据这三个文件的大小,会分配多个块标识BLOCK_ID和文件标识FILE_ID。
表1 FILE_ID和BLOCK_ID的对应关系的示例
表1示例性示出了FILE_ID和BLOCK_ID的对应关系的示例。如表1所示,文件FILE001对应的文件标识FILE_ID为D01001,存储于块标识BLOCK_ID为QFS201610210001、QFS201610210002和QFS201610210003的三个数据块中;文件FILE002对应的文件标识FILE_ID为D02001,存储于块标识BLOCK_ID为QFS201610210004和QFS201610210005的两个数据块中;文件FILE003对应的文件标识FILE_ID为D03001,存储于块标识BLOCK_ID为QFS201610210006、QFS201610210007和QFS201610210008的三个数据块中。
根据上述表1,将文件FILE001和FILE002两个文件合并成新的FILE100文件,可以不添加新的块。举如下具体示例:
表2根据表1对文件合并后FILE_ID和BLOCK_ID的对应关系的示例。
表2示例性示出了根据表1进行文件合并后FILE_ID和BLOCK_ID的对应关系的示例。如表2所示,文件FILE001对应的文件标识FILE_ID为D01001,存储于块标识BLOCK_ID为QFS201610210001、QFS201610210002和QFS201610210003的三个数据块中;文件FILE002对应的文件标识FILE_ID为D02001,存储于块标识BLOCK_ID为QFS201610210004和QFS201610210005的两个数据块中;文件FILE003对应的文件标识FILE_ID为D03001,存储于块标识BLOCK_ID为QFS201610210006、QFS201610210007和QFS201610210008的三个数据块中。对上述文件FILE001和文件FILE002进行合并后,得到FILE100,对应的文件标识为D01004,还是存储于块标识QFS201610210001、QFS201610210002和QFS201610210003、QFS201610210004和QFS201610210005对应的数据块中,不需增加新的块。
根据上述表2,将文件FILE003压缩成FILE003.ZIP时,可以将FILE003对应的所有的BLOCK中的数据进行压缩,然后存储到新的块中。举如下具体示例:
表3根据表2对文件FILE003压缩后FILE_ID和BLOCK_ID的对应关系的示例。
表3示例性示出了根据表2对进行文件FILE003进行压缩后FILE_ID和BLOCK_ID的对应关系的示例。
如表3所示,文件FILE001对应的文件标识FILE_ID为D01001,存储于块标识BLOCK_ID为QFS201610210001、QFS201610210002和QFS201610210003的三个数据块中;文件FILE002对应的文件标识FILE_ID为D02001,存储于块标识BLOCK_ID为QFS201610210004和QFS201610210005的两个数据块中;文件FILE003对应的文件标识FILE_ID为D03001,存储于块标识BLOCK_ID为QFS201610210006、QFS201610210007和QFS201610210008的三个数据块中;
对上述文件FILE001和文件FILE002进行合并后,得到FILE100,对应的文件标识为D01004,还是存储于块标识QFS201610210001、QFS201610210002和QFS201610210003、QFS201610210004和QFS201610210005对应的数据块中;
对文件FILE003进行压缩得到FILE003.ZIP,对应的文件标识FILE_ID为D03005,存储于新的数据块中,对应的块标识为QFS201610210009和QFS201610210010对应的数据块中。
从上述实施例可以看出:本发明实施例提供的文件管理系统可以在交易量日益增长的情况下,满足各种批量系统的文件处理需求,比如写文件、读文件、文件合并、文件压缩等;而且针对银联的系统提供了周期性文件处理功能,跨机文件并发合并功能、跨机文件压缩功能,并且这些功能都具有非常优异的性能。进一步,本发明实施例提供的文件索引和日志方案相对于现有技术中更加高效。总的来说,通过对linux操作系统下进程和通信分析,给出了跨机处理文件方案,通过对跨机系统资源的统筹,合理分配跨机资源的使用,提高系统资源使用效率;特别是为现有的银联批量文件处理提供了一个具有较高负载均衡能力、扩展性的跨机文件处理架构。
图4示例性示出了本发明实施例提供的一种文件处理装置的结构示意图。
基于相同构思,本发明实施例提供的一种文件处理装置,适用于包括主管理节点、备管理节点和M个数据节点的系统;所述M为大于等于1的整数;用于执行上述方法流程,如图4所示,该文件处理装置400包括确定单元401、选举单元402和处理单元403;可选地,所述装置还包括接收单元404;其中:
确定单元401,用于在确定所述主管理节点失效的情况下,将所述备管理节点作为当前的主管理节点;确定出所述M个数据节点中每个数据节点的选举权值;
选举单元402,用于根据所述M个数据节点中每个数据节点的选举权值,从所述至少一个数据节点中选出一个数据节点作为当前的备管理节点;
处理单元403,用于将所述当前的主管理节点上的管理数据同步至所述当前的备管理节点上。
可选地,根据以下内容中的任一项或任多项内容确定的选举权值:
中央处理器CPU核心数、所述CPU并发数、所述CPU参数经验值、内存容量、内存频率、内存参数经验值、磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值。
可选地,所述确定单元401,用于:通过所述M个数据节点中的每个数据节点向所述主管理节点发送心跳包、且在预设时长内未收到所述主管理节点发送的所述心跳包对应的响应包的情况下,确定所述主管理节点失效。
可选地,所述M个数据节点的每个数据节点包括至少一个数据块,所述至少一个数据块中每个数据块对应一个数据块的标识;一个数据块的标识所标识的数据块对应存储于至少一个数据节点上;
所述确定单元401,还用于:在所述M个数据节点中存在至少一个数据节点失效的情况下,确定出每个失效的数据节点的标识,以及所述每个失效的数据节点包括的数据块的标识;针对所述每个失效的数据节点包括的每个数据块,执行:从所述M个数据节点中除包括有该数据块的标识的数据节点之外的节点中确定出:负载最小的数据节点;
处理单元403,还用于:将该数据块移动到所述负载最小的数据节点上。
可选地,所述处理单元403,还用于:通过多次移动操作将所述M个数据节点上的数据块移动至所述新增的数据节点中,直至所述新增的数据节点的负载大于负载阈值;其中,所述多次移动操作中的每次移动操作对应移动一个数据块;针对所述多次移动操作中的每次移动操作,将所述M个数据节点中负载最大的数据节点上包括的数据块确定为该次移动操作需对应移动的数据块。
可选地,所述负载阈值根据:所述M个数据节点中负载最小的数据节点的负载,以及预设权重确定的。
可选地,所述装置还包括接收单元404;所述接收单元404,用于:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;所述确定单元401,还用于:根据文件标识和数据块的标识的对应关系,确定出存储所述待处理文件的数据块的标识;根据数据块的标识和数据节点的标识的对应关系,确定出存储所述待处理文件的数据块对应的数据节点的标识;所述处理单元403,还用于:从所述存储所述待处理文件的数据块对应的数据节点中的、存储所述待处理文件的数据块读取所述待处理文件。
可选地,所述装置还包括接收单元404;所述接收单元404,用于:接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;所述确定单元401,还用于:从所述M个数据节点中的每个数据节点确定出可存储所述待处理文件的空闲块;所述处理单元403,还用于:将所述待处理文件存储在所述空闲块中;将所述待处理文件的文件标识和所述存储所述待处理文件的空闲块的标识的对应关,以及所述存储所述待处理文件的空闲块的标识和所述空闲块对应的数据节点的标识的对应关系存储于所述管理节点中。
由上述内容可以看出:由于在确定主管理节点失效的情况下,将备管理节点作为当前的主管理节点;确定出M个数据节点中每个数据节点的选举权值;根据M个数据节点中每个数据节点的选举权值,从至少一个数据节点中选出一个数据节点作为当前的备管理节点;将当前的主管理节点上的管理数据同步至当前的备管理节点上;因此,在该系统中始终存在两个管理节点,如此,实现了在主管理节点失效之后,不需人工干预也能够保证文件处理的连续性。
应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现、当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。指令可以存储在计算机存储介质中,或者从一个计算机存储介质向另一个计算机存储介质传输,例如,指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带、磁光盘(MO)等)、光介质(例如,CD、DVD、BD、HVD等)、或者半导体介质(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(Solid State Disk,SSD))等。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (18)
1.一种文件处理方法,其特征在于,适用于包括主管理节点、备管理节点和M个数据节点的系统;所述M为大于等于1的整数;所述方法包括:
在确定所述主管理节点失效的情况下,将所述备管理节点作为当前的主管理节点;
确定出所述M个数据节点中每个数据节点的选举权值;
根据所述M个数据节点中每个数据节点的选举权值,从所述至少一个数据节点中选出一个数据节点作为当前的备管理节点;
将所述当前的主管理节点上的管理数据同步至所述当前的备管理节点上。
2.如权利要求1所述的方法,其特征在于,根据以下内容中的任一项或任多项内容确定的选举权值:
中央处理器CPU核心数、所述CPU并发数、所述CPU参数经验值、内存容量、内存频率、内存参数经验值、磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值。
3.如权利要求1所述的方法,其特征在于,所述确定所述主管理节点失效,包括:
通过所述M个数据节点中的每个数据节点向所述主管理节点发送心跳包、且在预设时长内未收到所述主管理节点发送的所述心跳包对应的响应包的情况下,确定所述主管理节点失效。
4.如权利要求1所述的方法,其特征在于,所述M个数据节点的每个数据节点包括至少一个数据块,所述至少一个数据块中每个数据块对应一个数据块的标识;一个数据块的标识所标识的数据块对应存储于至少一个数据节点上;
所述方法还包括:
在所述M个数据节点中存在至少一个数据节点失效的情况下,确定出每个失效的数据节点的标识,以及所述每个失效的数据节点包括的数据块的标识;
针对所述每个失效的数据节点包括的每个数据块,执行:
从所述M个数据节点中除包括有该数据块的标识的数据节点之外的节点中确定出:负载最小的数据节点;
将该数据块移动到所述负载最小的数据节点上。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过多次移动操作将所述M个数据节点上的数据块移动至所述新增的数据节点中,直至所述新增的数据节点的负载大于负载阈值;
其中,所述多次移动操作中的每次移动操作对应移动一个数据块;
针对所述多次移动操作中的每次移动操作,将所述M个数据节点中负载最大的数据节点上包括的数据块确定为该次移动操作需对应移动的数据块。
6.如权利要求5所述的方法,其特征在于,所述负载阈值根据:所述M个数据节点中负载最小的数据节点的负载,以及预设权重确定的。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;
根据文件标识和数据块的标识的对应关系,确定出存储所述待处理文件的数据块的标识;
根据数据块的标识和数据节点的标识的对应关系,确定出存储所述待处理文件的数据块对应的数据节点的标识;
从所述存储所述待处理文件的数据块对应的数据节点中的、存储所述待处理文件的数据块读取所述待处理文件。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;
从所述M个数据节点中的每个数据节点确定出可存储所述待处理文件的空闲块;
将所述待处理文件存储在所述空闲块中;
将所述待处理文件的文件标识和所述存储所述待处理文件的空闲块的标识的对应关系,以及所述存储所述待处理文件的空闲块的标识和所述空闲块对应的数据节点的标识的对应关系存储于所述管理节点中。
9.一种用于文件处理的装置,其特征在于,适用于包括主管理节点、备管理节点和M个数据节点的系统;所述M为大于等于1的整数;所述装置包括:
确定单元,用于在确定所述主管理节点失效的情况下,将所述备管理节点作为当前的主管理节点;确定出所述M个数据节点中每个数据节点的选举权值;
选举单元,用于根据所述M个数据节点中每个数据节点的选举权值,从所述至少一个数据节点中选出一个数据节点作为当前的备管理节点;
处理单元,用于将所述当前的主管理节点上的管理数据同步至所述当前的备管理节点上。
10.如权利要求9所述的装置,其特征在于,根据以下内容中的任一项或任多项内容确定的选举权值:
中央处理器CPU核心数、所述CPU并发数、所述CPU参数经验值、内存容量、内存频率、内存参数经验值、磁盘容量、磁盘I/O、磁盘数、磁盘参数经验值。
11.如权利要求9所述的装置,其特征在于,所述确定单元,用于:
通过所述M个数据节点中的每个数据节点向所述主管理节点发送心跳包、且在预设时长内未收到所述主管理节点发送的所述心跳包对应的响应包的情况下,确定所述主管理节点失效。
12.如权利要求9所述的装置,其特征在于,所述M个数据节点的每个数据节点包括至少一个数据块,所述至少一个数据块中每个数据块对应一个数据块的标识;一个数据块的标识所标识的数据块对应存储于至少一个数据节点上;
所述确定单元,还用于:
在所述M个数据节点中存在至少一个数据节点失效的情况下,确定出每个失效的数据节点的标识,以及所述每个失效的数据节点包括的数据块的标识;
针对所述每个失效的数据节点包括的每个数据块,执行:
从所述M个数据节点中除包括有该数据块的标识的数据节点之外的节点中确定出:负载最小的数据节点;
处理单元,还用于:
将该数据块移动到所述负载最小的数据节点上。
13.如权利要求9所述的装置,其特征在于,所述处理单元,还用于:
通过多次移动操作将所述M个数据节点上的数据块移动至所述新增的数据节点中,直至所述新增的数据节点的负载大于负载阈值;
其中,所述多次移动操作中的每次移动操作对应移动一个数据块;
针对所述多次移动操作中的每次移动操作,将所述M个数据节点中负载最大的数据节点上包括的数据块确定为该次移动操作需对应移动的数据块。
14.如权利要求13所述的装置,其特征在于,所述负载阈值根据:所述M个数据节点中负载最小的数据节点的负载,以及预设权重确定的。
15.如权利要求9所述的装置,其特征在于,所述装置还包括接收单元;
所述接收单元,用于:
接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;
所述确定单元,还用于:
根据文件标识和数据块的标识的对应关系,确定出存储所述待处理文件的数据块的标识;根据数据块的标识和数据节点的标识的对应关系,确定出存储所述待处理文件的数据块对应的数据节点的标识;
所述处理单元,还用于:
从所述存储所述待处理文件的数据块对应的数据节点中的、存储所述待处理文件的数据块读取所述待处理文件。
16.如权利要求9所述的装置,其特征在于,所述装置还包括接收单元;
所述接收单元,用于:
接收文件处理请求;所述文件处理请求包括待处理文件的文件标识;
所述确定单元,还用于:
从所述M个数据节点中的每个数据节点确定出可存储所述待处理文件的空闲块;
所述处理单元,还用于:
将所述待处理文件存储在所述空闲块中;
将所述待处理文件的文件标识和所述存储所述待处理文件的空闲块的标识的对应关,以及所述存储所述待处理文件的空闲块的标识和所述空闲块对应的数据节点的标识的对应关系存储于所述管理节点中。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使所述计算机执行如权利要求1至5任一权利要求所述的方法。
18.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行权利要求1至5任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710303867.8A CN107247729B (zh) | 2017-05-03 | 2017-05-03 | 一种文件处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710303867.8A CN107247729B (zh) | 2017-05-03 | 2017-05-03 | 一种文件处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107247729A true CN107247729A (zh) | 2017-10-13 |
CN107247729B CN107247729B (zh) | 2021-04-27 |
Family
ID=60016817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710303867.8A Active CN107247729B (zh) | 2017-05-03 | 2017-05-03 | 一种文件处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107247729B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108134702A (zh) * | 2017-12-26 | 2018-06-08 | 北京科来数据分析有限公司 | 一种数据采集器故障解决方法 |
CN108509518A (zh) * | 2018-03-09 | 2018-09-07 | 北京小米移动软件有限公司 | 信息处理方法及设备 |
CN108769118A (zh) * | 2018-04-23 | 2018-11-06 | 网宿科技股份有限公司 | 一种分布式系统中主节点的选取方法及装置 |
CN110990339A (zh) * | 2019-10-15 | 2020-04-10 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
CN113051067A (zh) * | 2019-12-27 | 2021-06-29 | 顺丰科技有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN114124668A (zh) * | 2021-11-03 | 2022-03-01 | 上证所信息网络有限公司 | 一种保证多主机行情切片一致的系统及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040107314A1 (en) * | 2002-11-29 | 2004-06-03 | Chang-Soo Kim | Apparatus and method for file-level striping |
US20070233691A1 (en) * | 2006-03-30 | 2007-10-04 | Sap Ag | System and method for implementing accumulative rows within master tables |
CN101217402A (zh) * | 2008-01-15 | 2008-07-09 | 杭州华三通信技术有限公司 | 一种提高集群可靠性的方法和一种高可靠性通信节点 |
CN102195886A (zh) * | 2011-05-30 | 2011-09-21 | 兰雨晴 | 一种云平台上的服务调度方法 |
CN103457775A (zh) * | 2013-09-05 | 2013-12-18 | 中国科学院软件研究所 | 一种基于角色的高可用虚拟机池化管理系统 |
CN103607297A (zh) * | 2013-11-07 | 2014-02-26 | 上海爱数软件有限公司 | 一种计算机集群系统的故障处理方法 |
CN103678570A (zh) * | 2013-12-10 | 2014-03-26 | 中国人民解放军理工大学 | 云环境下日志文件的多级别存储与恢复方法及系统 |
CN104077423A (zh) * | 2014-07-23 | 2014-10-01 | 山东大学(威海) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 |
CN106156070A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
-
2017
- 2017-05-03 CN CN201710303867.8A patent/CN107247729B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040107314A1 (en) * | 2002-11-29 | 2004-06-03 | Chang-Soo Kim | Apparatus and method for file-level striping |
US20070233691A1 (en) * | 2006-03-30 | 2007-10-04 | Sap Ag | System and method for implementing accumulative rows within master tables |
CN101217402A (zh) * | 2008-01-15 | 2008-07-09 | 杭州华三通信技术有限公司 | 一种提高集群可靠性的方法和一种高可靠性通信节点 |
CN102195886A (zh) * | 2011-05-30 | 2011-09-21 | 兰雨晴 | 一种云平台上的服务调度方法 |
CN103457775A (zh) * | 2013-09-05 | 2013-12-18 | 中国科学院软件研究所 | 一种基于角色的高可用虚拟机池化管理系统 |
CN103607297A (zh) * | 2013-11-07 | 2014-02-26 | 上海爱数软件有限公司 | 一种计算机集群系统的故障处理方法 |
CN103678570A (zh) * | 2013-12-10 | 2014-03-26 | 中国人民解放军理工大学 | 云环境下日志文件的多级别存储与恢复方法及系统 |
CN104077423A (zh) * | 2014-07-23 | 2014-10-01 | 山东大学(威海) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 |
CN106156070A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
Non-Patent Citations (3)
Title |
---|
M. KIM: "An Efficient Design and Implementation of an MdbULPS in a Cloud-Computing Environment", 《KSII TRANSACTIONS ON INTERNET AND INFORMATION SYSTEMS》 * |
张德育: "《基于分层多域的应急通信系统监控技术》", 31 May 2013, 国防工业出版社 * |
张逸: "基于分布式文件系统的海量电能质量监测数据管理方案", 《电力系统自动化》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108134702A (zh) * | 2017-12-26 | 2018-06-08 | 北京科来数据分析有限公司 | 一种数据采集器故障解决方法 |
CN108134702B (zh) * | 2017-12-26 | 2021-01-01 | 北京科来数据分析有限公司 | 一种数据采集器故障解决方法 |
CN108509518A (zh) * | 2018-03-09 | 2018-09-07 | 北京小米移动软件有限公司 | 信息处理方法及设备 |
CN108769118A (zh) * | 2018-04-23 | 2018-11-06 | 网宿科技股份有限公司 | 一种分布式系统中主节点的选取方法及装置 |
CN108769118B (zh) * | 2018-04-23 | 2022-01-21 | 网宿科技股份有限公司 | 一种分布式系统中主节点的选取方法及装置 |
CN110990339A (zh) * | 2019-10-15 | 2020-04-10 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
WO2021073111A1 (zh) * | 2019-10-15 | 2021-04-22 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
CN110990339B (zh) * | 2019-10-15 | 2023-09-19 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
CN113051067A (zh) * | 2019-12-27 | 2021-06-29 | 顺丰科技有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN114124668A (zh) * | 2021-11-03 | 2022-03-01 | 上证所信息网络有限公司 | 一种保证多主机行情切片一致的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107247729B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247729A (zh) | 一种文件处理方法和装置 | |
CN112153085B (zh) | 一种数据处理方法、节点及区块链系统 | |
CN108351806A (zh) | 分布式基于流的数据库触发器 | |
US9619353B2 (en) | Redundant array of independent disk (RAID) storage recovery | |
CN106844108B (zh) | 一种数据存储方法、服务器以及存储系统 | |
CN107003935A (zh) | 优化数据库去重 | |
CN103136243A (zh) | 基于云存储的文件系统去重方法及装置 | |
CN109918018A (zh) | 一种数据存储方法及存储设备 | |
US10169085B2 (en) | Distributed computing of a task utilizing a copy of an original file stored on a recovery site and based on file modification times | |
JP6805816B2 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
CN109561151A (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN107391297A (zh) | 改善闪存中的数据刷新的系统和方法 | |
CN110457396A (zh) | 一种基于区块链科研数据处理方法、装置、设备和存储介质 | |
CN112463058A (zh) | 一种碎片数据整理方法、装置及存储节点 | |
CN111741080B (zh) | 网络文件分发方法及装置 | |
US8356303B2 (en) | Method and system for integrated scheduling and replication in a grid computing system | |
CN107967265A (zh) | 文件的访问方法、数据服务器和文件访问系统 | |
CN114253950B (zh) | 管理数据库的方法和装置 | |
CN110134572A (zh) | 验证存储系统中的数据 | |
CN109542674A (zh) | 分布式系统的快照生成方法、装置、设备和介质 | |
US8150806B2 (en) | Idempotent storage replication management | |
CN111723007A (zh) | 一种测试用例的合并方法、系统、设备以及介质 | |
CN109299191A (zh) | 一种数据分布方法、装置、服务器及计算机存储介质 | |
CN108549603A (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 |