CN107045426B - 一种多副本读取方法和系统 - Google Patents

一种多副本读取方法和系统 Download PDF

Info

Publication number
CN107045426B
CN107045426B CN201710244565.8A CN201710244565A CN107045426B CN 107045426 B CN107045426 B CN 107045426B CN 201710244565 A CN201710244565 A CN 201710244565A CN 107045426 B CN107045426 B CN 107045426B
Authority
CN
China
Prior art keywords
storage nodes
read
write
node
standby storage
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.)
Active
Application number
CN201710244565.8A
Other languages
English (en)
Other versions
CN107045426A (zh
Inventor
薛贞文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Fenbi Lantian Technology Co ltd
Original Assignee
Beijing Fenbi Lantian Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Fenbi Lantian Technology Co ltd filed Critical Beijing Fenbi Lantian Technology Co ltd
Priority to CN201710244565.8A priority Critical patent/CN107045426B/zh
Publication of CN107045426A publication Critical patent/CN107045426A/zh
Application granted granted Critical
Publication of CN107045426B publication Critical patent/CN107045426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed 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 (4)

1.一种多副本读写方法,其特征在于,包括:
代理节点接收写入请求并首先将该请求发送至主存储节点;
所述代理节点在接收到所述主存储节点写入成功的信息后再向N个备存储节点分发写入请求;
代理节点接收读取/写入请求并将该请求发送至N个备存储节点;
当所述备存储节点的个数N为偶数时,指定N/2个所述备存储节点为读取/写入备存储节点;
当所述备存储节点的个数N为奇数时,指定(N-1)/2个所述备存储节点为读取/写入备存储节点;
计算所述指定(N-1)/2或所述指定N/2所述备存储节点读取/写入成功或失败的数量;
计算所述备存储节点的副本版本相同或不相同的数量;
读取操作读到的数据一定是在(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个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
计算所述备存储节点读取/写入成功或失败的数量;
当所述备存储节点的个数N为偶数时,当有N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
当所述备存储节点的个数N为奇数时,当有(N-1)/2个所述备存储节点读取/写入成功或失败时,则所述代理节点返回读取/写入操作成功或失败信息。
2.根据权利要求1所述的方法,其中,所述代理节点接收写入请求并将该请求发送至主存储节点还包括:
当所述主存储节点写入操作失败,则所述代理节点在预定时间内继续向所述主存储节点发送写入请求。
3.一种多副本读写系统,其特征在于,包括:
发送模块,用于将代理节点接收的写入请求发送至主存储节点;
分发模块,用于将在接收到所述主存储节点写入成功的信息后向N个备存储节点分发写入请求;
接收模块,用于接收读取/写入请求并将该请求发送至N个备存储节点;
指定模块,用于当所述备存储节点的个数N为偶数时,指定N/2个所述备存储节点为读取/写入备存储节点;
所述指定模块还用于当所述备存储节点的个数N为奇数时,指定(N-1)/2个所述备存储节点为读取/写入备存储节点;
返回模块,当所述备存储节点的个数N为偶数时,用于当有N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;当所述备存储节点的个数N为奇数时,所述返回模块还用于当有(N-1)/2个所述备存储节点读取/写入成功或失败时,则所述代理节点返回读取/写入操作成功或失败信息;
计算模块,用于当所述备存储节点的个数N为偶数时,当所述指定的N/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息,在返回模块返回读取信息前还包括:所述计算模块还用于计算所述备存储节点的副本版本相同或不相同的数量:当所述备存储节点的个数N为偶数时,所述返回模块还用于,当所述代理节点读取到有N/2或指定的N/2个所述备存储节点的副本版本相同时,则所述代理节点返回该相同的副本版本;当所述备存储节点的个数N为奇数时,所述返回模块还用于,当所述代理节点读取到有(N-1)/2或指定的(N-1)/2个所述备存储节点的副本版本相同时,则所述代理节点返回该相同的副本版本,当所述代理节点读取到有(N-1)/2或指定的(N-1)/2个所述备存储节点的副本版本不相同时,则所述代理节点返回最低版本的副本版本;
所述计算模块还用于当所述备存储节点的个数N为奇数时,当所述指定的(N-1)/2个所述备存储节点读取/写入成功时,则所述代理节点返回读取/写入操作成功信息;
计算模块,用于计算所述备存储节点读取/写入成功或失败的数量。
4.根据权利要求3所述的系统,其中,所述发送模块还用于:
当所述主存储节点写操作失败,则所述发送模块在预定时间内继续向所述主存储节点发送写请求。
CN201710244565.8A 2017-04-14 2017-04-14 一种多副本读取方法和系统 Active CN107045426B (zh)

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 CN107045426A (zh) 2017-08-15
CN107045426B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947584A (zh) * 2019-02-26 2019-06-28 启迪云计算有限公司 一种基于云计算分布式块存储的degrade读写方法
CN116048429B (zh) * 2023-04-03 2023-07-04 创云融达信息技术(天津)股份有限公司 一种多副本读写方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 北京奇虎科技有限公司 多副本数据的读写方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2148284A1 (en) * 2000-01-10 2010-01-27 Iron Mountain Incorporated Administration of a differential backup system in a client-server environment
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 塞朗德系统有限公司 用于交换网络中分布式数据管理的方法和装置
GB2484086A (en) * 2010-09-28 2012-04-04 Metaswitch Networks Ltd Reliability and performance modes in a distributed storage system
US10506042B2 (en) * 2015-09-22 2019-12-10 Toshiba Memory Corporation Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
CN105573674A (zh) * 2015-12-15 2016-05-11 西安交通大学 一种面向海量小文件的分布式存储方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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数据可用性及持久性的方法
CN105426439A (zh) * 2015-11-05 2016-03-23 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
CN105550306A (zh) * 2015-12-14 2016-05-04 北京奇虎科技有限公司 多副本数据的读写方法及系统

Also Published As

Publication number Publication date
CN107045426A (zh) 2017-08-15

Similar Documents

Publication Publication Date Title
US11614867B2 (en) Distributed storage system-based data processing method and storage device
US9710331B2 (en) Data storage method, data recovery method, related apparatus, and system
US7827144B1 (en) Methods of reading and writing data
US11307776B2 (en) Method for accessing distributed storage system, related apparatus, and related system
US7266716B2 (en) Method and recovery of data using erasure coded data from stripe blocks
US9047306B1 (en) Method of writing data
CN103124961B (zh) 用于异步复制的基于主机的写入排序
WO2018098972A1 (zh) 一种日志恢复方法、存储装置和存储节点
US10366106B2 (en) Quorum-based replication of data records
WO2017219857A1 (zh) 一种数据处理方法和设备
US7284088B2 (en) Methods of reading and writing data
CN104935654A (zh) 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
US20230098190A1 (en) Data processing method, apparatus, device and medium based on distributed storage
EP1678712A2 (en) Methods of reading and writing data
CN106873902B (zh) 一种文件存储系统、数据调度方法及数据节点
CN116917880A (zh) 分布式数据库远程备份
CN115167782B (zh) 临时存储副本管理方法、系统、设备和存储介质
CN106815094B (zh) 一种用于实现主备同步模式下事务提交的方法与设备
US20080133967A1 (en) Distributed object sharing system and method thereof
CN110121694B (zh) 一种日志管理方法、服务器和数据库系统
CN104486438A (zh) 分布式存储系统的容灾方法及装置
CN109167690A (zh) 一种分布式系统中节点服务的恢复方法、装置及相关设备
CN107045426B (zh) 一种多副本读取方法和系统
CN114244859A (zh) 数据处理方法及装置和电子设备
US10169441B2 (en) Synchronous data replication in a content management system

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