CN107918559A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN107918559A CN107918559A CN201610882278.5A CN201610882278A CN107918559A CN 107918559 A CN107918559 A CN 107918559A CN 201610882278 A CN201610882278 A CN 201610882278A CN 107918559 A CN107918559 A CN 107918559A
- Authority
- CN
- China
- Prior art keywords
- distributed system
- data
- machine
- dummy node
- cryptographic hash
- 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
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0662—Virtualisation aspects
-
- 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]
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1012—Load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种数据处理方法及装置,其中,该数据处理方法包括:针对分布式系统中的新增机器生成多个虚拟节点的哈希值;根据多个虚拟节点的哈希值,分割该分布式系统中已有的数据;判断分割后的分布式系统中数据分布是否均匀;若不均匀,删除多个虚拟节点中引起分布式系统中数据分布不均的虚拟节点,并针对新增机器生成补充虚拟节点的哈希值;根据补充虚拟节点的哈希值,再分割分布式系统中已有的数据。实施本发明实施例可以使得各机器中数据分布均匀,提高系统的稳定性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着网络的快速发展和数据量的不断增大,分布式系统中数据的均匀分布是确保分布式系统正常运行的关键。例如,分布式系统中某个机器的数据量过大导致该机器崩溃时,该机器上的所有数据将不能被访问而需迁移到其他机器上,从而导致分布式系统的不稳定,因此,如何保证分布式系统中各机器上分布的数据量尽量平均是一个亟待解决的问题。
发明内容
本发明实施例公开了一种数据处理方法及装置,能够使得各机器中数据分布均匀。
本发明实施例第一方面提供一种数据处理方法,包括:
针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
根据所述多个虚拟节点的哈希值,分割所述分布式系统中已有的数据;
判断分割后的所述分布式系统中数据分布是否均匀;
若不均匀,删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点,并针对所述新增机器生成补充虚拟节点的哈希值;
根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据。
本发明实施例第二方面提供一种数据处理装置,包括:
生成单元,用于针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
分割单元,用于根据所述多个虚拟节点的哈希值,分割所述分布式系统中已有的数据;
判断单元,用于判断分割后的所述分布式系统中数据分布是否均匀;
删除单元,用于在所述判断单元判断出分割后的所述分布式系统中数据分布不均匀时,删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点,触发所述生成单元针对所述新增机器生成补充虚拟节点的哈希值;以及触发所述分割单元,根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据。
本发明实施例可以针对分布式系统中的新增机器生成多个虚拟节点的哈希值;根据多个虚拟节点的哈希值,分割该分布式系统中已有的数据;判断分割后的分布式系统中数据分布是否均匀;若不均匀,删除多个虚拟节点中引起分布式系统中数据分布不均的虚拟节点,并针对新增机器生成补充虚拟节点的哈希值;根据补充虚拟节点的哈希值,再分割分布式系统中已有的数据。实施本发明实施例可以使得各机器中数据分布均匀,提高了系统的稳定性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种数据处理方法的示意图;
图2是本发明实施例公开的一种数据处理方法的流程示意图;
图3是本发明实施例公开的另一种数据处理方法的示意图;
图4是本发明实施例公开的又一种数据处理方法的示意图;
图5是本发明实施例公开的另一数据处理方法的流程示意图;
图6是本发明实施例公开的一种数据处理装置的结构示意图;
图7是本发明实施例公开的一种数据处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据处理方法及装置,能够使得分布式系统中数据均匀分布到各个机器上,提高系统的稳定性。为了更好的理解本发明实施例,下面先对本发明实施例的应用场景进行描述。
请参阅图1,图1是本发明实施例公开的一种数据处理方法的示意图。如图1所示,该数据处理方法中,可以将所有数据视作一个环上的平均分布,通过设定每个机器管理的区段,来决定一个数据在分布式系统中存储到哪个机器上。其中,该环称为哈希环,该哈希环有0个至以2底的32次方减一个空间,这些数字空间头尾相连,可以想象为一个闭合的环形,如图1所示,因此,称为哈希环,也可以称为哈希空间。每个数据可以通过哈希算法中的哈希函数计算出对应的哈希值,可以根据该哈希值将数据映射到哈希环上。分布式系统有多个机器时,每个机器也可以计算相应的哈希值,将机器映射到哈希环中,然后以顺时针方向将每个机器管理的区段对应的数据存储到相应的机器上。如图1所示,数据1、数据2、数据3、数据4、机器1、机器2、机器3处于同一个哈希环上,这样按顺时针数据1存储到了机器1中,数据3存储到了机器2中,数据2和数据4存储到了机器3中。由于哈希环是不会变的,该数据处理方法可以根据数据的哈希值快速的定位相应的机器,提高了查找速率。
为了提高系统的稳定性,如何使得分布式系统中每个机器上的数据分布尽量均匀是一个亟待解决的问题,为了解决该问题,本发明实施例公开了一种数据处理方法,可以使得分布式系统中每个机器上的数据分布均匀,即每个机器上数据量的偏差不超过预设阈值范围,详细阐述如下。
请参见图2,图2是本发明实施例公开的一种数据处理方法的流程示意图;如图2所示,该数据处理方法包括以下步骤:
S201、数据处理设备针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
S202、数据处理设备根据该多个虚拟节点的哈希值,分割分布式系统中已有的数据;
S203、数据处理设备判断分割后的分布式系统中数据分布是否均匀;若不均匀,则执行步骤S204;若均匀,则结束本流程;
S204、数据处理设备删除该多个虚拟节点中引起分布式系统中数据分布不均的虚拟节点,并针对新增机器生成补充虚拟节点的哈希值;
S205、数据处理设备根据补充虚拟节点的哈希值,分割分布式系统中已有的数据,再次执行步骤S203;
本发明实施例中,数据处理设备可以为分布式系统中进行数据管理的终端,也可以为分布式系统中负责数据平衡性的终端,本发明实施例不做限定。
其中,本发明实施例可以在离线的方式进行,待分布式系统中已有的数据在各虚拟节点上分布均匀后再将该分布式系统部署到实际系统中,从而可以避免不断迁移数据引起的网络负载增大。
本发明实施例中,利用哈希算法针对分布式系统中的新增机器生成多个虚拟节点的哈希值可以包括:利用哈希算法中同一的哈希函数将新增机器的IP地址加后缀的方式生成多个虚拟节点的哈希值。
本发明实施例中,数据处理设备根据多个虚拟节点的哈希值,分割分布式系统中已有的数据可以包括:数据处理设备根据多个虚拟节点的哈希值确定各个虚拟节点在哈希环中的位置;根据预先设定的每个虚拟节点可管理的区段,将相应区段上各位置的数据分割到各虚拟节点上。如图3所示,机器1对应的虚拟节点分别为机器1-1、机器1-2、机器2-1、机器2-2、机器3-1、机器3-2,这些虚拟节点根据其哈希值分别分布到如图3所示的位置,相应的,数据1被分割到机器1-1中,数据2被分割到机器1-2中,数据3被分割到机器3-2中,数据4、数据5、数据6被分割到机器3-1中,数据7均被分割到机器2-1中,数据8被分割到数据2-2中。
本发明实施例中,若分割后的分布式系统中数据分布不均匀,则可以删除引起数据分布不均的虚拟节点,并针对新增机器生成补充虚拟节点的哈希值。举例来说,如图3所示,虚拟节点机器3-1分割了过多的数据,引起数据分布不均匀,因此可以删除该机器3-1,可以针对机器3随机生成补充虚拟节点机器3-1’,根据该补充虚拟节点机器3-1’的哈希值确定如图4所示的位置,即将数据4分割到机器1-2中,机器3-1’被分割的数据有数据5和数据6,从而降低了机器3上的负载,使得数据分布均匀。
相应地,根据根据补充虚拟节点的哈希值,分割分布式系统中已有的数据从而,可以将数据均匀分布到各虚拟节点。可见,该实施方式可以以启发式算法来确定可以使数据均匀分布的新增机器的多个虚拟节点的哈希值,从而,提高了系统的稳定性。
请参阅图5,图5是本发明实施例公开的另一数据处理方法的流程示意图;其中,图5所示的数据处理方法与图2所示的数据处理方法相比,当步骤S203中,数据处理设备判断分割后的分布式系统中数据分布均匀时,还可以执行如下步骤:
S206、数据处理设备判断分布式系统中机器数是否达到预设数量;若达到预设数量,则结束本流程;若未达到预设数量,则执行步骤S207;
S207、数据处理设备增加机器到分布式系统中,并执行步骤S201。
本发明实施例中,新增机器可以为分布式系统中的第一台机器,若为第一台机器且分布式系统中机器的预设数量为大于1的值,则数据传输设备针对第一台机器生成多个虚拟节点的哈希值之后,可以再次针对新增机器生多个虚拟节点的哈希值,以执行步骤S202至步骤S207的操作,从而可以保证分布式系统时刻保持数据分布的平衡性。
其中,数据处理设备判断分割后的分布式系统中数据分布是否均匀,可以包括:判断分割后的分布式系统中各虚拟节点的数据量偏差是否不超过预设阈值;若不超过预设阈值,则确定分割后的所述分布式系统中数据分布均匀;若超过预设阈值,则确定分割后的所述分布式系统中数据分布不均匀。其中,数据量偏差为绝对值,例如各机器上数据量偏差为正负5%的绝对值。
作为一种可选的实施方式,步骤S201至步骤S207可以在数据处理设备离线状态下执行,因此,图5所示的数据处理方法中,若分布式系统中机器数达到预设数量,则数据处理设备可以在线部署该分布式系统以更新该分布式系统已有的数据所存储到的机器,并根据该分布式系统中新增机器的多个虚拟节点的哈希值确定该多个虚拟节点在哈希环中的位置,以确定待存储的数据待存储到的机器。
其中,数据处理设备确定待存储的数据待存储到的机器可以包括以下步骤:
11)计算待存储数据的哈希值;
12)根据该哈希值计算该待存储数据在哈希环上的位置,并决定负责该待存储数据的虚拟节点;
13)根据该虚拟节点确定该虚拟节点从属的目标机器;
14)将该待存储数据存储到该目标机器上。
可见,分布式系统中虚拟节点在哈希环中的位置可以根据步骤S201至S207对应的数据处理方法来确定,该数据处理方法也可以称为割环算法。
图5所示的数据处理方法可以使得分布式系统部署每个机器时都可以保证分割到新增机器上的数据均匀分布,从而,提高了系统的稳定性。
请参阅图6,图6是本发明实施例提供的一种数据处理装置的结构示意图,如图6所示,该数据处理装置可以包括以下单元:
生成单元601,用于针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
分割单元602,用于根据多个虚拟节点的哈希值,分割分布式系统中已有的数据;
判断单元603,用于判断分割后的分布式系统中数据分布是否均匀;
删除单元604,用于在判断单元603判断出分割后的分布式系统中数据分布不均匀时,删除多个虚拟节点中引起分布式系统中数据分布不均的虚拟节点,触发生成单元601针对新增机器生成补充虚拟节点的哈希值;以及触发分割单元602,根据补充虚拟节点的哈希值,分割分布式系统中已有的数据。
本发明实施例中,判断单元603在分割单元602根据补充虚拟节点的哈希值,分割分布式系统中已有的数据之后,判断分割后的所述分布式系统中数据分布是否均匀;若不均匀,则触发删除单元604执行所述的删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点的操作。
本发明实施例中,判断单元603还用于在分割后的分布式系统中数据分布均匀时,判断分布式系统中机器数是否达到预设数量;若未达到,则触发添加单元,增加机器到所述分布式系统中,并触发生成单元601执行所述的针对新增机器生成多个虚拟节点的哈希值的操作。
本发明实施例中,判断单元603判断分割后的分布式系统中数据分布是否均匀时,具体为:判断分割后的所述分布式系统中各虚拟节点的数据量偏差是否不超过预设阈值;若不超过预设阈值,则确定分割后的所述分布式系统中数据分布均匀;若超过预设阈值,则确定分割后的所述分布式系统中数据分布不均匀。其中,数据量偏差为绝对值,例如各机器上数据量偏差为正负5%的绝对值。
本发明实施例中,图6所示的装置还可以包括:
部署单元605,用于在分布式系统中机器数达到预设数量时,部署分布式系统以更新所述分布式系统已有的数据所存储到的机器,并根据分布式系统中新增机器的多个虚拟节点的哈希值确定多个虚拟节点在哈希环中的位置,以确定待存储的数据待存储到的机器。
其中,本发明实施例可以在离线的方式进行,待分布式系统中已有的数据在各虚拟节点上分布均匀后再将该分布式系统部署到实际系统中,从而可以避免不断迁移数据引起的网络负载增大。
本发明实施例中,分割单元602根据多个虚拟节点的哈希值,分割分布式系统中已有的数据可以包括:根据多个虚拟节点的哈希值确定各个虚拟节点在哈希环中的位置;根据预先设定的每个虚拟节点可管理的区段,将相应区段上各位置的数据分割到各虚拟节点上。如上述实施例中图3对应的相关描述,这里不再详述。
本发明实施例中,若分割后的分布式系统中数据分布不均匀,则删除单元604可以删除引起数据分布不均的虚拟节点,并针对新增机器生成补充虚拟节点的哈希值。如上述实施例中图4对应的相关描述,这里不再详述。
可见,该实施方式可以以启发式算法来确定可以使数据均匀分布的新增机器的多个虚拟节点的哈希值,从而,提高了系统的稳定性。
本发明实施例中,部署单元605在线部署该分布式系统以更新该分布式系统已有的数据所存储到的机器,并根据该分布式系统中新增机器的多个虚拟节点的哈希值确定该多个虚拟节点在哈希环中的位置,以确定待存储的数据待存储到的机器。
其中,数据处理装置在部署单元605在线部署该分布式系统以更新该分布式系统已有的数据所存储到的机器之后,还可以确定待存储的数据待存储到的机器,可以包括以下操作:计算待存储数据的哈希值;根据该哈希值计算该待存储数据在哈希环上的位置,并决定负责该待存储数据的虚拟节点;根据该虚拟节点确定该虚拟节点从属的目标机器;将该待存储数据存储到该目标机器上。
本发明实施例中,数据处理装置处理分布式系统中虚拟节点分割数据的过程也可以称为割环算法。可见,该数据处理装置可以通过生成单元601、分割单元602、判断单元603以及删除单元604将分布式系统中引起数据分布不均匀的虚拟节点删除,从而达到数据分布均匀的目的。
请参阅图7,图7是本发明实施例提供的一种数据处理设备的结构示意图,如图7所示,该数据处理设备可以包括处理器701、通信接口702、存储器703和通信总线704,其中,通信总线704用于实现这些组件之间的通信连接,通信接口702用于实现分布式系统中各机器之间的通信连接。存储器703可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器703可选的还可以是至少一个位于远离前述处理器701的存储装置。其中,处理器701可以结合图6所示的数据处理装置,存储器703中存储一组程序代码,且处理器701调用存储器703中存储的程序代码,用于执行以下操作:
针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
根据所述多个虚拟节点的哈希值,分割所述分布式系统中已有的数据;
判断分割后的所述分布式系统中数据分布是否均匀;
若不均匀,删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点,并针对所述新增机器生成补充虚拟节点的哈希值;
根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据。
本发明实施例中,处理器701调用存储器703中存储的程序代码,在根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据之后,还可以执行以下步骤:
判断分割后的所述分布式系统中数据分布是否均匀;
若不均匀,则执行所述的删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点的操作。
本发明实施例中,处理器701调用存储器703中存储的程序代码,在分割后的分布式系统中数据分布均匀时,还可以执行以下步骤:
判断所述分布式系统中机器数是否达到预设数量;
若未达到,则增加机器到所述分布式系统中,并执行所述的针对新增机器生成多个虚拟节点的哈希值的操作。
本发明实施例中,处理器701调用存储器703中存储的程序代码,判断分割后的所述分布式系统中数据分布是否均匀,可以包括以下步骤:
判断分割后的所述分布式系统中各虚拟节点的数据量偏差是否不超过预设阈值;
若不超过预设阈值,则确定分割后的所述分布式系统中数据分布均匀;
若超过预设阈值,则确定分割后的所述分布式系统中数据分布不均匀。
本发明实施例中,处理器701调用存储器703中存储的程序代码,在所述分布式系统中机器数达到预设数量时,还可以执行如下步骤:
部署所述分布式系统以更新所述分布式系统已有的数据所存储到的机器,并根据所述分布式系统中新增机器的多个虚拟节点的哈希值确定所述多个虚拟节点在哈希环中的位置,以确定待存储的数据待存储到的机器。
其中,处理器701在线部署该分布式系统以更新该分布式系统已有的数据所存储到的机器之后,还可以确定待存储的数据待存储到的机器,可以包括以下操作:计算待存储数据的哈希值;根据该哈希值计算该待存储数据在哈希环上的位置,并决定负责该待存储数据的虚拟节点;根据该虚拟节点确定该虚拟节点从属的目标机器;将该待存储数据存储到该目标机器上。
本发明实施例中,处理器701处理分布式系统中虚拟节点分割数据的过程也可以称为割环算法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,图6所示的数据处理装置的单元对应的程序可存储在数据存储设备或系统的可读存储介质内,并被其中的至少一个处理器执行,以实现上述数据处理方法,该方法包括图1至图5中各方法实施例所述的流程。存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本发明实施例公开的一种数据处理方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
根据所述多个虚拟节点的哈希值,分割所述分布式系统中已有的数据;
判断分割后的所述分布式系统中数据分布是否均匀;
若不均匀,删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点,并针对所述新增机器生成补充虚拟节点的哈希值;
根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据之后,所述方法还包括:
判断分割后的所述分布式系统中数据分布是否均匀;
若不均匀,则执行所述删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点的步骤。
3.根据权利要求1或2所述的方法,其特征在于,若分割后的所述分布式系统中数据分布均匀,所述方法还包括:
判断所述分布式系统中机器数是否达到预设数量;
若未达到,则增加机器到所述分布式系统中,并执行所述的针对新增机器生成多个虚拟节点的哈希值的步骤。
4.根据权利要求3所述的方法,其特征在于,所述判断分割后的所述分布式系统中数据分布是否均匀,包括:
判断分割后的所述分布式系统中各虚拟节点的数据量偏差是否不超过预设阈值;
若不超过预设阈值,则确定分割后的所述分布式系统中数据分布均匀;
若超过预设阈值,则确定分割后的所述分布式系统中数据分布不均匀。
5.根据权利要求4所述的方法,其特征在于,若所述分布式系统中机器数达到预设数量,所述方法还包括:
部署所述分布式系统以更新所述分布式系统已有的数据所存储到的机器,并根据所述分布式系统中新增机器的多个虚拟节点的哈希值确定所述多个虚拟节点在哈希环中的位置,以确定待存储的数据待存储到的机器。
6.一种数据处理装置,其特征在于,包括:
生成单元,用于针对分布式系统中的新增机器生成多个虚拟节点的哈希值;
分割单元,用于根据所述多个虚拟节点的哈希值,分割所述分布式系统中已有的数据;
判断单元,用于判断分割后的所述分布式系统中数据分布是否均匀;
删除单元,用于在所述判断单元判断出分割后的所述分布式系统中数据分布不均匀时,删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点,触发所述生成单元针对所述新增机器生成补充虚拟节点的哈希值;以及触发所述分割单元,根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据。
7.根据权利要求6所述的装置,其特征在于,所述判断单元在所述分割单元根据所述补充虚拟节点的哈希值,分割所述分布式系统中已有的数据之后,判断分割后的所述分布式系统中数据分布是否均匀;若不均匀,则触发所述删除单元执行所述的删除所述多个虚拟节点中引起所述分布式系统中数据分布不均的虚拟节点的操作。
8.根据权利要求6或7所述的装置,其特征在于,所述判断单元还用于在分割后的所述分布式系统中数据分布均匀时,判断所述分布式系统中机器数是否达到预设数量;若未达到,则触发添加单元,增加机器到所述分布式系统中,并触发所述生成单元执行所述的针对新增机器生成多个虚拟节点的哈希值的操作。
9.根据权利要求8所述的装置,其特征在于,所述判断单元判断分割后的所述分布式系统中数据分布是否均匀时,具体为:
判断分割后的所述分布式系统中各虚拟节点的数据量偏差是否不超过预设阈值;
若不超过预设阈值,则确定分割后的所述分布式系统中数据分布均匀;若超过预设阈值,则确定分割后的所述分布式系统中数据分布不均匀。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
部署单元,用于在所述分布式系统中机器数达到预设数量时,部署所述分布式系统以更新所述分布式系统已有的数据所存储到的机器,并根据所述分布式系统中新增机器的多个虚拟节点的哈希值确定所述多个虚拟节点在哈希环中的位置,以确定待存储的数据待存储到的机器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610882278.5A CN107918559A (zh) | 2016-10-08 | 2016-10-08 | 一种数据处理方法及装置 |
PCT/CN2017/103239 WO2018064936A1 (zh) | 2016-10-08 | 2017-09-25 | 一种数据处理方法及装置、存储介质 |
US16/220,678 US10698623B2 (en) | 2016-10-08 | 2018-12-14 | Data processing method and apparatus and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610882278.5A CN107918559A (zh) | 2016-10-08 | 2016-10-08 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107918559A true CN107918559A (zh) | 2018-04-17 |
Family
ID=61831618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610882278.5A Pending CN107918559A (zh) | 2016-10-08 | 2016-10-08 | 一种数据处理方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10698623B2 (zh) |
CN (1) | CN107918559A (zh) |
WO (1) | WO2018064936A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113689103A (zh) * | 2021-08-18 | 2021-11-23 | 国电南瑞南京控制系统有限公司 | 自适应负载均衡用采分流智能调度管理方法、装置及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654671B (zh) * | 2020-05-29 | 2021-11-23 | 杭州海康威视系统技术有限公司 | 视频数据的存储方法、装置、设备及存储介质 |
CN112015552A (zh) * | 2020-08-27 | 2020-12-01 | 平安科技(深圳)有限公司 | hash环均衡负载方法、装置、电子设备和存储介质 |
CN113923218B (zh) * | 2021-10-09 | 2023-07-21 | 天翼物联科技有限公司 | 编解码插件分布式部署方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219163A (zh) * | 2014-08-28 | 2014-12-17 | 杭州天宽科技有限公司 | 一种基于动态副本法和虚拟节点法的节点动态前移的负载均衡方法 |
CN104391863A (zh) * | 2014-10-23 | 2015-03-04 | 中国建设银行股份有限公司 | 一种数据存储方法及装置 |
CN105095315A (zh) * | 2014-05-23 | 2015-11-25 | 中国电信股份有限公司 | 动态调节哈希环节点数的方法、装置和系统 |
CN105187547A (zh) * | 2015-09-25 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法与系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379156B (zh) * | 2012-04-24 | 2016-03-09 | 深圳市腾讯计算机系统有限公司 | 实现存储空间动态均衡的方法、系统和装置 |
US9218204B2 (en) * | 2012-12-21 | 2015-12-22 | Advanced Micro Devices, Inc. | Processing engine for complex atomic operations |
CN103078946A (zh) * | 2013-01-10 | 2013-05-01 | 绍兴电力局 | 一种海量实时数据分布方法及其访问方法 |
CN103605789A (zh) * | 2013-12-04 | 2014-02-26 | 中国科学院计算技术研究所 | 一种获取kad网络上热门检索资源的方法和系统 |
JP6269530B2 (ja) * | 2015-02-26 | 2018-01-31 | 日本電気株式会社 | 記憶システム、記憶方法、及び、プログラム |
-
2016
- 2016-10-08 CN CN201610882278.5A patent/CN107918559A/zh active Pending
-
2017
- 2017-09-25 WO PCT/CN2017/103239 patent/WO2018064936A1/zh active Application Filing
-
2018
- 2018-12-14 US US16/220,678 patent/US10698623B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095315A (zh) * | 2014-05-23 | 2015-11-25 | 中国电信股份有限公司 | 动态调节哈希环节点数的方法、装置和系统 |
CN104219163A (zh) * | 2014-08-28 | 2014-12-17 | 杭州天宽科技有限公司 | 一种基于动态副本法和虚拟节点法的节点动态前移的负载均衡方法 |
CN104391863A (zh) * | 2014-10-23 | 2015-03-04 | 中国建设银行股份有限公司 | 一种数据存储方法及装置 |
CN105187547A (zh) * | 2015-09-25 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法与系统 |
Non-Patent Citations (1)
Title |
---|
田浪军 等: ""云存储系统中动态负载均衡算法研究"", 《计算机工程》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113689103A (zh) * | 2021-08-18 | 2021-11-23 | 国电南瑞南京控制系统有限公司 | 自适应负载均衡用采分流智能调度管理方法、装置及系统 |
CN113689103B (zh) * | 2021-08-18 | 2023-11-24 | 国电南瑞南京控制系统有限公司 | 自适应负载均衡用采分流智能调度管理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190121559A1 (en) | 2019-04-25 |
WO2018064936A1 (zh) | 2018-04-12 |
US10698623B2 (en) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918559A (zh) | 一种数据处理方法及装置 | |
US20190098474A1 (en) | Application migration method in a mobile edge system, related device, and system | |
CN105122936B (zh) | 一种业务分配的处理方法及相关装置 | |
AU2012398262B2 (en) | Partition extension method and apparatus | |
US10965552B2 (en) | Method and apparatus for managing virtualized network function | |
US11886905B2 (en) | Host upgrade method and device | |
CN107797865A (zh) | 用户任务处理方法及应用服务器 | |
EP3059670B1 (en) | Data storage method and storage server | |
CN106031100A (zh) | 业务链的部署方法和装置 | |
WO2017113280A1 (zh) | 分布式存储系统及管理元数据的方法 | |
CN106576260B (zh) | Nfv系统中的策略协调方法和装置 | |
EP3755047A1 (en) | Load migration method, apparatus, and system | |
CN105610971A (zh) | 一种负载均衡方法及装置 | |
CN103905544A (zh) | 一种集群存储系统及集群存储系统中的节点分配方法 | |
CN104932986A (zh) | 一种数据重分布方法及装置 | |
CN104699485A (zh) | 海量程序管理方法及构建方法 | |
CN114915593A (zh) | 基于Redis的流量控制方法、装置、电子设备及存储介质 | |
EP3197183A1 (en) | Method for managing application resources and registered node in m2m | |
EP3197207A1 (en) | Method for managing application resources and registered node in m2m | |
CN113491092A (zh) | 对用于云报告的客户端mac地址进行匿名化的方法 | |
CN109617950A (zh) | 一种数据更新方法、装置、设备及可读存储介质 | |
CN108153794B (zh) | 页面缓存数据刷新方法、装置及系统 | |
JP2017033337A (ja) | 仮想マシン配置装置および仮想マシン配置方法 | |
CN109857805B (zh) | 基于区块链的数据存储方法、相关设备及存储介质 | |
CN105191227B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180417 |