CN108462756A - 一种数据写入方法和装置 - Google Patents
一种数据写入方法和装置 Download PDFInfo
- Publication number
- CN108462756A CN108462756A CN201810272122.4A CN201810272122A CN108462756A CN 108462756 A CN108462756 A CN 108462756A CN 201810272122 A CN201810272122 A CN 201810272122A CN 108462756 A CN108462756 A CN 108462756A
- Authority
- CN
- China
- Prior art keywords
- data
- service node
- data module
- module
- written
- 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
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据写入方法和装置,该方法包括:接收客户端发送的数据写入请求,所述数据写入请求包括待写入数据;确定与所述待写入数据对应的第一分配组,确定在第一服务节点内是否存在第一分配组中的第一数据模块、第一分配组中的且处于第二服务节点内的第二数据模块;当第一服务节点内存在第一数据模块,且第一数据模块的角色属性为leader时,通过第一数据模块在第一服务节点和第二服务节点中写入所述待写入数据。通过本申请的技术方案,将所有数据均衡到各服务节点,避免某服务节点成为性能瓶颈,充分利用每个服务节点的处理性能,有效减少系统瓶颈,均衡系统负载,提高数据写入效率和工作效率,提高系统稳定度及可用性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据写入方法和装置。
背景技术
随着移动网络、大数据、云计算的大量应用,对存储容量和存储性能提出了越来越高的要求,Ceph(基于Linux PB的分布式文件系统)、GFS(Google File System,基于Linux的专有分布式文件系统)、Gluster、HDFS(Hadoop Distributed File System,分布式文件系统)等分布式文件系统,均得到了快速的发展。
其中,分布式文件系统包括多个服务节点,且可以将数据写入到服务节点,为了提高可靠性,通常可以将数据写入到多个服务节点。例如,可以将数据1存储到服务节点1、服务节点2和服务节点3。在这3个服务节点中,通常可以选举一个服务节点作为leader(领导者),如服务节点1,而剩余的服务节点2和服务节点3均为follower(跟随者)。在接收到针对数据1的写入请求时,由服务节点1分别在服务节点1、服务节点2和服务节点3完成数据的写入。
但是,在传统方式中,所有数据(如数据1、数据2、数据3等)的leader是同一个,如服务节点1。这样,服务节点1会成为性能瓶颈,即性能消耗很大,而剩余的服务节点比较空闲,导致写入效率较低。一旦服务节点1发生故障,则需要重新选举leader,在选举出leader之前,分布式文件系统无法正常使用。
发明内容
有鉴于此,本申请提供一种数据写入方法和装置,可以将所有数据均衡到各服务节点进行处理,可以充分利用每个服务节点的处理性能。
一方面,本申请提供一种数据写入方法,应用于第一服务节点,所述第一服务节点包括至少一个数据模块,所述至少一个数据模块中每个数据模块处于不同的分配组,所述每个数据模块用于存储与所述数据模块的角色属性对应的数据,所述方法包括:
接收客户端发送的数据写入请求,所述数据写入请求包括待写入数据;
确定与所述待写入数据对应的第一分配组,并确定在所述第一服务节点内是否存在所述第一分配组中的第一数据模块,以及所述第一分配组中的且处于第二服务节点内的第二数据模块;
当所述第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为leader时,通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据;
当所述第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为follower时,查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
另一方面,本申请提供一种数据写入装置,应用于第一服务节点,所述第一服务节点包括至少一个数据模块,所述至少一个数据模块中每个数据模块处于不同的分配组,所述每个数据模块用于存储与所述数据模块的角色属性对应的数据,所述装置包括:
接收单元,用于接收客户端发送的数据写入请求,所述数据写入请求包括待写入数据;
确定单元,用于确定与所述待写入数据对应的第一分配组,并确定在所述第一服务节点内是否存在所述第一分配组中的第一数据模块,以及所述第一分配组中的且处于第二服务节点内的第二数据模块;
处理单元,用于当第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为leader时,通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据;
发送单元,用于当第一服务节点内存在所述第一数据模块,所述第一数据模块的角色属性为follower时,查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
基于上述技术方案,本申请实施例中,服务节点在接收到包括待写入数据的数据写入请求后,确定与待写入数据对应的第一分配组,而第一分配组中的角色属性为leader的数据模块,可能位于任意的服务节点,而不是位于固定的服务节点,即,针对不同的待写入数据,角色属性为leader的数据模块可能位于不同的服务节点,从而将所有数据均衡到各服务节点进行处理,避免某服务节点成为性能瓶颈,充分利用每个服务节点的处理性能,有效减少系统瓶颈,规避集中处理的弊端,均衡系统负载,提高数据写入效率和工作效率,是针对分布式一致性服务技术的改进,突破系统瓶颈,起到负载均衡的新技术。有效平衡了数据安全性和效率的问题,即保证数据的一致性安全,又提高数据同步的效率。可以提高系统稳定度及可用性,即使某服务节点发生故障,只需要快速恢复该服务节点的数据即可,其它服务节点不受异常影响,数据恢复速度快。
附图说明
图1是本申请一种实施方式中的应用场景示意图;
图2是本申请一种实施方式中的分配组划分的示意图;
图3是本申请一种实施方式中的服务节点的部署架构示意图;
图4是本申请一种实施方式中的数据写入方法的流程图;
图5A和图5B是本申请一种实施方式中的数据写入流程的示意图;
图6是本申请一种实施方式中的服务节点异常后的迁移示意图;
图7是本申请一种实施方式中的数据写入装置的结构图;
图8是本申请一种实施方式中的服务节点的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例提出一种数据写入方法,该方法可以应用于分布式系统一致性服务技术中,尤其是包括客户端、管理节点和服务节点的系统,如分布式文件系统,参见图1所示,为本申请实施例的应用场景示意图。在图1中,以4个服务节点、2个管理节点、2个客户端为例进行说明;在实际应用中,服务节点的数量、管理节点的数量、客户端的数量,均可以为其它数值,对此数量不做限制,后续以图1为例进行说明。
其中,客户端是用户进行数据写入/数据读取的接口,也就是说,用户可以通过客户端访问服务节点,从而在服务节点写入数据,并从服务节点读取数据。
其中,管理节点用于监控各服务节点的健康状态。例如,管理节点与每个服务节点建立连接,且管理节点与每个服务节点之间发送心跳消息;若预设时间内未接收到服务节点发送的心跳消息,则该服务节点的健康状态是异常;若预设时间内接收到服务节点发送的心跳消息,则该服务节点的健康状态是正常。
管理节点可以将正常服务节点的信息(如IP地址)发送给客户端,客户端从所有服务节点中选择一个服务节点,并利用该服务节点的信息与该服务节点建立连接。参见图1所示,管理节点111将各服务节点的信息发送给客户端131,客户端131从所有服务节点中选择服务节点121,并与服务节点121建立连接。
为了提高管理节点的可靠性,通常可以部署两个管理节点,如管理节点111和管理节点112。在管理节点111未发生故障时,可以由管理节点111监控各服务节点的健康状态,一旦管理节点111发生故障,则管理节点112可以快速感知到管理节点111的故障,并由管理节点112监控各服务节点的健康状态。
其中,服务节点用于存储数据,例如,服务节点可以为用于存储数据的OSD(ObjectStorage Device,对象存储设备),每个OSD相当于一个物理磁盘。
为了提高数据存储的可靠性,通常可以将数据写入到多个服务节点,在所述多个服务节点中,有一个服务节点的角色属性为leader,剩余服务节点的角色属性为follower。在传统方式中,所有数据的leader是同一个服务节点,与上述方式不同的是,本申请实施例中,可以将所有数据的leader均衡到各服务节点,即不同数据的leader可能是同一个服务节点,也可能是不同的服务节点。
为了将所有数据的leader均衡到各服务节点,本申请实施例中,管理节点可以根据服务节点数量划分多个分配组,分配组数量可以与服务节点数量相同,也可以是服务节点数量的正整数倍。例如,服务节点数量为4时,则分配组数量可以为4,也可以为8、12等,对此不做限制,后续以4个分配组为例。
管理节点在划分多个分配组时,每个分配组可以包括多个数据模块的信息,所述多个数据模块中每个数据模块处于不同的服务节点,且每个数据模块具有对应的角色属性。其中,在同一个分配组中,只有一个角色属性为leader的数据模块,并有至少一个角色属性为follower的数据模块(例如,若采用两冗余备份,角色属性为follower的数据模块的数量为1,若采用三冗余备份,则角色属性为follower的数据模块的数量为2,以此类推)。在同一分配组内,角色属性为leader的数据模块和角色属性为follower的数据模块之间,采用PAXOS协议进行数据同步,保证分配组内数据的一致性。此外,在不同的分配组中,角色属性为leader的数据模块处于不同的服务节点。进一步的,每个服务节点可以包括至少一个数据模块,至少一个数据模块中每个数据模块处于不同的分配组,每个数据模块用于存储与该数据模块的角色属性对应的数据。
例如,如图2所示,管理节点111可以根据服务节点数量划分4个分配组。
在分配组1中,可以包括数据模块11的信息110、数据模块12的信息120、数据模块13的信息130。其中,信息110用于表示数据模块11的角色属性为leader,且数据模块11处于服务节点121;信息120用于表示数据模块12的角色属性为follower,且数据模块12处于服务节点122;信息130用于表示数据模块13的角色属性为follower,且数据模块13处于服务节点123。
在分配组2中,可以包括数据模块21的信息210、数据模块22的信息220、数据模块23的信息230。其中,信息210用于表示数据模块21的角色属性为leader,且数据模块21处于服务节点122;信息220用于表示数据模块22的角色属性为follower,且数据模块22处于服务节点123;信息230用于表示数据模块23的角色属性为follower,且数据模块23处于服务节点124。
在分配组3中,可以包括数据模块31的信息310、数据模块32的信息320、数据模块33的信息330。其中,信息310用于表示数据模块31的角色属性为leader,且数据模块31处于服务节点123;信息320用于表示数据模块32的角色属性为follower,且数据模块32处于服务节点124;信息330用于表示数据模块33的角色属性为follower,且数据模块33处于服务节点121。
在分配组4中,可以包括数据模块41的信息410、数据模块42的信息420、数据模块43的信息430。其中,信息410用于表示数据模块41的角色属性为leader,且数据模块41处于服务节点124;信息420用于表示数据模块42的角色属性为follower,且数据模块42处于服务节点121;信息430用于表示数据模块43的角色属性为follower,且数据模块43处于服务节点122。
从图2可以看出,每个服务节点均包括三个数据模块,这三个数据模块中每个数据模块处于不同的分配组中,每个服务节点均包括一个角色属性为leader的数据模块,即角色属性为leader的数据模块分布在不同的服务节点。
管理节点按照上述方式划分多个分配组后,还可以向每个服务节点发送分配组消息,该分配组消息可以携带分配组1、分配组2、分配组3、分配组4。各服务节点在接收到分配组消息后,就可以解析出分配组1、分配组2、分配组3、分配组4。其中,分配组1可以包括上述信息110、信息120、信息130;分配组2可以包括上述信息210、信息220、信息230;以此类推,对此不再赘述。
在一个例子中,Zone(服务区)可以包括多个机架,每个机架可以包括多个主机,而服务节点可以部署在主机,为保证数据和工作负载的均衡分配,服务节点121对应的主机、服务节点122对应的主机、服务节点123对应的主机和服务节点124对应的主机可以连接在不同机架。参见图3所示,Zone包括机架A、机架B、机架C和机架D,服务节点121对应的主机11连接机架A,服务节点122对应的主机13连接机架B,服务节点123对应的主机16连接机架C,服务节点124对应的主机18连接机架D,即不同服务节点对应不同的机架。
基于上述架构,当某机架发生故障时,只有一个服务节点无法使用,而其它服务节点可以继续使用,避免所有服务节点均无法使用。例如,当机架A故障时,只有服务节点121无法使用,而服务节点122-124均可以正常使用。
在上述应用场景下,参见图4所示,为本申请实施例中提出的数据写入方法的流程示意图,该方法可以应用于第一服务节点,且该方法可以包括:
步骤401,接收客户端发送的数据写入请求,数据写入请求包括待写入数据。
步骤402,确定与该待写入数据对应的第一分配组,并确定在第一服务节点内是否存在该第一分配组中的第一数据模块,以及该第一分配组中的且处于第二服务节点内的第二数据模块。
其中,当第一服务节点内存在第一数据模块,且该第一数据模块的角色属性为leader时,则可以执行步骤403;当第一服务节点内存在第一数据模块,且该第一数据模块的角色属性为follower时,则可以执行步骤404;当第一服务节点内不存在第一数据模块时,则可以执行步骤404。
在一个例子中,确定与该待写入数据对应的第一分配组,可以包括:通过hash算法(如取余hash算法),对待写入数据的数据标识和已存储的分配组数量进行hash处理,得到hash值;通过该hash值查询映射表,得到与该hash值对应的第一分配组。其中,该映射表用于记录hash值与分配组的对应关系。
在一个例子中,上述分配组数量可以是管理节点发送给第一服务节点的分配组消息中携带,也可以是预先配置在第一服务节点,对此不做限制。
步骤403,通过第一数据模块在第一服务节点和第二服务节点中写入待写入数据,即由第一数据模块在第一服务节点和第二服务节点中写入待写入数据。
其中,通过第一数据模块在第一服务节点和第二服务节点中写入待写入数据,可以包括:通过第一数据模块在第一服务节点中写入待写入数据。然后,通过第一数据模块将待写入数据发送给第二数据模块,以使第二数据模块进行所述待写入数据的写入,即通过第二数据模块在第二服务节点中写入待写入数据;或者,通过第一数据模块向第二服务节点发送事务修改请求,若接收到第二服务节点发送的事务修改应答,则将待写入数据发送给第二数据模块,以使第二数据模块进行所述待写入数据的写入,即通过第二数据模块在第二服务节点中写入待写入数据。
步骤404,查找所有第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送数据写入请求。
以下结合图1-图3所示的应用场景,对上述数据写入方法进行详细说明。
应用场景1:参见图5A所示,为数据写入流程的一个示意图。
客户端131与服务节点121建立连接后,向服务节点121发送数据写入请求,该数据写入请求包括待写入数据A。服务节点121在接收到该数据写入请求后,可以确定与待写入数据A对应的分配组,假设为分配组1,并基于分配组1确定如下信息:数据模块11的角色属性为leader,且数据模块11处于服务节点121,数据模块12的角色属性为follower,且数据模块12处于服务节点122数据模块13的角色属性为follower,且数据模块13处于服务节点123。
由以上信息可以获知:服务节点121内存在分配组1中的第一数据模块(即数据模块11),且数据模块11的角色属性为leader,分配组1中的第二数据模块为处于服务节点122的数据模块12、处于服务节点123的数据模块13。
然后,服务节点121通过数据模块11在服务节点121、服务节点122和服务节点123中写入待写入数据A。例如,数据模块11将待写入数据A写入到服务节点121(如写入到服务节点121的数据模块11或其它存储介质,对此不做限制)、将待写入数据A写入到服务节点122(如写入到服务节点122的数据模块12或其它存储介质,对此不做限制)、将待写入数据A写入到服务节点123(如写入到服务节点123的数据模块13或其它存储介质,对此不做限制)
在待写入数据A写入完成之后,服务节点121还可以向客户端131发送针对该数据写入请求的响应消息,该响应消息用于表示数据写入成功。
在上述实施例中,服务节点121确定与待写入数据A对应的分配组时,可以包括:服务节点121先确定待写入数据A的数据标识,对此数据标识不做限制,如可以为LUN(LogicalUnit Number,逻辑单元号)标识、OID(Object Identifier,对象标识符)标识等。此外,服务节点121可以确定分配组数量为4。
然后,服务节点121可以通过hash算法对数据标识和分配组数量进行hash处理,得到hash值,以hash算法是取余hash算法为例,则可以使用数据标识对分配组数量进行取余处理,得到hash值,该hash值也就是取余处理的余数。
然后,服务节点121通过该hash值查询映射表,得到与该hash值对应的分配组。例如,映射表中记录有余数0与分配组1的对应关系,余数1与分配组2的对应关系,余数2与分配组3的对应关系,余数3与分配组4的对应关系。基于此,假设hash值为余数0,则可以确定待写入数据A对应分配组1。
在上述实施例中,数据模块11将待写入数据A写入到服务节点122时,数据模块11可以向服务节点122发送事务修改请求。服务节点122接收到事务修改请求后,若确定数据模块11具有写入权限,且服务节点122未发生异常,则向数据模块11返回事务修改应答(表示同意数据写入)。数据模块11接收到该事务修改应答后,则将待写入数据A发送给服务节点122的数据模块12,数据模块12在服务节点122中写入待写入数据A,如写入到数据模块12。服务节点122接收到事务修改请求后,若确定数据模块11不具有写入权限,和/或服务节点122发生异常,则向数据模块11返回事务拒绝应答(表示拒绝数据写入),或不返回应答,这样,数据模块11不会将待写入数据A发送给数据模块12。
数据模块11将待写入数据A写入到服务节点123的过程,与数据模块11将待写入数据A写入到服务节点122的过程类似,在此不再重复赘述。
应用场景2:参见图5B所示,为数据写入流程的一个示意图。
客户端131与服务节点121建立连接后,向服务节点121发送数据写入请求,该数据写入请求包括待写入数据B。服务节点121在接收到该数据写入请求之后,可以确定与待写入数据B对应的分配组,假设为分配组3,并基于分配组3确定如下信息:数据模块31的角色属性为leader,且数据模块31处于服务节点123,数据模块32的角色属性为follower,且数据模块32处于服务节点124,数据模块33的角色属性为follower,且数据模块33处于服务节点121。
由以上信息可以获知:服务节点121内存在分配组3中的第一数据模块(即数据模块33),且数据模块33的角色属性为follower,分配组3中的第二数据模块为处于服务节点123的数据模块31、处于服务节点124的数据模块32。
然后,服务节点121从数据模块31和数据模块32中查找到角色属性为leader的数据模块31,并向数据模块31所在的服务节点123发送数据写入请求。
服务节点123在接收到该数据写入请求之后,可以确定与待写入数据B对应的分配组3,显然,服务节点123内存在分配组3中的第一数据模块(即数据模块31),且数据模块31的角色属性为leader,分配组3中的第二数据模块为处于服务节点124的数据模块32、处于服务节点121的数据模块33。
因此,服务节点123通过数据模块31在服务节点123、服务节点124和服务节点121中写入待写入数据B。例如,数据模块31将待写入数据B写入到服务节点123、将待写入数据B写入到服务节点124、将待写入数据B写入到服务节点121,具体写入过程可以参见应用场景1,在此不再重复赘述。
在待写入数据B写入完成之后,服务节点123还可以向服务节点121发送针对该数据写入请求的响应消息,服务节点121可以向客户端131发送针对该数据写入请求的响应消息,该响应消息用于表示数据写入成功。
在一个例子中,基于各服务节点存储的数据,数据读取流程还可以包括:
第一服务节点接收客户端发送的数据读取请求,确定与该数据读取请求对应的第二分配组,并确定在第一服务节点内是否存在该第二分配组中的第三数据模块,以及该第二分配组中的且处于第三服务节点内的第四数据模块。
进一步的,当第一服务节点内存在第三数据模块,则可以通过该第三数据模块读取该数据读取请求对应的数据。当第一服务节点内不存在第三数据模块,则可以查找所有第四数据模块中角色属性为leader的第四数据模块,并向角色属性为leader的第四数据模块所在的第三服务节点发送数据读取请求。
例如,服务节点121在接收到用于请求待读取数据(如数据A)的数据读取请求后,确定与该数据读取请求对应的分配组1(确定方式参见应用场景1,只是数据标识为待读取数据的数据标识,在此不再赘述)。显然,服务节点121内存在分配组1中的第三数据模块(即数据模块11),且数据模块11的角色属性为leader,分配组1中的第四数据模块为处于服务节点122的数据模块12、处于服务节点123的数据模块13。因此,服务节点121通过数据模块11读取数据A,对此读取过程不做限制,并将读取的数据A返回给客户端131。
又例如,服务节点121在接收到用于请求待读取数据(如数据B)的数据读取请求后,确定与该数据读取请求对应的分配组3。显然,服务节点121内存在分配组3中的第三数据模块(即数据模块33),且数据模块33的角色属性为follower,分配组3中的第四数据模块为处于服务节点123的数据模块31、处于服务节点124的数据模块32。因此,服务节点121可以通过数据模块33读取数据B,对此读取过程不做限制,并将读取的数据B返回给客户端131。
在一个例子中,管理节点能够获知发生异常的服务节点。例如,管理节点与每个服务节点之间可以发送心跳消息,若预设时间内未接收到服务节点发送的心跳消息,则确定该服务节点发生异常。又例如,任意两个服务节点之间可以发送心跳消息;若某个服务节点预设时间内未接收到另一个服务节点发送的心跳消息,则确定另一个服务节点发生异常,并将另一个服务节点发生异常的信息通知给管理节点,使得管理节点能够确定另一个服务节点发生异常。
管理节点在确定服务节点发生异常后,则该服务节点的数据模块可以迁移到其它服务节点,因此,管理节点还可以确定数据模块迁移到哪个服务节点。
参见图6所示,在服务节点124发生异常后,由于服务节点124包括数据模块23、数据模块32、数据模块41,因此,可以将数据模块23、数据模块32、数据模块41迁移到其它服务节点。进一步的,为了保证同一个分配组中,角色属性为leader的数据模块和角色属性为follower的数据模块部署在不同服务节点,则:由于服务节点122和服务节点123已经存在分配组2的数据模块,因此,可以将分配组2的数据模块23迁移到服务节点121;由于服务节点121和服务节点123已经存在分配组3的数据模块,因此,可以将分配组3的数据模块32迁移到服务节点122;由于服务节点121和服务节点122已经存在分配组4的数据模块,因此,可以将分配组4的数据模块41迁移到服务节点123。
然后,管理节点可以向未发生故障的服务节点发送异常指令,该异常指令携带从异常服务节点迁移到其它服务节点的数据模块的信息。例如,可以携带数据模块23的信息,如数据模块23迁移到服务节点121,且数据模块23的角色属性为follower;还可以携带数据模块32的信息,如数据模块32迁移到服务节点122,且数据模块32的角色属性为follower;还可以携带数据模块41的信息,如数据模块41迁移到服务节点123,且数据模块41的角色属性为leader。
第一服务节点接收到该异常指令,若该异常指令携带从异常服务节点迁移到第一服务节点的第五数据模块的信息,且第五数据模块的角色属性为leader,则通过第五数据模块,在第一服务节点处对异常服务节点中的数据进行恢复。和/或,第一服务节点接收到该异常指令后,若该异常指令携带从异常服务节点迁移到第四服务节点的第六数据模块的信息,且第六数据模块的角色属性为follower,则确定第六数据模块所属的第三分配组;当第一服务节点内存在该第三分配组中的第七数据模块,且该第七数据模块的角色属性为leader时,则可以通过第七数据模块,在第四服务节点处对异常服务节点中的数据进行恢复。
例如,服务节点121接收到异常指令后,确定第五数据模块为数据模块23,确定第六数据模块为数据模块32和数据模块41。由于数据模块23的角色属性为follower,因此不需要服务节点121对数据模块23进行处理。由于数据模块41的角色属性为leader,因此不需要服务节点121对数据模块41进行处理。由于数据模块32的角色属性为follower,且数据模块32对应分配组3,服务节点121内存在分配组3中的第七数据模块(即数据模块33),但是数据模块33的角色属性为follower,因此,不需要服务节点121对数据模块32进行处理。
服务节点122接收到异常指令后,确定第五数据模块为数据模块32,确定第六数据模块为数据模块23和数据模块41。由于数据模块32的角色属性为follower,因此不需要服务节点122对数据模块32进行处理。由于数据模块41的角色属性为leader,因此不需要服务节点122对数据模块41进行处理。由于数据模块23的角色属性为follower,且数据模块23对应分配组2,服务节点122内存在分配组2的第七数据模块(即数据模块21),数据模块21的角色属性为leader,因此,服务节点122通过数据模块21在数据模块23迁移后的服务节点121对服务节点124中的数据进行恢复。例如,数据模块21从服务节点122和/或服务节点123读取数据,根据数据在服务节点121恢复服务节点124的数据。
具体的,数据模块23在服务节点124中写入的数据(如数据A),由于服务节点124发生异常而丢失,因此,需要将数据A恢复到服务节点121。基于此,数据模块21可以从服务节点122的数据模块21中读取数据A,或者,从服务节点123的数据模块22中读取数据A,并将数据A存储到服务节点121的数据模块23,从而在服务节点121的数据模块23恢复数据A。
服务节点123接收到异常指令后,确定第五数据模块为数据模块41,确定第六数据模块为数据模块23和数据模块32。由于数据模块41的角色属性为leader,因此,服务节点123通过数据模块41在服务节点123对服务节点124中的数据进行恢复。由于数据模块23的角色属性为follower,且数据模块23对应分配组2,服务节点123内存在分配组2中的第七数据模块(即数据模块22),但是数据模块22的角色属性为follower,因此,不需要服务节点123对数据模块23进行处理。由于数据模块32的角色属性为follower,且数据模块32对应分配组3,服务节点123内存在分配组3中的第七数据模块(即数据模块31),数据模块31的角色属性为leader,因此,服务节点123通过数据模块31在数据模块32迁移后的服务节点122对服务节点124中的数据进行恢复。
基于上述技术方案,将所有数据均衡到各服务节点进行处理,避免某服务节点成为性能瓶颈,充分利用每个服务节点的处理性能,有效减少系统瓶颈,规避集中处理的弊端,均衡系统负载,提高数据写入效率和工作效率,是针对分布式一致性服务技术的改进,突破系统瓶颈,起到负载均衡的新技术。有效平衡了数据安全性和效率的问题,即保证数据的一致性安全,又提高数据同步的效率。可以提高系统稳定度及可用性,即使某服务节点发生故障,只需要快速恢复该服务节点的数据即可,其它服务节点不受异常影响,数据恢复速度快。
基于与上述方法同样的申请构思,本申请实施例还提出一种数据写入装置,可以应用于第一服务节点,所述第一服务节点包括至少一个数据模块,所述至少一个数据模块中每个数据模块处于不同的分配组,所述每个数据模块用于存储与所述数据模块的角色属性对应的数据,如图7所示,为所述装置的结构图。
接收单元701,用于接收客户端发送的数据写入请求,所述数据写入请求包括待写入数据;
确定单元702,用于确定与所述待写入数据对应的第一分配组,并确定在所述第一服务节点内是否存在所述第一分配组中的第一数据模块,以及所述第一分配组中的且处于第二服务节点内的第二数据模块;
处理单元703,用于当第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为leader时,通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据;
发送单元704,用于当第一服务节点内存在所述第一数据模块,所述第一数据模块的角色属性为follower时,查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
可选地,所述发送单元704,还用于当所述第一服务节点内不存在所述第一数据模块时,则查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
可选地,所述确定单元702确定与所述待写入数据对应的第一分配组时具体用于:通过hash算法,对所述待写入数据的数据标识和已存储的分配组数量进行hash处理,得到hash值;通过所述hash值查询映射表,得到与所述hash值对应的第一分配组;其中,所述映射表用于记录hash值与分配组的对应关系。
可选地,所述处理单元703通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据时具体用于:通过所述第一数据模块在所述第一服务节点中写入所述待写入数据;
通过所述第一数据模块将所述待写入数据发送给所述第二数据模块,以使第二数据模块进行所述待写入数据的写入;或者,通过所述第一数据模块向所述第二服务节点发送事务修改请求,若接收到所述第二服务节点发送的事务修改应答,则将所述待写入数据发送给所述第二数据模块,以使第二数据模块进行所述待写入数据的写入。
所述接收单元701,还用于接收客户端发送的数据读取请求;
所述确定单元702,还用于确定与所述数据读取请求对应的第二分配组,并确定在所述第一服务节点内是否存在所述第二分配组中的第三数据模块,以及所述第二分配组中的且处于第三服务节点内的第四数据模块;
所述处理单元703,还用于当所述第一服务节点内存在所述第三数据模块时,通过所述第三数据模块读取所述数据读取请求对应的数据;
所述发送单元704,还用于当所述第一服务节点内不存在所述第三数据模块,则查找所述第四数据模块中角色属性为leader的第四数据模块,并向角色属性为leader的第四数据模块所在的第三服务节点发送所述数据读取请求。
可选地,所述接收单元701,还用于接收管理节点发送的异常指令,所述异常指令携带从异常服务节点迁移到所述第一服务节点的第五数据模块的信息;
所述处理单元703,还用于若所述第五数据模块的角色属性为leader,则通过第五数据模块,在所述第一服务节点处对所述异常服务节点中的数据进行恢复。
可选地,所述接收单元701,还用于接收管理节点发送的异常指令,所述异常指令携带从异常服务节点迁移到第四服务节点的第六数据模块的信息;
所述确定单元702,还用于若所述第六数据模块的角色属性为follower,则确定所述第六数据模块所属的第三分配组;
所述处理单元703,还用于当所述第一服务节点内存在所述第三分配组中的第七数据模块,且所述第七数据模块的角色属性为leader时,则通过所述第七数据模块,在所述第四服务节点处对所述异常服务节点中的数据进行恢复。
本申请实施例中提供的服务节点,从硬件层面而言,其硬件架构示意图具体可以参见图8所示。可以包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的数据写入操作。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种数据写入方法,其特征在于,应用于第一服务节点,所述第一服务节点包括至少一个数据模块,所述至少一个数据模块中每个数据模块处于不同的分配组,所述每个数据模块用于存储与所述数据模块的角色属性对应的数据,所述方法包括:
接收客户端发送的数据写入请求,所述数据写入请求包括待写入数据;
确定与所述待写入数据对应的第一分配组,并确定在所述第一服务节点内是否存在所述第一分配组中的第一数据模块,以及所述第一分配组中的且处于第二服务节点内的第二数据模块;
当所述第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为leader时,通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据;
当所述第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为follower时,查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
2.根据权利要求1所述的方法,其特征在于,所述确定在所述第一服务节点内是否存在所述第一分配组中的第一数据模块,以及所述第一分配组中的且处于第二服务节点内的第二数据模块之后,所述方法还包括:
当第一服务节点内不存在所述第一数据模块时,查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
3.根据权利要求1所述的方法,其特征在于,所述确定与所述待写入数据对应的第一分配组,包括:
通过hash算法,对所述待写入数据的数据标识和已存储的分配组数量进行hash处理,得到hash值;
通过所述hash值查询映射表,得到与所述hash值对应的第一分配组;
其中,所述映射表用于记录hash值与分配组的对应关系。
4.根据权利要求1所述的方法,其特征在于,所述通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据,包括:
通过所述第一数据模块在所述第一服务节点中写入所述待写入数据;
通过所述第一数据模块将所述待写入数据发送给所述第二数据模块,以使第二数据模块进行所述待写入数据的写入;或者,通过所述第一数据模块向所述第二服务节点发送事务修改请求,若接收到所述第二服务节点发送的事务修改应答,则将所述待写入数据发送给所述第二数据模块,以使第二数据模块进行所述待写入数据的写入。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收客户端发送的数据读取请求,确定与所述数据读取请求对应的第二分配组,并确定在所述第一服务节点内是否存在所述第二分配组中的第三数据模块,以及所述第二分配组中的且处于第三服务节点内的第四数据模块;
当所述第一服务节点内存在所述第三数据模块,通过所述第三数据模块读取所述数据读取请求对应的数据;
当所述第一服务节点内不存在所述第三数据模块,则查找所述第四数据模块中角色属性为leader的第四数据模块,并向角色属性为leader的第四数据模块所在的第三服务节点发送所述数据读取请求。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收管理节点发送的异常指令,所述异常指令携带从异常服务节点迁移到所述第一服务节点的第五数据模块的信息;
若所述第五数据模块的角色属性为leader,则通过所述第五数据模块,在所述第一服务节点处对所述异常服务节点中的数据进行恢复。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收管理节点发送的异常指令,所述异常指令携带从异常服务节点迁移到第四服务节点的第六数据模块的信息;
若所述第六数据模块的角色属性为follower,则确定所述第六数据模块所属的第三分配组;
当所述第一服务节点内存在所述第三分配组中的第七数据模块,且所述第七数据模块的角色属性为leader时,则通过所述第七数据模块,在所述第四服务节点处对所述异常服务节点中的数据进行恢复。
8.一种数据写入装置,其特征在于,应用于第一服务节点,所述第一服务节点包括至少一个数据模块,所述至少一个数据模块中每个数据模块处于不同的分配组,所述每个数据模块用于存储与所述数据模块的角色属性对应的数据,所述装置包括:
接收单元,用于接收客户端发送的数据写入请求,所述数据写入请求包括待写入数据;
确定单元,用于确定与所述待写入数据对应的第一分配组,并确定在所述第一服务节点内是否存在所述第一分配组中的第一数据模块,以及所述第一分配组中的且处于第二服务节点内的第二数据模块;
处理单元,用于当第一服务节点内存在所述第一数据模块,且所述第一数据模块的角色属性为leader时,通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据;
发送单元,用于当第一服务节点内存在所述第一数据模块,所述第一数据模块的角色属性为follower时,查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
9.根据权利要求8所述的装置,其特征在于,
所述发送单元,还用于当所述第一服务节点内不存在所述第一数据模块时,则查找所述第二数据模块中角色属性为leader的第二数据模块,并向角色属性为leader的第二数据模块所在的第二服务节点发送所述数据写入请求。
10.根据权利要求8所述的装置,其特征在于,
所述确定单元确定与所述待写入数据对应的第一分配组时具体用于:通过hash算法,对所述待写入数据的数据标识和已存储的分配组数量进行hash处理,得到hash值;通过所述hash值查询映射表,得到与所述hash值对应的第一分配组;其中,所述映射表用于记录hash值与分配组的对应关系。
11.根据权利要求8所述的装置,其特征在于,所述处理单元通过所述第一数据模块在所述第一服务节点和所述第二服务节点中写入所述待写入数据时具体用于:通过所述第一数据模块在所述第一服务节点中写入所述待写入数据;
通过所述第一数据模块将所述待写入数据发送给所述第二数据模块,以使第二数据模块进行所述待写入数据的写入;或者,通过所述第一数据模块向所述第二服务节点发送事务修改请求,若接收到所述第二服务节点发送的事务修改应答,则将所述待写入数据发送给所述第二数据模块,以使第二数据模块进行所述待写入数据的写入。
12.根据权利要求8所述的装置,其特征在于,
所述接收单元,还用于接收客户端发送的数据读取请求;
所述确定单元,还用于确定与所述数据读取请求对应的第二分配组,并确定在所述第一服务节点内是否存在所述第二分配组中的第三数据模块,以及所述第二分配组中的且处于第三服务节点内的第四数据模块;
所述处理单元,还用于当所述第一服务节点内存在所述第三数据模块时,通过所述第三数据模块读取所述数据读取请求对应的数据;
所述发送单元,还用于当所述第一服务节点内不存在所述第三数据模块,则查找所述第四数据模块中角色属性为leader的第四数据模块,并向角色属性为leader的第四数据模块所在的第三服务节点发送所述数据读取请求。
13.根据权利要求8所述的装置,其特征在于,
所述接收单元,还用于接收管理节点发送的异常指令,所述异常指令携带从异常服务节点迁移到所述第一服务节点的第五数据模块的信息;
所述处理单元,还用于若所述第五数据模块的角色属性为leader,则通过所述第五数据模块,在所述第一服务节点处对所述异常服务节点中的数据进行恢复。
14.根据权利要求8所述的装置,其特征在于,
所述接收单元,还用于接收管理节点发送的异常指令,所述异常指令携带从异常服务节点迁移到第四服务节点的第六数据模块的信息;
所述确定单元,还用于若所述第六数据模块的角色属性为follower,则确定所述第六数据模块所属的第三分配组;
所述处理单元,还用于当所述第一服务节点内存在所述第三分配组中的第七数据模块,且所述第七数据模块的角色属性为leader时,则通过所述第七数据模块,在所述第四服务节点处对所述异常服务节点中的数据进行恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810272122.4A CN108462756B (zh) | 2018-03-29 | 2018-03-29 | 一种数据写入方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810272122.4A CN108462756B (zh) | 2018-03-29 | 2018-03-29 | 一种数据写入方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108462756A true CN108462756A (zh) | 2018-08-28 |
CN108462756B CN108462756B (zh) | 2020-11-06 |
Family
ID=63237804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810272122.4A Active CN108462756B (zh) | 2018-03-29 | 2018-03-29 | 一种数据写入方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108462756B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828722A (zh) * | 2019-01-29 | 2019-05-31 | 中国人民大学 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
CN110404268A (zh) * | 2019-08-20 | 2019-11-05 | 网易(杭州)网络有限公司 | 一种游戏中的玩家匹配方法及装置 |
CN110928943A (zh) * | 2018-08-29 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 一种分布式数据库及数据写入方法 |
CN112559485A (zh) * | 2019-09-26 | 2021-03-26 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929454A (zh) * | 2013-01-15 | 2014-07-16 | 中国移动通信集团四川有限公司 | 一种云计算平台中负载均衡存储的方法和系统 |
CN105577806A (zh) * | 2015-12-30 | 2016-05-11 | Tcl集团股份有限公司 | 一种分布式缓存方法及系统 |
US9344494B2 (en) * | 2011-08-30 | 2016-05-17 | Oracle International Corporation | Failover data replication with colocation of session state data |
CN105959419A (zh) * | 2016-07-15 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 基于一致性树的分布式存储结构的构建方法及系统 |
CN106331147A (zh) * | 2016-09-09 | 2017-01-11 | 深圳市彬讯科技有限公司 | 一种redis分布式调用方法及其系统 |
CN106445409A (zh) * | 2016-09-13 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种分布式块存储的数据写入方法及装置 |
CN106484311A (zh) * | 2015-08-31 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据处理方法及装置 |
CN106527986A (zh) * | 2016-11-03 | 2017-03-22 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN107657027A (zh) * | 2017-09-27 | 2018-02-02 | 北京小米移动软件有限公司 | 数据存储方法及装置 |
CN107807794A (zh) * | 2017-10-31 | 2018-03-16 | 新华三技术有限公司 | 一种数据存储方法和装置 |
-
2018
- 2018-03-29 CN CN201810272122.4A patent/CN108462756B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9344494B2 (en) * | 2011-08-30 | 2016-05-17 | Oracle International Corporation | Failover data replication with colocation of session state data |
CN103929454A (zh) * | 2013-01-15 | 2014-07-16 | 中国移动通信集团四川有限公司 | 一种云计算平台中负载均衡存储的方法和系统 |
CN106484311A (zh) * | 2015-08-31 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据处理方法及装置 |
CN105577806A (zh) * | 2015-12-30 | 2016-05-11 | Tcl集团股份有限公司 | 一种分布式缓存方法及系统 |
CN105959419A (zh) * | 2016-07-15 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 基于一致性树的分布式存储结构的构建方法及系统 |
CN106331147A (zh) * | 2016-09-09 | 2017-01-11 | 深圳市彬讯科技有限公司 | 一种redis分布式调用方法及其系统 |
CN106445409A (zh) * | 2016-09-13 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种分布式块存储的数据写入方法及装置 |
CN106527986A (zh) * | 2016-11-03 | 2017-03-22 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN107657027A (zh) * | 2017-09-27 | 2018-02-02 | 北京小米移动软件有限公司 | 数据存储方法及装置 |
CN107807794A (zh) * | 2017-10-31 | 2018-03-16 | 新华三技术有限公司 | 一种数据存储方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928943A (zh) * | 2018-08-29 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 一种分布式数据库及数据写入方法 |
CN110928943B (zh) * | 2018-08-29 | 2023-06-20 | 阿里云计算有限公司 | 一种分布式数据库及数据写入方法 |
CN109828722A (zh) * | 2019-01-29 | 2019-05-31 | 中国人民大学 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
CN109828722B (zh) * | 2019-01-29 | 2022-01-28 | 中国人民大学 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
CN110404268A (zh) * | 2019-08-20 | 2019-11-05 | 网易(杭州)网络有限公司 | 一种游戏中的玩家匹配方法及装置 |
CN110404268B (zh) * | 2019-08-20 | 2023-04-07 | 网易(杭州)网络有限公司 | 一种游戏中的玩家匹配方法及装置 |
CN112559485A (zh) * | 2019-09-26 | 2021-03-26 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN108462756B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807794B (zh) | 一种数据存储方法和装置 | |
CN108462756A (zh) | 一种数据写入方法和装置 | |
JP6190389B2 (ja) | 分散型計算環境において計算を実行する方法およびシステム | |
JP6185486B2 (ja) | 分散型計算環境において負荷均衡化を実行する方法 | |
CN106528327B (zh) | 一种数据处理方法以及备份服务器 | |
EP2414928B1 (en) | Data redistribution in data replication systems | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN105335448B (zh) | 基于分布式环境的数据存储及处理系统 | |
US11070979B2 (en) | Constructing a scalable storage device, and scaled storage device | |
WO2017161979A1 (zh) | 一种基于云平台管理服务器的方法及装置 | |
CN105530306A (zh) | 支持数据应用服务的超融合存储系统 | |
EP3739440A1 (en) | Distributed storage system, data processing method and storage node | |
CN111176888B (zh) | 云存储的容灾方法、装置及系统 | |
CN108319618B (zh) | 一种分布式存储系统的数据分布控制方法、系统及装置 | |
CN106648909A (zh) | 一种磁盘锁的管理方法、装置和系统 | |
US20150254143A1 (en) | Computer system, cluster management method, and management computer | |
CN110049091A (zh) | 数据存储方法及装置、电子设备、存储介质 | |
US7849264B2 (en) | Storage area management method for a storage system | |
US11405455B2 (en) | Elastic scaling in a storage network environment | |
CN107948229B (zh) | 分布式存储的方法、装置及系统 | |
WO2019174608A1 (zh) | 一种数据处理方法及其相关设备 | |
CN107491270B (zh) | 一种多控存储系统的资源访问方法及装置 | |
US20230185631A1 (en) | Embedded capacity-computer module for microservice load balancing and distribution | |
CN111400110B (zh) | 数据库访问管理系统 | |
CN114879907A (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 |