CN107045426A - 一种多副本读取方法和系统 - Google Patents
一种多副本读取方法和系统 Download PDFInfo
- Publication number
- CN107045426A CN107045426A CN201710244565.8A CN201710244565A CN107045426A CN 107045426 A CN107045426 A CN 107045426A CN 201710244565 A CN201710244565 A CN 201710244565A CN 107045426 A CN107045426 A CN 107045426A
- Authority
- CN
- China
- Prior art keywords
- node
- read
- write
- memory node
- standby memory
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多副本读写方法和系统,属于计算机网络技术和计算机数据存储技术领域。其中,该方法包括:代理节点接收读取/写入请求并将该请求发送至N个备存储节点。计算备存储节点读取/写入成功或失败的数量。当备存储节点的个数N为偶数时,当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,当有(N‑1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息。本发明通过减少读取/写入副本的数量,实现了减少对网络宽带和磁盘IO等开销。
Description
技术领域
本发明涉及计算机网络技术和计算机数据存储技术领域,特别涉及一种多副本读写方法和系统。
背景技术
现有技术方案数据写入的步骤为:代理节点接收到客户端的写请求后,向主存储节点发送写请求。如果主存储节点写入成功,则代理节点向其它备存储节点发送写请求;如果写入失败,则代理节点再重试。代理节点向所有备存储节点分发写请求,然后一直等待备存储节点返回结果,直到有任意半数(N/2,N为总副本数)的备存储节点返回写操作成功则向客户端返回写操作成功,或者直到有半数以上的存储节点返回失败或者超时则向客户端返回写操作失败。
现有技术方案数据读取的步骤为:代理节点接收到客户端的读请求后,代理节点随机挑选半数以上存储节点发送读请求。如果代理节点读取的所有副本版本一致,则代理节点向客户端返回这个一致版本的数据,否则代理节点继续向剩余存储节点发送读请求,直到获得半数以上一致的版本则向客户端返回成功。如果不存在半数以上的一致性版本或者读取超时,则向客户端返回读取失败。
在实现本发明的过程中,发明人发现至少存在如下问题:
1.由于代理节点需要读取至少半数以上的副本,才能决策出返回哪个一致性版本。因此,代理节点在读取过程中的效率较低的;
2.由于代理节点需要读取的副本数量大,所以,增加了对网络宽带和磁盘IO的成本。
发明内容
本发明的目的是通过多副本读写方法和相应的系统,提高代理节点在读取过程中的效率,且降低网络宽带和磁盘IO的成本。
为实现上述目的,本发明实施例的一个方面提供了一种多副本读写方法,该方法包括:代理节点接收读取/写入请求并将该请求发送至N个备存储节点。计算备存储节点读取/写入成功或失败的数量。当备存储节点的个数N为偶数时,当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,当有(N-1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息。
进一步地,在代理节点接收写入请求并将该请求发送至N个备存储节点之前还包括:代理节点接收写入请求并将该请求发送至主存储节点。代理节点在接收到主存储节点写入成功的信息后向N个备存储节点分发写入请求。
进一步地,在计算备存储节点读取/写入成功或失败的数量之前,还包括:当备存储节点的个数N为偶数时,指定N/2个备存储节点为读取/写入备存储节点。当备存储节点的个数N为奇数时,指定(N-1)/2个备存储节点为读取/写入备存储节点。计算指定备存储节点读取/写入成功或失败的数量:当备存储节点的个数N为偶数,且指定的N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数,且指定的(N-1)/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。
进一步地,在代理节点返回读取信息前还包括:计算备存储节点的副本版本相同或不相同的数量。当备存储节点的个数N为偶数时,当代理节点读取到有N/2或指定的N/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本。当备存储节点的个数N为奇数时,当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本。当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本不相同时,则代理节点返回最低版本的副本版本。
进一步地,代理节点接收写入请求并将该请求发送至主存储节点还包括:当主存储节点写入操作失败,则代理节点在预定时间内继续向主存储节点发送写入请求。
进一步地,当代理节点接收到的读取操作均为失败时,则返回该读取操作失败信息。
本发明实施例的另一个方面提供了与上述方法相对应的系统,该系统包括:接收模块,用于接收读取/写入请求并将该请求发送至N个备存储节点。计算模块,用于计算备存储节点读取/写入成功或失败的数量。返回模块,当备存储节点的个数N为偶数时,用于当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,返回模块还用于当有(N-1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息。
进一步地,在接收模块接收读取/写入请求并将该请求发送至N个备存储节点之前,还包括:发送模块,用于将代理节点接收的写入请求发送至主存储节点。分发模块,用于将在接收到主存储节点写入成功的信息后向N个备存储节点分发写入请求。
进一步地,在计算模块计算备存储节点读取/写入成功或失败的数量前还包括:指定模块,用于当备存储节点的个数N为偶数时,指定N/2个备存储节点为读取/写入备存储节点。指定模块还用于当备存储节点的个数N为奇数时,指定(N-1)/2个备存储节点为读取/写入备存储节点。计算模块,用于当备存储节点的个数N为偶数时,当指定的N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。计算模块还用于当备存储节点的个数N为奇数时,当指定的(N-1)/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。
进一步地,在返回模块返回读取信息前还包括:计算模块还用于计算备存储节点的副本版本相同或不相同的数量。当备存储节点的个数N为偶数时,返回模块还用于,当代理节点读取到有N/2或指定的N/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本。当备存储节点的个数N为奇数时,返回模块还用于,当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本,当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本不相同时,则代理节点返回最低版本的副本版本。
进一步地,发送模块还用于:当主存储节点写操作失败,则发送模块在预定时间内继续向主存储节点发送写请求。
进一步地,返回模块还用于:当代理节点接收到的读操作均为失败时,则返回该读操作失败信息。
本发明实施例的有益效果在于,因为采用了当备存储节点的个数N为偶数时,当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,当有(N-1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息的技术手段,所以克服了现有技术中读取至少半数以上副本数的技术问题,进而达到读取副本数量少,提高去取效率,减少网络宽带和磁盘IO成本的技术效果。
附图说明
图1是本发明第一实施例提供的第一种方式的多副本读写方法的流程图;
图2是本发明第一实施例提供的第二种方式的多副本读写方法的流程图;
图3是本发明第二实施例提供的一种多副本读写系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在现有技术中,对数据的写入时,只有当半数的备存储节点返回写操作成功后才向客户端返回写操作成功的信息。例如,当有三个副本,分别存在三个备存储节点上。在写入时,必须有半数,即两个备存储节点写入成功时,才向客户端返回写入成功的信息。同理,在数据的读取时,也需当读取半数,即两个备存储节点读取成功时,才向客户端返回读取成功的信息。而通过本发明实施例提供的实施例,只需要读取/写入一个或者读取/写入指定的一个备存储节点,就能向客户端返回读取/写入成功的信息。
相对于现有技术中的技术方案,本发明节约了对网络宽带和磁盘IO的成本。
请参阅图1,图1是本发明第一实施例提供的第一种方式的多副本读写方法的流程图。
如图1所示,本发明实施例提供了一种多副本读写方法,该方法包括:代理节点接收读取/写入请求并将该请求发送至N个备存储节点。计算备存储节点读取/写入成功或失败的数量。当备存储节点的个数N为偶数时,当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,当有(N-1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息。
在本实施例中,当备存储节点的个数N为奇数时,计算备存储节点读取/写入成功或失败的数量的公式为:(N-1)/2。相对于现有技术,减少了备存储节点读取/写入成功或失败的个数,降低了由于读取/写入时对网络宽带和磁盘IO的成本。例如,当N等于五时,在写入时,现有技术中需要写入的数量为三个,当备存储节点的个数为五个时,现有技术需要读取三个副本。在读取时,当上述三个副本版本不一致时,则继续读取一个副本,即,现有技术中需要读取四个副本,然后返回相应的信息。
具体地,在代理节点接收写入请求并将该请求发送至N个备存储节点之前还包括:代理节点接收写入请求并将该请求发送至主存储节点。代理节点在接收到主存储节点写入成功的信息后向N个备存储节点分发写入请求。
请参阅图2,图2是本发明第一实施例提供的第二种方式的多副本读写方法的流程图。
如图2所示,在第一种方式的基础上进行完善形成了第二种方式。在第二种方式中,在计算备存储节点读取/写入成功或失败的数量之前,还包括:当备存储节点的个数N为偶数时,指定N/2个备存储节点为读取/写入备存储节点。当备存储节点的个数N为奇数时,指定(N-1)/2个备存储节点为读取/写入备存储节点。计算指定备存储节点读取/写入成功或失败的数量:当备存储节点的个数N为偶数,且指定的N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数,且指定的(N-1)/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。
在本实施例中,对上一实施例进行了改进,在计算备存储节点读取/写入成功或失败的数量之前,增加了“指定”备存储节点的步骤。例如,有五个备存储节点,现需要对其中的两个进行读取/写入操作。在上一实施例中,是对五个中的任一两个备存储节点进行读取/写入操作,但在本实施例中,先对五个备存储节点中的两个进行指定,可以指定第一个和第四个备存储节点,也可以指定其它,需要说明的是,此处的指定只是针对数量进行规范,但并不规定具体的备存储节点本身。下面以指定的备存储节点为第一个和第四个做详细阐述。当第一个和第四个备存储节点读取/写入成功时,则说明整个读取/写入操作成功,此时,代理节点返回读取/写入操作成功信息。上述的举例为当N为奇数时的情况,同理,当N为偶数时,例如,当N等于六,即有六个备存储节点时。指定其中的第一、第二、第三被存储节点,当此三个备存储节点读取/写入成功时,则说明整个读取/写入操作成功,此时,代理节点返回读取/写入操作成功信息。
在现有技术中,是对任意半数的备存储节点进行读取/写入,例如,有三个备存储节点,先读取第一个和第二个备存储节点,在读取/写入失败后,继续读取第一个和第三个被存储节点,若还是失败,则继续读取/写入,若成功,则向客户端返回成功信息。而在本申请中,由于已经指定了第二个备存储节点,只需读取/写入第二个备存储节点即可向客户端返回相应的信息。上述实施例仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。
更具体地,在代理节点返回读取信息前还包括:计算备存储节点的副本版本相同或不相同的数量。当备存储节点的个数N为偶数时,当代理节点读取到有N/2或指定的N/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本。当备存储节点的个数N为奇数时,当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本。当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本不相同时,则代理节点返回最低版本的副本版本。
在本实施例中,通过计算备存储节点的副本版本相同或不相同的数量,并当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本不相同时,则代理节点返回最低版本的副本版本。而在现有技术中,当等于五时,需要读取三个副本,如果两个备副本版本不一致,还需要再读出一个备副本(一共四个),然后返回副本版本相同的数量较多的副本版本。而本申请中,一共只用读取2个备副本(不用读主副本),如果不一致,则返回低版本的数据,并不用再读多余的版本,这时比现有技术少读取2个副本。当为读取半数的副本一致时,则返回读取操作失败的信息至客户端。
更具体地,代理节点接收写入请求并将该请求发送至主存储节点还包括:当主存储节点写入操作失败,则代理节点在预定时间内继续向主存储节点发送写入请求。
更具体地,当代理节点接收到的读取操作均为失败时,则返回该读取操作失败信息。
请参阅图3,图3是本发明第二实施例提供的一种多副本读写系统的结构示意图。
如图3所示,本发明实施例提供了与上述方法对应的一种多副本读写系统,该系统包括:接收模块,用于接收读取/写入请求并将该请求发送至N个备存储节点。计算模块,用于计算备存储节点读取/写入成功或失败的数量。返回模块,当备存储节点的个数N为偶数时,用于当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,返回模块还用于当有(N-1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息。
更具体地,在接收模块接收读取/写入请求并将该请求发送至N个备存储节点之前,还包括:发送模块,用于将代理节点接收的写入请求发送至主存储节点。分发模块,用于将在接收到主存储节点写入成功的信息后向N个备存储节点分发写入请求。
更具体地,在计算模块计算备存储节点读取/写入成功或失败的数量前还包括:指定模块,用于当备存储节点的个数N为偶数时,指定N/2个备存储节点为读取/写入备存储节点。指定模块还用于当备存储节点的个数N为奇数时,指定(N-1)/2个备存储节点为读取/写入备存储节点。计算模块,用于当备存储节点的个数N为偶数时,当指定的N/2个所述备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。计算模块还用于当备存储节点的个数N为奇数时,当指定的(N-1)/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。
更具体地,在返回模块返回读取信息前还包括:计算模块还用于计算备存储节点的副本版本相同或不相同的数量。当备存储节点的个数N为偶数时,返回模块还用于,当代理节点读取到有N/2或指定的N/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本。当备存储节点的个数N为奇数时,返回模块还用于,当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本相同时,则代理节点返回该相同的副本版本,当代理节点读取到有(N-1)/2或指定的(N-1)/2个备存储节点的副本版本不相同时,则代理节点返回最低版本的副本版本。
更具体地,发送模块还用于:当主存储节点写操作失败,则发送模块在预定时间内继续向主存储节点发送写请求。
更具体地,返回模块还用于:当代理节点接收到的读操作均为失败时,则返回该读操作失败信息。
本发明实施例的有益效果在于,因为采用了当备存储节点的个数N为偶数时,当有N/2个备存储节点读取/写入成功时,则代理节点返回读取/写入操作成功信息。当备存储节点的个数N为奇数时,当有(N-1)/2个备存储节点读取/写入成功或失败时,则代理节点返回读取/写入操作成功或失败信息的技术手段,所以克服了现有技术中读取至少半数以上副本的数技术问题,进而达到读取副本数量少,提高去取效率,减少网络宽带和磁盘IO成本的技术效果。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1.一种多副本读写方法,其特征在于,包括:
代理节点接收读取/写入请求并将该请求发送至N个备存储节点;
计算所述备存储节点读取/写入成功或失败的数量:
当所述备存储节点的个数N为偶数时,当有N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
当所述备存储节点的个数N为奇数时,当有(N-1)/2个所述备存储节点读取/写入成功或失败时,则所述代理节点返回读取/写入操作成功或失败信息。
2.根据权利要求1所述的方法,其中,在所述代理节点接收写入请求并将该请求发送至N个备存储节点之前还包括:
所述代理节点接收写入请求并将该请求发送至主存储节点;
所述代理节点在接收到所述主存储节点写入成功的信息后向N个备存储节点分发写入请求。
3.根据权利要求2所述的方法,其中,在计算所述备存储节点读取/写入成功或失败的数量之前,还包括:
当所述备存储节点的个数N为偶数时,指定N/2个所述备存储节点为读取/写入备存储节点;
当所述备存储节点的个数N为奇数时,指定(N-1)/2个所述备存储节点为读取/写入备存储节点;
计算所述指定所述备存储节点读取/写入成功或失败的数量:
当所述备存储节点的个数N为偶数,且所述指定的N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
当所述备存储节点的个数N为奇数,且所述指定的(N-1)/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息。
4.根据权利要求3所述的方法,其中,在所述代理节点返回读取信息前还包括:
计算所述备存储节点的副本版本相同或不相同的数量:
当所述备存储节点的个数N为偶数时,当所述代理节点读取到有N/2或指定的N/2个所述备存储节点的副本版本相同时,则所述代理节点返回该相同的副本版本;
当所述备存储节点的个数N为奇数时,当所述代理节点读取到有(N-1)/2或指定的(N-1)/2个所述备存储节点的副本版本相同时,则所述代理节点返回该相同的副本版本;
当所述代理节点读取到有(N-1)/2或指定的(N-1)/2个所述备存储节点的副本版本不相同时,则所述代理节点返回最低版本的副本版本。
5.根据权利要求4所述的方法,其中,所述代理节点接收写入请求并将该请求发送至主存储节点还包括:
当所述主存储节点写入操作失败,则所述代理节点在预定时间内继续向所述主存储节点发送写入请求。
6.一种多副本读写系统,其特征在于,包括:
接收模块,用于接收读取/写入请求并将该请求发送至N个备存储节点;
计算模块,用于计算所述备存储节点读取/写入成功或失败的数量:
返回模块,当所述备存储节点的个数N为偶数时,用于当有N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
当所述备存储节点的个数N为奇数时,所述返回模块还用于当有(N-1)/2个所述备存储节点读取/写入成功或失败时,则所述代理节点返回读取/写入操作成功或失败信息。
7.根据权利要求6所述的系统,其中,在接收模块接收读取/写入请求并将该请求发送至N个备存储节点之前,还包括:
发送模块,用于将所述代理节点接收的写入请求发送至主存储节点;
分发模块,用于将在接收到所述主存储节点写入成功的信息后向N个备存储节点分发写入请求。
8.根据权利要求7所述的系统,其中,在计算模块计算所述备存储节点读取/写入成功或失败的数量前还包括:
指定模块,用于当所述备存储节点的个数N为偶数时,指定N/2个所述备存储节点为读取/写入备存储节点;
所述指定模块还用于当所述备存储节点的个数N为奇数时,指定(N-1)/2个所述备存储节点为读取/写入备存储节点;
所述计算模块,用于当所述备存储节点的个数N为偶数时,当所述指定的N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
所述计算模块还用于当所述备存储节点的个数N为奇数时,当所述指定的(N-1)/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息。
9.根据权利要求8所述的系统,其中,在所述返回模块返回读取信息前还包括:
所述计算模块还用于计算所述备存储节点的副本版本相同或不相同的数量:
当所述备存储节点的个数N为偶数时,所述返回模块还用于,当所述代理节点读取到有N/2或指定的N/2个所述备存储节点的副本版本相同时,则所述代理节点返回该相同的副本版本;
当所述备存储节点的个数N为奇数时,所述返回模块还用于,当所述代理节点读取到有(N-1)/2或指定的(N-1)/2个所述备存储节点的副本版本相同时,则所述代理节点返回该相同的副本版本,当所述代理节点读取到有(N-1)/2或指定的(N-1)/2个所述备存储节点的副本版本不相同时,则所述代理节点返回最低版本的副本版本。
10.根据权利要求7所述的系统,其中,所述发送模块还用于:
当所述主存储节点写操作失败,则所述发送模块在预定时间内继续向所述主存储节点发送写请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710244565.8A CN107045426B (zh) | 2017-04-14 | 2017-04-14 | 一种多副本读取方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710244565.8A CN107045426B (zh) | 2017-04-14 | 2017-04-14 | 一种多副本读取方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107045426A true CN107045426A (zh) | 2017-08-15 |
CN107045426B CN107045426B (zh) | 2020-12-15 |
Family
ID=59544974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710244565.8A Active CN107045426B (zh) | 2017-04-14 | 2017-04-14 | 一种多副本读取方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107045426B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947584A (zh) * | 2019-02-26 | 2019-06-28 | 启迪云计算有限公司 | 一种基于云计算分布式块存储的degrade读写方法 |
CN116048429A (zh) * | 2023-04-03 | 2023-05-02 | 创云融达信息技术(天津)股份有限公司 | 一种多副本读写方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411580A (zh) * | 2000-01-10 | 2003-04-16 | 连接公司 | 客户机-服务器环境中差异备份系统的管理 |
US7051173B2 (en) * | 2000-02-04 | 2006-05-23 | Fujitsu Limited | Backup system and method thereof in disk shared file system |
CN101128827A (zh) * | 2005-02-24 | 2008-02-20 | 塞朗德系统有限公司 | 用于交换网络中分布式数据管理的方法和装置 |
CN102567438A (zh) * | 2010-09-28 | 2012-07-11 | 迈塔斯威士网络有限公司 | 对分布式存储系统中的数据项进行访问的方法 |
CN103200273A (zh) * | 2013-04-19 | 2013-07-10 | 北京科技大学 | 基于物理位置的内容副本一致性维护方法 |
CN103294675A (zh) * | 2012-02-23 | 2013-09-11 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
CN103530362A (zh) * | 2013-10-12 | 2014-01-22 | 清华大学 | 一种用于多副本分布式系统的计算机数据读写方法 |
CN103607448A (zh) * | 2013-11-18 | 2014-02-26 | 四川川大智胜软件股份有限公司 | 一种atc系统动态数据存储的方法 |
CN103870570A (zh) * | 2014-03-14 | 2014-06-18 | 广州携智信息科技有限公司 | 一种基于远程日志备份的HBase数据可用性及持久性的方法 |
CN105426439A (zh) * | 2015-11-05 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 一种元数据的处理方法和装置 |
CN105550306A (zh) * | 2015-12-14 | 2016-05-04 | 北京奇虎科技有限公司 | 多副本数据的读写方法及系统 |
CN105573674A (zh) * | 2015-12-15 | 2016-05-11 | 西安交通大学 | 一种面向海量小文件的分布式存储方法 |
US20170085645A1 (en) * | 2015-09-22 | 2017-03-23 | Kabushiki Kaisha Toshiba | Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto |
-
2017
- 2017-04-14 CN CN201710244565.8A patent/CN107045426B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1411580A (zh) * | 2000-01-10 | 2003-04-16 | 连接公司 | 客户机-服务器环境中差异备份系统的管理 |
US7051173B2 (en) * | 2000-02-04 | 2006-05-23 | Fujitsu Limited | Backup system and method thereof in disk shared file system |
CN101128827A (zh) * | 2005-02-24 | 2008-02-20 | 塞朗德系统有限公司 | 用于交换网络中分布式数据管理的方法和装置 |
CN102567438A (zh) * | 2010-09-28 | 2012-07-11 | 迈塔斯威士网络有限公司 | 对分布式存储系统中的数据项进行访问的方法 |
CN103294675A (zh) * | 2012-02-23 | 2013-09-11 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
CN103200273A (zh) * | 2013-04-19 | 2013-07-10 | 北京科技大学 | 基于物理位置的内容副本一致性维护方法 |
CN103530362A (zh) * | 2013-10-12 | 2014-01-22 | 清华大学 | 一种用于多副本分布式系统的计算机数据读写方法 |
CN103607448A (zh) * | 2013-11-18 | 2014-02-26 | 四川川大智胜软件股份有限公司 | 一种atc系统动态数据存储的方法 |
CN103870570A (zh) * | 2014-03-14 | 2014-06-18 | 广州携智信息科技有限公司 | 一种基于远程日志备份的HBase数据可用性及持久性的方法 |
US20170085645A1 (en) * | 2015-09-22 | 2017-03-23 | Kabushiki Kaisha Toshiba | Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto |
CN105426439A (zh) * | 2015-11-05 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 一种元数据的处理方法和装置 |
CN105550306A (zh) * | 2015-12-14 | 2016-05-04 | 北京奇虎科技有限公司 | 多副本数据的读写方法及系统 |
CN105573674A (zh) * | 2015-12-15 | 2016-05-11 | 西安交通大学 | 一种面向海量小文件的分布式存储方法 |
Non-Patent Citations (2)
Title |
---|
HEHE LI 等: "An Energy Efficient Backup Scheme with Low Inrush Current for Nonvolatile SRAM in Energy Harvesting Sensor Nodes", 《2015 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE)》 * |
乐洪超 等: "一种基于HDFS 的远程文件备份系统的设计和实现", 《计算机安全》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947584A (zh) * | 2019-02-26 | 2019-06-28 | 启迪云计算有限公司 | 一种基于云计算分布式块存储的degrade读写方法 |
CN116048429A (zh) * | 2023-04-03 | 2023-05-02 | 创云融达信息技术(天津)股份有限公司 | 一种多副本读写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107045426B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436725A (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
CN106227731B (zh) | 一种数据处理方法、装置及分布式文件系统 | |
US9563511B1 (en) | Performing input/output operations on a set of storage devices based on scalable input/output credits | |
CN104461768B (zh) | 副本存储装置及副本存储方法 | |
CN106855822A (zh) | 用于分布式事务处理的方法及设备 | |
CN107408070A (zh) | 分布式存储系统中的多事务日志 | |
CN104407936B (zh) | 一种数据快照方法及装置 | |
CN104331453B (zh) | 一种分布式文件系统及分布式文件系统的构建方法 | |
CN102387179B (zh) | 分布式文件系统及其结点、存储方法和存储控制方法 | |
CN103530388A (zh) | 一种云存储系统中提升性能的数据处理方法 | |
CN107357680A (zh) | 数据处理设备和数据处理的方法 | |
CN102142006A (zh) | 分布式文件系统的文件处理方法及装置 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN106445409A (zh) | 一种分布式块存储的数据写入方法及装置 | |
CN104715044B (zh) | 一种分布式系统及其数据操作方法 | |
CN107391544A (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN109144406A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN106598768A (zh) | 一种处理写请求的方法、装置和数据中心 | |
CN106686095A (zh) | 一种基于纠删码技术的数据存储方法及装置 | |
CN111930716A (zh) | 一种数据库扩容方法、装置及系统 | |
CN105740091B (zh) | 数据备份、恢复方法和设备 | |
CN109325011A (zh) | 基于区块链的数据存储、处理、分享方法及系统 | |
CN107045426A (zh) | 一种多副本读取方法和系统 | |
CN106897345A (zh) | 一种数据存储的方法及装置 | |
CN107506466A (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 |