本发明涉及数据存储领域,特别涉及一种数据处理方法及装置。
背景技术:
分布式系统是指将计算资源和存储资源分散到不同的节点上,通过网络将各节点联系起来的系统。分布式系统可以通过管理和控制多个节点来完成一项任务,但对外表现为一台独立完整的系统,用户感知不到分布式系统任务在内部的执行细节。
图1为分布式系统的示意图,其中,客户端(Client)用来接收用户需求(如写请求和读请求),计算节点(英文:Distributed Object Process;简称:DOP)负责分发路由,而存储节点(英文:Key-Value Store;简称:KVS)负责单盘管理和实际存储,另外,系统中还包括管理节点(英文:Distributed Object Management;简称:DOM),负责对多个DOP和KVS进行管理。
分布式系统采用多副本策略保存数据,即将同一数据保存在多个KVS上,以避免KVS故障引起的数据丢失。同时,系统还要保障同一数据的多个副本的一致性,即用多个KVS存储同一数据时,要保证多个KVS上存储的数据一致。
NRW机制是一种兼顾多副本一致性与数据读写效率的策略,其中,N表示数据所具有的副本数,R表示完成读操作所需要读取的最小副本数,W表示完成写操作所需要写入的最小副本数,即一次写操作所需要参与的最小节点数目。例如,在NRW322机制中,系统中数据有3个不同的副本,当进行写操作时,需要等待至少有2个副本完成了该写操作系统才会返回执行成功的状态,而在进行读操作时,则需要读取至少两个副本,在该两个副本数据一致时确定 读操作成功。
另外,分布式系统还采用主副本锁定来解决写操作时的并发冲突,即,从存储数据的多个存储节点中选择一个存储节点作为主存储节点,其余存储节点称为备用存储节点。在写入数据时,计算节点需要先竞争主存储节点的写锁权限,在获得写锁权限后向主存储节点写入数据,写入成功后再向备用节点写入数据,在有设定数量的备用节点返回写成功时,计算节点向客户端返回写成功消息,余下的备用节点采用异步机制继续进行写数据操作。
参照图2,以NRW322机制为例,主存储节点向存储节点中写数据的过程包括如下步骤:步骤101,客户端向计算节点发送写请求;步骤102,计算节点获得主存储节点的写锁权限,并向主存储节点写入数据;步骤103,主存储节点向计算节点返回写入成功消息;步骤104,计算节点向备用节点写入数据;步骤105,任一备用节点(不妨设为备用节点2)向计算节点返回写入成功消息;步骤106,计算节点向客户端返回写入成功消息。
实际情况中,使用者可能期望部分备用节点上成功保存有数据,例如,数据读取速率高的节点上保存有数据,以便快速读取,或者,存储稳定性高的节点上保存有数据,以避免数据丢失,又或者,位于使用者办公室的节点上保存有数据。但是,上述技术方案中,计算节点在收到设定数量的备用节点返回的写成功消息时向客户端返回写成功消息,而不管具体是由哪些备用节点返回写成功消息,因此,可能在使用者期望的备用节点尚未写入数据时,计算节点即向客户端返回写成功消息,而之后使用者期望的备用节点却由于故障未能成功写入数据,导致数据没有保存在使用者期望的节点上。
技术实现要素:
本发明实施例提供一种数据处理方法及装置,用于解决现有技术中数据写入方式不能保证使用者期望的节点上成功写入数据的问题。
第一方面,本发明实施例提供一种数据处理方法,包括:
计算节点接收客户端发送的写请求,所述写请求包含所请求写入的数据;
所述计算节点确定用于存储所请求写入的数据的主存储节点以及M个备用节点,其中,所述M个备用节点包括N个预先指定的备用节点,M为大于1的正整数,N为小于M的正整数;
所述计算节点向所述主存储节点中写入所请求写入的数据;
所述计算节点接收所述主存储节点返回的写入成功消息;
所述计算节点向所述M个备用节点分别写入所请求写入的数据;
所述计算节点确定接收到所述N个预先指定的备用节点中每一个节点分别返回的写入成功消息;
所述计算节点向所述客户端返回写成功消息。
结合第一方面,在第一方面的第一种可能的实现方式中,所述N个预先指定的备用节点为所述M个备用节点中存储性能参数满足预设要求的节点。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述计算节点向所述客户端返回写成功消息之后,还包括:
所述计算节点接收所述客户端发送的读请求,所述读请求包含所请求读数据的标识;
所述计算节点确定存储所述标识对应的所请求读数据的所述N个预先指定的备用节点;并
读取所述N个预先指定的备用节点中任一节点中存储的与所述标识对应的所请求读数据,并将读取的所述数据返回给所述客户端。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述计算节点将读取的所述数据返回给所述客户端之前,还包括:
所述计算节点确定所述N个预先指定的备用节点中存储的与所述标识对应的所请求读数据均相同。
结合第一方面的第二种可能的实现方式或第一方面的第三种可能的实现 方式,在第一方面的第四种可能的实现方式中,所述计算节点存储有映射表,所述映射表保存有数据标识与数据存储位置的对应关系,所述数据存储位置包括存储数据的所述N个预先指定的备用节点;
所述计算节点确定存储所述标识对应的所请求读数据的所述N个预先指定的备用节点,包括:
所述计算节点根据所述标识以及所述映射表,确定存储所述标识对应的所请求读数据的所述N个预先指定的备用节点。
第二方面,本发明实施例提供一种数据处理装置,包括:
接收模块,用于接收客户端发送的写请求,所述写请求包含所请求写入的数据;
确定模块,用于确定用于存储所请求写入的数据的主存储节点以及M个备用节点,其中,所述M个备用节点包括N个预先指定的备用节点,M为大于1的正整数,N为小于M的正整数;
写入模块,用于向所述主存储节点中写入所请求写入的数据;
所述接收模块还用于:接收到所述主存储节点返回的写入成功消息;
所述写入模块还用于:在所述接收模块接收到所述主存储节点返回的写入成功消息后,向所述M个备用节点分别写入所请求写入的数据;
所述确定模块还用于:确定接收到所述N个预先指定的备用节点中每一个节点分别返回的写入成功消息;
所述装置还包括:发送模块,用于在所述确定模块确定接收到所述N个预先指定的备用节点中每一个节点分别返回的写入成功消息后,向所述客户端返回写成功消息。
结合第二方面,在第二方面的第一种可能的实现方式中,所述确定模块用于:确定所述M个备用节点中存储性能参数满足预设要求的N个节点为所述预先指定的备用节点。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种 可能的实现方式中,所述接收模块还用于:接收所述客户端发送的读请求,所述读请求包含所请求读数据的标识;
所述确定模块还用于:确定存储所述标识对应的所请求读数据的所述N个预先指定的备用节点;
所述装置还包括:读取模块,用于读取所述N个预先指定的备用节点中任一节点中存储的与所述标识对应的所请求读数据;
所述发送模块还用于:将读取的所述数据返回给所述客户端。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定模块还用于:确定所述N个预先指定的备用节点中存储的与所述标识对应的所请求读数据均相同;
所述发送模块用于:在所述确定模块确定所述N个预先指定的备用节点中存储的与所述标识对应的所请求读数据均相同之后,将读取的所述数据返回给所述客户端。
结合第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置存储有映射表,所述映射表保存有数据标识与数据存储位置的对应关系,所述数据存储位置包括存储数据的所述N个预先指定的备用节点;所述确定模块用于:根据所述标识以及所述映射表,确定存储所述标识对应的所请求读数据的所述N个预先指定的备用节点。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,计算节点在根据写请求向存储节点中写入数据时,在向主存储节点中写入数据成功后,只有在N个预先指定的备用节点中全部写入数据成功后才向客户端返回写成功消息,其中,N个预先指定的备用节点可以为使用者期望的备用节点(例如存储性能较好的节点)。因此,上述技术方案能够保证在用户期望的备用节点上成功写入数据,满足使用者的需求,提高数据 读取的稳定性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为分布式系统的示意图;
图2为背景技术中写数据的流程示意图;
图3为本发明实施例中数据处理方法的流程示意图;
图4为本发明实施例中数据处理方法的另一流程示意图;
图5为本发明实施例中数据处理方法的又一流程示意图;
图6为本发明实施例中写数据的示意图;
图7为本发明实施例中读数据的示意图;
图8为本发明实施例中数据处理装置的结构示意框图;
图9为本发明实施例中数据处理设备的结构示意框图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
图3为本发明实施例提供的数据处理方法的流程示意图,该流程包括如下步骤:
步骤101:计算节点接收客户端发送的写请求,写请求包含所请求写入的数据;
步骤102:计算节点确定用于存储所请求写入的数据的主存储节点以及M个备用节点,其中,M个备用节点包括N个预先指定的备用节点,M为大于1的正整数,N为小于M的正整数;
步骤103:计算节点向主存储节点中写入所请求写入的数据;
步骤104:计算节点接收主存储节点返回的写入成功消息;
步骤105:计算节点向M个备用节点分别写入所请求写入的数据;
步骤106:计算节点确定接收到N个预先指定的备用节点中每一个节点分别返回的写入成功消息;
步骤107:计算节点向客户端返回写成功消息。
具体的,步骤101中,客户端根据用户写入数据的请求请求生成写请求,并将写请求发送给计算节点,而计算节点接收该写请求,并可从写请求中获得所请求写入的数据。实际情况中,客户端可以将该写请求发送给任一计算节点,也可以根据预设规则确定发送写请求的目标计算节点,例如,将写请求发送给当前的空闲的计算能力最大的计算节点,或者,发送给与自己延时最短的计算节点,等等,在此不再详述。
步骤102中,计算节点确定写入数据的目标存储节点,目标存储节点亦即用于存储所请求写入的数据的主存储节点以及M个备用节点。具体确定方式包括:
方式1,在所请求写入的数据为数据存储系统之前未存储的新数据时,计算节点从存储节点中为该数据分配主存储节点以及M个备用节点;或者,计算节点向管理节点发送存储节点分配请求,由管理节点进行存储节点的分配,确定上述主存储节点以及M个备用节点。其中,存储节点的分配方式请参照现有技术中相关技术手段,在此不再详述。
方式2,在所请求写入的数据为之前存储在数据存储系统中的已存储数据时,客户端发送的写请求中还包含有所请求写入数据的标识,计算节点上维护有数据映射表,该表中存储有数据标识与数据存储位置的对应关系,计算节点 在该映射表中查询写请求中包含的所请求写入数据的标识,即可确定存储所请求写入数据的主存储节点以及M个备用节点。
本发明实施例中,无论采用上述方式1还是方式2,M个备用节点中均包含N个预先指定的备用节点,其中N小于M,该N个预先指定的节点可以是在为所请求写入数据首次进行备用节点分配时进行指定的,N个预先指定的节点可以根据使用者所关注的特性(如,存储节点的读取速率、存储节点的稳定性、存储节点的寿命、存储节点的响应速率、存储节点的负担,等等)进行确定,即,从M个备用节点中选择在使用者所关注特性方面符合要求(或排名靠前)的N个节点作为预先指定的备用节点。
然后,执行步骤103,计算节点向确定出的主存储节点中写入所请求写入的数据,写入成功后,主存储节点将向计算节点返回写入成功消息,计算节点执行步骤104,接收主存储节点返回的该写入成功消息,确定成功在主存储节点中写入数据。
然后,计算节点执行步骤105,向M个备用节点分别写入所请求写入的数据。M个备用节点中任一节点在写入数据成功,将向计算节点返回写入成功消息。
然后,计算节点将接收到来自备用节点返回的写入成功消息后,并判断该写入成功消息是否由预先指定的备用节点所返回的。只有在确定接收到N个预先指定的备用节点中每一个节点分别返回的写入成功消息后,计算节点才确定写数据成功,向客户端返回写成功消息。
换言之,只要接收到N个预先指定的备用节点返回的写入成功消息,而不管其余节点是否已经写成功,计算节点就会向客户端返回写成功消息。又或者,即使M个备用节点中已经有设定数量(N)个备用节点返回的写入成功消息,只要有一个预先指定的备用节点尚未返回写入成功消息,计算节点也不会向客户端返回写成功消息,而是等待预先指定的备用节点全部返回写入成功消息后,才向客户端返回写成功消息。
上述技术方案中,计算节点在根据写请求向存储节点中写入数据时,在向主存储节点中写入数据成功后,只有在N个预先指定的备用节点中全部写入数据成功后才向客户端返回写成功消息,其中,N个预先指定的备用节点可以为使用者期望的备用节点。因此,上述技术方案能够保证用户期望的备用节点上成功写入数据,满足使用者的需求。
可选的,本发明实施例中,N个预先指定的备用节点为M个备用节点中存储性能参数满足预设要求的节点。其中,存储性能参数可以包括:读取写入速率、工作稳定性、使用寿命、运算能力、存储空间等参数。预设要求可以根据数据存储系统的应用环境以及使用者的具体需求进行设定。
通过预先根据存储性能参数从M个备用节点中确定N个存储性能参数满足预设要求的节点作为预先指定的节点,以使在写数据时N个预先指定的节点返回写成功即向客户端返回写成功消息,在保证数据写入效率的情况下,保证了数据存储的稳定性,以及后续对数据进行读取的速率,
可选的,本发明实施例中,步骤105之后、步骤106之前,还可以包括如下步骤:如果计算节点在向M个备用节点写入请求写入数据之后的设定时长内没有接收到所有预先指定的节点返回的写入成功消息,则计算节点向没有返回写入成功消息的预先指定的节点再次写入请求写入的数据。
上述技术方案中,能够在预先指定的备用节点未能及时返回写入成功消息时,主动向其再次写入数据,避免写数据耗时过长。
可选的,本发明实施例中,在步骤103之前,还包括步骤:计算节点获得主存储节点的写锁权限。通过主存储节点的写锁控制,避免多计算节点针对同一数据的并发操作冲突。
可选的,本发明实施例中,客户端发送的写请求还包括所请求写入数据的标识以及版本号,在步骤103之前,还包括步骤:计算节点确定写请求包含的版本号大于当前存储的所请求写入数据对应的版本号。通过版本控制,避免有效数据被覆盖。
进一步,本申请发明人发现,现有技术中在读数据时,为了保障数据的一致性,需要读取主存储节点上的数据以及设定数量的备用节点的数据,在验证数据一致性后,才能向客户端返回请求读取的数据。
沿用NRW322的例子来讲,计算节点需要向主存储节点以及一个备用节点发送读数据请求,然后接收二者返回的数据,并判断两个数据是否一致,在一致时,向客户端返回读取的数据。
上述现有技术中,既需要读取主存储节点,又需要读取设定数量(例如,在写数据时,接收到N个预先指定的备用节点返回的写入成功消息即向客户端返回写成功消息,则读数据时需要读取N个预先指定的备用节点存储的所请求读数据)的备用节点存储的所请求读数据,数据读取量较大,带宽占用较大,耗时也较长。
针对上述问题,参照图4,本发明实施例提供的数据处理方法还包括如下步骤:
步骤108:计算节点接收客户端发送的读请求,读请求包含所请求读数据的标识;
步骤109:计算节点确定存储读请求中包括的标识对应的所请求读数据的N个预先指定的备用节点;
步骤110:计算节点读取N个预先指定的备用节点中任一节点中存储的与该标识对应的所请求读数据;
步骤111:计算节点将读取的数据返回给客户端。
具体的,步骤108中,客户端根据用户请求生成读请求,并将读请求发送给计算节点,该读请求中包含所请求读数据的标识。其中,所请求读数据之前的写入过程与当前的读取过程可以由不同的计算节点负责,也可以为同一计算节点负责,本发明实施例不予限定。
步骤109中,计算节点确定存储读请求中包括的标识对应的预先指定的备用节点的方式包括:
其一,计算节点向管理节点发送请求,请求中包括该标识,请求管理节点根据其维护的数据管理信息确定该标识对应的数据的预先指定的备用节点,计算节点接收管理节点返回的信息,从中确定所请求读数据的N个预先指定的备用节点。
其二,计算节点自身存储有映射表,该映射表保存有数据标识与数据存储位置的对应关系,数据存储位置包括存储数据的N个预先指定的备用节点。计算节点根据标识以及映射表,即可确定存储标识对应的所请求读数据的N个预先指定的备用节点。
步骤110中,计算节点从N个预先指定的备用节点中任一节点读取与该标识对应的数据,将该数据返回给客户端。
与现有技术相比,上述技术方案中,计算节点无需既读取主存储节点上的数据又读取设定备用节点上的数据,而是直接读取任一预先指定的备用节点上存储的所请求读数据即可。这样处理可行的原因在于,在之前的写数据过程中,在N个预先指定的备用节点写成功时才向客户端返回写成功消息,所以,预先指定的备用节点上存储的所请求数据为最新写入的数据,向客户端返回该数据即可保证读取数据的正确性。
通过上述技术方案,可以减少读取数据时的数据传输量,减小数据占用带宽,以及减少读数据耗时,提高数据读取效率。
可选的,作为另一实施例,在步骤111之前,参照图5,还包括如下步骤:
步骤112:计算节点确定N个预先指定的备用节点中存储的与标识对应的所请求读数据均相同。
具体的,计算节点向N个预先指定的备用节点发送读取该标识对应数据的请求,接收N个节点返回的数据返,并判断N个节点返回的数据是否一致,在一致时执行步骤111,向客户端返回读取的数据。如果N个节点返回的数据不一致,则向客户端报错,采用预设的错误机制进行处理,本发明实施例在此不予详述。
通过比较N个预先指定的备用节点的数据的一致性,能够更好地保障数据的一致性,同时,与现有技术相比,计算节点仍然可以少读取主存储节点的数据,减少数据的读取量,提高读数据的效率。
需要说明的是,本发明实施例中的主存储节点以及预先指定的备用节点、备用节点等是针对具体数据而言的,针对不同的数据,其对应的主存储节点以及预先制定的备用节点均可以不同。
下面以采用本发明实施例技术方案对NRW322技术的改进方案为例,对发明予以详述。
具体的,存储系统通过主存储节点、预先指定的备用节点1、备用节点2存储数据A。图6为写入数据A的过程的示意图,包括如下步骤:
步骤201,客户端向计算节点发送写入数据A的请求;
步骤202,计算节点向向主存储节点写入数据A;
步骤203,主存储节点向计算节点返回写入成功消息;
步骤204,计算节点向备用节点写入数据A;
步骤205,备用节点2向计算节点返回的写入成功消息;
步骤206,计算节点确定接收的写入成功消息不是来自预先制定的备用节点1;
步骤207,备用节点1向计算节点返回的写入成功消息;
步骤208,计算节点确定接收的写入成功消息来自预先制定的备用节点1,执行步骤209;
步骤209,计算节点向客户端返回写入成功消息。
对应的,图7为读数据A的过程的示意图,包括如下步骤:
步骤210,客户端向计算节点发送读数据A的请求;
步骤211,计算节点向预先指定的备用节点1发送读数据A的请求;
步骤212,备用节点1向计算节点返回数据A;
步骤213,计算节点向客户端返回数据A。
通过上述方式进行写数据时,能够保证用户指定的存储节点中写入数据成功,而通过上述方式读数据时,能够提高读数据效率,减少带宽占用。
基于相同的技术构思,本发明实施例还提供了一种数据处理装置300,参见图8,为数据处理装置300的结构示意框图,包括:
接收模块301,用于接收客户端发送的写请求,写请求包含所请求写入的数据;
确定模块302,用于确定用于存储所请求写入的数据的主存储节点以及M个备用节点,其中,M个备用节点包括N个预先指定的备用节点,M为大于1的正整数,N为小于M的正整数;
写入模块303,用于向主存储节点中写入所请求写入的数据;
接收模块301还用于:接收到主存储节点返回的写入成功消息;
写入模块303还用于:在接收模块接收到主存储节点返回的写入成功消息后,向M个备用节点分别写入所请求写入的数据;
确定模块302还用于:确定接收到N个预先指定的备用节点中每一个节点分别返回的写入成功消息;
装置300还包括:发送模块304,用于在确定模块确定接收到N个预先指定的备用节点中每一个节点分别返回的写入成功消息后,向客户端返回写成功消息。
可选的,本发明实施例中,确定模块302用于:确定M个备用节点中存储性能参数满足预设要求的N个节点为预先指定的备用节点。
可选的,本发明实施例中,接收模块301还用于:接收客户端发送的读请求,读请求包含所请求读数据的标识;
确定模块302还用于:确定存储标识对应的所请求读数据的N个预先指定的备用节点;
装置300还包括:读取模块305,用于读取N个预先指定的备用节点中任一节点中存储的与标识对应的所请求读数据;
发送模块304还用于:将读取的数据返回给客户端。
可选的,确定模块302还用于:确定N个预先指定的备用节点中存储的与标识对应的所请求读数据均相同;
发送模块304用于:在确定模块确定N个预先指定的备用节点中存储的与标识对应的所请求读数据均相同之后,将读取的数据返回给客户端。
可选的,本发明实施例中,装置300存储有映射表,映射表保存有数据标识与数据存储位置的对应关系,数据存储位置包括存储数据的N个预先指定的备用节点;确定模块302用于:根据标识以及映射表,确定存储标识对应的所请求读数据的N个预先指定的备用节点。
本实施例中的数据处理装置300与前述数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的数据处理装置300的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
基于相同的发明构思,本发明实施例还提供数据处理设备400,图9为数据处理设备400的结构示意框图,包括:总线401,以及分别连接到总线401的处理单元402、存储单元403、收发机404。
其中,收发机404用于与客户端进行信息传输,以及用于与存储节点进行信息传输。
存储单元403用于存储指令。
处理单元402用于执行存储单元403存储的指令,以便在执行所述指令时,执行如下操作:在收发机404接收客户端发送的写请求后,确定用于存储所请求写入的数据的主存储节点以及M个备用节点,其中,写请求包含所请求写入的数据,M个备用节点包括N个预先指定的备用节点,M为大于1的正整数,N为小于M的正整数;通过收发机404向主存储节点中写入所请求写入的数据;通过收发机404接收主存储节点返回的写入成功消息;通过收发机404向M个备用节点分别写入所请求写入的数据;确定接收到N个预先指定的备 用节点中每一个节点分别返回的写入成功消息;通过收发机404向客户端返回写成功消息。
可选的,本实施例中,N个预先指定的备用节点为M个备用节点中存储性能参数满足预设要求的节点。
可选的,本实施例中,处理单元402还用于:在在收发机404接收客户端发送的读请求后,确定存储标识对应的所请求读数据的N个预先指定的备用节点,其中,该读请求包含所请求读数据的标识;通过收发机404读取N个预先指定的备用节点中任一节点中存储的与标识对应的所请求读数据,并通过收发机404将读取的数据返回给客户端。
可选的,本实施例中,处理单元402在用于:通过收发机404将读取的数据返回给客户端之前,还用于:确定N个预先指定的备用节点中存储的与标识对应的所请求读数据均相同。
可选的,本实施例中,数据处理设备400存储有映射表,映射表保存有数据标识与数据存储位置的对应关系,数据存储位置包括存储数据的N个预先指定的备用节点。处理单元402用于:确定存储标识对应的所请求读数据的N个预先指定的备用节点,包括:根据标识以及映射表,确定存储标识对应的所请求读数据的N个预先指定的备用节点。
本实施例中的数据处理设备400与前述数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的数据处理设备400的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
需要说明的是,总线401可以是工业标准体系结构(英文:Industry Standard Architecture;简称:ISA)总线、外部设备互连(英文:Peripheral Component;简称:PCI)总线或扩展工业标准体系结构(英文:Extended Industry Standard Architecture;简称:EISA)总线等。总线401具体可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根 总线或一种类型的总线。
处理单元402可以是一个处理器,也可以是多个处理元件的统称。例如,处理单元402可以是中央处理器(英文:Central Processing Unit;简称:CPU),也可以是特定集成电路(英文:Application Specific Intergrated Circuit;简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文:digital singnal processor;简称:DSP),或,一个或者多个现场可编程门阵列(英文:Field Programmable Gate Array;简称:FPGA)。
存储单元403可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码、接入网设备或终端运行所需要参数、数据等。且存储器可以包括随机存储器(英文:Random Access Memory;简称:RAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,计算节点在根据写请求向存储节点中写入数据时,在向主存储节点中写入数据成功后,只有在N个预先指定的备用节点中全部写入数据成功后才向客户端返回写成功消息,其中,N个预先指定的备用节点可以为使用者期望的备用节点。因此,上述技术方案能够保证用户期望的备用节点上成功写入数据,满足使用者的需求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。