CN102265277B - 数据存储系统的操作方法和装置 - Google Patents

数据存储系统的操作方法和装置 Download PDF

Info

Publication number
CN102265277B
CN102265277B CN201180001011.6A CN201180001011A CN102265277B CN 102265277 B CN102265277 B CN 102265277B CN 201180001011 A CN201180001011 A CN 201180001011A CN 102265277 B CN102265277 B CN 102265277B
Authority
CN
China
Prior art keywords
data
state
node
management
synchronous
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
CN201180001011.6A
Other languages
English (en)
Other versions
CN102265277A (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.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102265277A publication Critical patent/CN102265277A/zh
Application granted granted Critical
Publication of CN102265277B publication Critical patent/CN102265277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种数据存储系统的操作方法和装置,涉及数据存储领域,提高了对分布式存储的数据的读操作效率。一种数据存储系统的操作方法,包括:数据节点接收数据操作消息,所述数据操作消息携带数据操作类型以及操作的数据对象;查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述更新状态包括同步状态、半同步状态、异步状态;若所述状态参数为同步状态,并且所述操作类型为读操作,则读取所述数据节点存储的所述数据对象。本发明实施例用于对分布式数据存储系统中的数据进行操作。

Description

数据存储系统的操作方法和装置
技术领域
本发明涉及数据存储领域,尤其涉及一种数据存储系统的操作方法和装置。
背景技术
分布式数据存储系统是由经网络互联的多个存储设备组成的存储系统。在该系统中,数据在多个数据节点上进行备份。传统的分布式数据存储系统的数据节点通常包括多个主节点,各个主节点分别保存全部数据的一部分,每个主节点都连接有一组从节点。当用户读取数据时,直接在主节点执行读数据操作;当用户写入数据时,在主节点执行写数据操作,并由主节点将数据复制到从节点,以使从节点保存与相连的主节点相同的数据副本。在主节点故障时,通过主从节点切换将一个从节点升级为主节点,保证正常的读写操作。传统的主从节点的存储系统中,各个从节点必须配置与主节点性能相近的硬件,以替换故障的主节点进行工作,这导致了过高的硬件成本;另外,在当前网络通常为松散组网的背景下,网络中的节点经常出现连接中断或超时,由此会引发主从节点的频繁切换,影响系统性能。
为解决传统的主从节点的存储系统的问题,现有技术提供了基于(N,W,R)策略的管理方案。该方案取消了主从节点的概念,每个数据节点保存全部数据中的一部分;并且对于某个数据X,分配N个数据节点作为存储数据X的副本节点,即数据X在数据存储系统中存有N个副本。当对数据X进行写操作时,要在W个副本节点完成对该数据的写操作后才能结束本次写操作;当对数据X进行读操作时,必须在R个副本节点中读出。其中,N、W、R之间满足W+R>N的关系,以保证读取的R个数据中至少有一个为最新版本。
在实现上述方案的过程中,发明人发现现有技术中至少存在如下问题:首先,基于(N,W,R)策略的管理方案必须经过对R个副本节点的读操作后,才能确定一个数据的最新版本,读操作的效率较低。此外,数据存储系统中通常要支持对数据进行复杂条件查询,即通过遍历数据筛选出符合指定的查询条件的数据,并对筛选出的数据执行计算或写入动作;而基于(N,W,R)策略的方案中,任意数据都在N个副本节点中存有副本,这导致在进行复杂条件查询时,对于每个数据必须遍历R个副本节点才能确定最新版本的数据,数据遍历的操作量极为巨大,实际应用中难以实现。
发明内容
本发明的实施例提供一种数据存储系统的操作方法和装置,提高了对分布式存储的数据的读操作效率。
为达到上述目的,本发明的实施例采用如下技术方案:
一种数据存储系统的操作方法,包括:
数据节点接收数据操作消息,所述数据操作消息携带数据操作类型以及操作的数据对象;
查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述更新状态包括同步状态、半同步状态、异步状态;
若所述状态参数为同步状态,并且所述操作类型为读操作,则读取所述数据节点存储的所述数据对象;
若所述状态参数为半同步状态或异步状态,并且所述操作类型为读操作,则查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点;所述节点状态表记录各个数据节点保存的数据以及所述保存的数据对应的状态参数;
向所述其他数据节点中的其中一个数据节点发送读操作消息,所述读操作消息中包括所述数据对象,以便所述其他数据节点中的其中一个数据节点接收所述读操作消息后读取所述数据对象;
所述方法还包括:
若所述状态参数是同步状态,并且所述操作类型为写操作,则对所述数据节点存储的所述对象数据进行写入;
若所述状态参数为半同步状态或异步状态,并且所述操作类型为写操作,则查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点;
在获取所述状态参数为同步状态的其他数据节点后,向所述状态参数为同步状态的其他数据节点中的其中一个数据节点发送第一写操作消息,所述第一写操作消息中包括所述数据对象,以便所述状态参数为同步状态的其他数据节点中的其中一个数据节点接收所述第一写操作消息后对所述数据对象进行写入;
在所述数据节点或所述状态参数为同步状态的其他数据节点中的其中一个数据节点完成对所述数据对象的写入后,向保存所述数据对象且所述数据对象的状态参数为同步、半同步或异步状态的所有其他数据节点发送第二写操作消息,以便所述所有其他数据节点进行对所述数据对象的写入。
一种数据存储系统的操作装置,包括:
操作消息接收单元,用于接收数据操作消息,所述数据操作消息携带数据操作类型以及操作的数据对象;
状态参数查询单元,用于查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述更新状态包括同步状态、半同步状态、异步状态;
数据读取单元,用于在所述状态参数为同步状态并且所述操作类型为读操作时,读取所述数据节点存储的所述数据对象;
所述装置还包括:
第一节点查询单元,用于在所述状态参数为半同步状态或异步状态并且所述操作类型为读操作时,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点;所述节点状态表记录各个数据节点保存的数据以及所述保存的数据对应的状态参数;
读操作消息发送单元,用于向所述其他数据节点中的其中一个数据节点发送读操作消息,所述读操作消息中包括所述数据对象,以便所述其他数据节点中的其中一个数据节点接收所述读操作消息后读取所述数据对象;
所述装置还包括:
数据写入单元,用于在所述状态参数是同步状态并且所述操作类型为写操作时,对所述数据节点存储的所述对象数据进行写入;
第二节点查询单元,用于在所述状态参数为半同步状态或异步状态并且所述操作类型为写操作时,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点;
第一写操作发送单元,用于在获取所述状态参数为同步状态的其他数据节点后向所述状态参数为同步状态的其他数据节点中的其中一个数据节点发送第一写操作消息,所述第一写操作消息中包括所述数据对象,以便所述状态参数为同步状态的其他数据节点中的其中一个数据节点接收所述第一写操作消息后对所述数据对象进行写入;
第二写操作发送单元,用于在所述数据节点或所述状态参数为同步状态的其他数据节点中的其中一个数据节点完成对所述数据对象的写入后,向保存所述数据对象且所述数据对象的状态参数为同步、半同步或异步状态的所有其他数据节点发送第二写操作消息,以便所述所有其他数据节点进行对所述数据对象的写入。
本发明实施例提供的数据存储系统的操作方法和装置,对数据节点中保存的数据分配了状态参数,并将状态参数为同步状态的数据作为最新的数据读取出来,避免了现有技术分别从R个节点读取数据的操作,提高了读操作的效率。
附图说明
图1为本发明实施例1中数据存储系统的操作方法的流程图;
图2为本发明实施例1中数据存储系统的操作装置的框图;
图3为本发明实施例2中操作类型为读操作时的操作方法的流程图;
图4为本发明实施例2中操作类型为写操作时的操作方法的流程图;
图5为本发明实施例2中数据节点与管理节点进行交互的操作方法的流程图;
图6为本发明实施例3中数据存储系统的操作装置的框图;
图7为本发明实施例3中节点状态表更新单元的框图;
图8为本发明实施例2中一种分布式数据存储系统的结构图;
图9为图8所示的分布式数据存储系统的数据节点1的节点状态表的示意图;
图10为基于account group的节点状态表的示意图。
具体实施方式
本发明的技术方案中的分布式数据存储系统中没有主从节点的区分,每个数据节点保存全部数据中的一部分。
一般的,分布式数据存储系统中存储的数据项具备account、key、value、version四种属性。key为数据项的唯一标识,value为数据项的内容,version为数据项的最新版本,account为数据项的账户号,并且不同的数据项可分配同一种账户号。
对于每个数据节点仅保存全部数据中的一部分的分布式数据存储系统,在系统建立之初,可将所有的account预先分成若干个accountgroup(账户组),并且所有数据节点以account group为单位来保存数据。举例来说。对于某条数据项X,若该数据项X的account为account_X,则account_X必定属于某个account group。假设account_X所属的account group为group_X,则保存数据X的数据节点还保存group_X中的所有account对应的数据项。对于每个account group,由N个数据节点保存每个account group的数据的副本,其中N称为副本阈值并且N小于数据节点的总数。因此,该分布式数据存储系统中的每条数据项都在N个数据节点中存有副本。
下面结合本发明实施例的附图对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
本发明实施例提供了一种数据存储系统的操作方法,如图1所示,所述方法包括以下步骤:
101、数据节点接收数据操作消息。
所述数据操作消息由客户端发送到数据节点,并且所述数据操作消息中携带了数据操作类型以及操作的数据对象。
102、查询所述数据对象的状态参数。
当所述数据节点收到所述数据操作消息后,执行查询存储的所述数据对象的状态参数的操作。
所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述更新状态包括同步状态、半同步状态、异步状态。对于更新为最新版本的数据,其状态参数为同步状态;对于还未更新至最新版本的数据,其状态参数为半同步状态或异步状态。特别的,还可以在状态参数中设置一种未指定状态,用来表示可能出现的既不是同步状态、也不是半同步或异步状态的异常情况。
103、若所述状态参数为同步状态并且所述操作类型为读操作,读取所述数据节点存储的所述数据对象。
当所述数据节点获取到所述状态参数为同步状态时,进而查询所述数据操作消息中的数据操作类型。如果所述数据操作类型为读操作,则所述数据节点对所述状态参数为同步状态的数据对象执行读操作,并将读取的结果返回给客户端。
本发明实施例还提供了一种数据存储系统的操作装置,如图2所示,所述装置包括:操作消息接收单元21、状态参数查询单元22、数据读取单元23。
操作消息接收单元21用于接收数据操作消息,所述数据操作消息携带数据操作类型以及操作的数据对象。状态参数查询单元22用于查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述更新状态包括同步状态、半同步状态、异步状态。数据读取单元23用于在所述状态参数为同步状态并且所述操作类型为读操作时,读取所述数据节点存储的所述数据对象。
本发明实施例提供的数据存储系统的操作方法和装置,对数据节点中保存的数据分配了状态参数,并将状态参数为同步状态的数据作为最新的数据读取出来,避免了现有技术分别从R个节点读取数据的操作,提高了读操作的效率。
实施例2:
本发明实施例提供了一种数据存储系统的操作方法,如图3所示,所述方法包括以下步骤:
301、数据节点接收数据操作消息。
所述数据操作消息由客户端发送到数据节点,并且所述数据操作消息中携带了数据操作类型以及操作的数据对象。
如果所述数据节点未存储所述数据操作消息中携带的所述数据对象,则所述数据节点向客户端返回一个异常消息,以使客户端向其他的数据节点重发该数据操作消息。
302、查询所述数据节点当前的管理状态参数。
在所述数据节点的管理状态参数为正常状态时,执行步骤303;当所述数据节点的管理状态参数为中断状态时,终止当前的数据操作。
303、查询所述数据对象的状态参数。
所述状态参数由所述管理节点为所述数据节点分配,包括同步状态、半同步状态、异步状态。对于更新为最新版本的数据,其状态参数为同步状态;对于还未更新至最新版本的数据,其状态参数为半同步状态或异步状态。特别的,还可以在状态参数中设置一种未指定状态,用来表示可能出现的既不是同步状态、也不是半同步或异步状态的异常情况。
查询所述数据对象的状态参数后,如果所述状态参数为同步状态,则转向步骤304;如果所述状态参数为半同步状态或异步状态,则转向步骤305。
304、若所述数据操作类型为读操作,读取所述数据节点存储的所述数据对象。
所述数据节点读取自身存储的所述数据对象,并将读取的结果返回客户端。
305、若所述数据操作类型为读操作,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点。
每个数据节点都保存有一份节点状态表,用于记录各个数据节点保存的数据以及所述保存的数据对应的状态参数。所述数据节点通过查询节点状态表来获取数据的状态参数为同步状态的其他数据节点,从而可以通知所述其他数据节点进行读操作。
比如,在如图8所示的分布式数据存储系统中,数据1至数据4在数据节点1至数据节点4中有着不同的存储分布。数据节点1的节点状态表可以是如图9所示的情况。在图9的节点状态表中记录了数据节点1至数据节点4的存储情况。其中,考虑到整个分布式数据存储系统的数据更新可能不是完全实时,数据节点1的节点状态表记录的其他数据节点(数据节点2至数据节点4)的情况可能会与实际情况不符。图8、图9描述的是一种极简化的情况,由于分布式数据存储系统中的数据量通常很庞大,像图9一样对每条数据进行记录较难实现。实际的分布式数据存储系统中的数据节点以account group为单位保存数据,因此,数据节点的节点状态表通常是以account group为单位来进行数据的状态参数的记录,如图10所示。这样,一个数据节点所保存的一个account group下的所有数据都具有相同的状态参数。本发明实施例下文中提及的数据节点的节点状态表中的状态参数,可以理解为以每条数据项为单位分配的状态参数,也可以理解为以每个account group为单位分配的状态参数。通常,在数据量很大的分布式数据存储系统中,以account group为单位分配状态参数是优选的方案。
306、向所述其他数据节点中的其中一个数据节点发送读操作消息。
所述读操作消息中包括所述数据对象,所述其他数据节点接收所述读操作消息后读取自身存储的所述数据对象,并将读取的结果返回客户端。
此外,对于所述数据操作类型为写操作的情况,如图4所示,所述方法还包括如下步骤:
303、查询所述数据对象的状态参数。
查询所述数据对象的状态参数后,如果所述状态参数为同步状态,则转向步骤307;如果所述状态参数为半同步状态或异步状态,则转向步骤308。
307、若所述状态参数为同步状态且所述数据操作类型为写操作,对所述数据节点存储的所述数据对象进行写入。
308、若所述状态参数为半同步状态或异步状态且所述数据操作类型为写操作,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点。
309、向所述状态参数为同步状态的其他数据节点中的其中一个数据节点发送第一写操作消息。
所述第一写操作消息中包括所述数据对象,所述其中一个数据节点接收所述第一写操作消息后对自身存储的所述数据对象进行写入操作。
310、向保存所述数据对象且所述数据对象的状态参数为同步、半同步或异步状态的所有其他数据节点发送第二写操作消息。
在步骤307完成写入动作后,以及在步骤309完成写入动作后,完成写入动作的所述数据节点或所述状态参数为同步状态的其他数据节点中的其中一个数据节点将向保存有所述数据对象并且所述数据对象的状态参数为同步、半同步或异步状态的所有其他数据节点发送第二写操作消息,以便所述所有其他数据节点都进行对所述数据对象的写入,实现整个分布式数据存储系统对所述数据对象的更新。
下面举例来对读操作和写操作进行说明。假设在分布式数据存储系统中,数据节点A、B、C、D存储了数据a。
如果数据节点A收到了客户端发送的数据操作消息并且该数据操作消息要求对数据a进行读操作,则当数据节点A查询自身的节点状态表并获取到自身存储的数据a的状态参数为同步状态时,数据节点A直接读取自身存储的数据a;当数据节点A查询自身的节点状态表并获取到自身存储的数据a的状态参数为半同步或异步状态时,数据节点A将向自身的节点状态表中记录的存有数据a且其状态参数为同步状态的其他数据节点中的其中一个数据节点(不妨假设所述其中一个数据节点为数据节点C)发送读操作消息,从而由数据节点C进行对数据a的读取。
如果数据节点A收到了客户端发送的数据操作消息并且该数据操作消息要求对数据a进行写操作,则当数据节点A查询自身的节点状态表并获取到自身存储的数据a的状态参数为同步状态时,对自身存储的数据a进行写入;当数据节点A查询自身的节点状态表并获取到自身存储的数据a的状态参数为半同步或异步状态时,数据节点A将向自身的节点状态表中记录的存有数据a且其状态参数为同步状态的其他数据节点中的其中一个数据节点(不妨假设所述其中一个数据节点为数据节点C)发送第一写操作消息,从而由数据节点C进行对数据a的写入。在完成上述的对数据a的写入后,还要向保存数据a且其状态参数为同步、半同步或异步状态的所有其他数据节点(比如数据节点B、D)发送第二写操作消息,以使数据节点B、D也进行对自身存储的数据a的写入。这样,系统中所有保存有数据a的数据节点都进行了写入动作,从而完成对数据a的更新。
在执行上述的读操作、写操作的过程中,所述数据节点还要对异常情况进行分析处理。
对于数据的读操作,所述数据节点发出所述读操作消息后,在所述第一等待时间段中等待所述其中一个数据节点的响应。
若在所述第一等待时间段内收到所述其中一个数据节点因管理状态参数为中断状态而返回的管理状态异常消息,则将所述读操作消息发送到所述其他数据节点中的另一个数据节点;若所述第一等待时间段内收到所述其中一个数据节点因数据对象的状态参数不是同步状态而返回的更新状态异常消息,则对所述数据节点的节点状态表中记录的所述其中一个数据节点的数据对象的状态参数进行更新;在完成所述状态参数的更新后,将所述读操作消息发送到所述其他数据节点中的另一个数据节点;若在所述第一等待时间段内未接收所述其中一个数据节点的响应,则在所述数据节点存储的超时记录表中将所述其中一个数据节点的超时次数增加一次。
举例来说,数据节点N向数据节点M发送了读操作消息,以使数据节点M对数据n进行读操作。数据节点N在所述第一等待时间段内等待数据节点M返回操作结果,包括以下几种情况:
S1、数据节点M完成了读操作,并返回了操作结果。
S2、如果数据节点M的自身保存的管理状态参数为中断状态,则数据节点M向数据节点N发送管理状态异常消息。数据节点N接收所述管理状态异常消息后从自身的节点状态表查找到另一个存有数据n且其状态参数为同步状态的数据节点,并向该数据节点发送读操作消息。
S3、如果数据节点M接收所述读操作消息后,从自身的节点状态表查找到自身存储的数据n不处于同步状态,则数据节点M向数据节点N返回更新状态异常消息,所述更新状态异常消息携带了数据节点M存储的数据n的状态参数。数据节点N接收所述更新状态异常消息后,将对自身的节点状态表记录的数据节点M存储的数据n的状态参数进行更新动作。所述更新动作包括:
S301、数据节点N从所述更新状态异常消息中获取所述数据节点M存储的数据n的状态参数。
S302、将节点状态表记录的数据节点M的数据n的状态参数更新为从所述更新状态异常消息中获取的状态参数。数据节点N的节点状态表中记录的数据节点M的数据n的状态参数原本为同步状态,在接收所述更新状态异常消息并进行状态参数的更新后,数据节点N的节点状态表记录的数据节点M的数据n的状态参数将变更为半同步状态或异步状态。
如果在所述第一等待时间段内,数据节点N没有收到数据节点M的任何响应,则在数据节点N存储的超时记录表中将所述数据节点M的超时次数增加一次。
对于数据的写操作,所述数据节点发出所述第一写操作消息后同样将在所述第一等待时间段中等待接收了所述第一写操作消息的数据节点的响应。对不同响应的处理可参照上述读操作所举的例子。
对于发送所述第二写操作消息的情况,所述数据节点发出所述第二写操作消息后,将在另一个预设的时间段中等待响应。假设所述另一个预设的时间段为第二等待时间段。举例来说,数据节点P完成对自身存储的数据p的写入操作后,向所有存储由数据p的数据节点发送第二写操作消息。其中,对于保存数据p且其状态参数为同步或半同步的数据节点,数据节点P将发送同步型第二写操作消息;对于保存数据p且其状态参数为异步的数据节点,数据节点P将发送异步型第二写操作消息。不妨假设数据节点Q接收到所述同步型第二写操作消息并且数据节点R接收到所述异步型第二写操作消息。数据节点P在所述第二等待时间段中等待返回的操作结果,包括以下几种情况:
S4、数据节点P接收到写入成功的消息。
S5、数据节点P接收到更新状态异常消息。
以数据节点Q为例说明S5的情况。数据节点Q接收所述同步型第二写操作消息后,在自身的节点状态表中查询存储的数据p的状态参数。如果查询到所述数据p的状态参数不是同步状态或半同步状态,则向数据节点P返回更新状态异常消息,所述更新状态异常消息携带了数据节点Q存储的数据p的状态参数(所述更新状态异常消息携带的状态参数为异步状态)。数据节点P接收所述更新状态异常消息后,将进行更新动作。所述更新动作包括:数据节点P根据接收到的所述更新状态异常消息中携带的数据p的状态参数,将自身的节点状态表记录的数据p的状态参数更新为异步状态。更新完成后,向数据节点Q发送异步型第二写操作消息,并等待返回结果。
如果在所述第二等待时间段内,数据节点P没有收到数据节点Q的任何响应,则在数据节点P存储的超时记录表中将所述数据节点Q的超时次数增加一次。
对于接受所述异步型第二写操作消息的数据节点R的处理过程与上述对数据节点Q的处理过程类似。此外,为提升整个系统的处理性能,数据节点P可以在收到数据节点Q返回的写入成功的消息后结束在所述第二等待时间段中的等待。也就是说,数据节点P向所有存储数据p的数据节点发送所述第二写操作消息后,在接收到所有保存数据p且其状态参数为同步或半同步状态的数据节点返回的写入成功的消息后就可以结束当前在所述第二等待时间段中的等待,并继续进行其他操作,而不必等待保存数据p且状态参数为异常状态的数据节点返回的写入结果。这样,分布式数据存储系统需要等待的数据节点越少,可能出现的操作异常的情况也越少,从而有利于提升系统整体的处理效率。
所述数据节点除了进行读写操作及异常处理,还需与所述管理节点进行连通和信息交互,如图5所示,包括如下步骤:
501、所述数据节点以预设的时间段为周期,向管理节点发起管理连接请求。
所述管理节点接收到所述管理连接请求后,将所述数据节点的管理状态参数设置为正常状态。当所述管理连接请求的连续连接失败的次数达到预设的连接失败计数阈值时,所述数据节点将自身的管理状态参数设置为中断状态。
502、所述数据节点向所述管理节点发送所述数据节点的超时记录表。
在所述管理连接请求被所述管理节点接收后,所述数据节点向所述管理节点发送所述数据节点的超时记录表。所述管理节点接收所述数据节点的超时记录表,从所述超时记录表获取所述数据节点的超时次数,并将达到超时阈值的数据节点的所有数据的状态参数修改为异步状态并记录到管理节点状态表。
作为实际应用中的一种实现方式,所述数据节点发送的超时记录表中可以还包括:在预设的超时记录时间段内的超时比值,所述超时比值为是指在预设的超时记录时间段内所述数据节点的总超时次数与所述数据节点向其他数据节点进行连接请求的次数的比值。所述管理节点获取到所述超时比值后,与所述超时阈值进行比对,对于所述超时比值大于等于所述超时阈值的数据节点,所述管理节点将其所有数据的状态参数变更为异步状态。此外,所述管理节点还根据预设的节点数阈值S对状态参数进行动态调整。比如,如果存储数据h且状态参数为同步和半同步状态的所有数据节点的数量不足所述节点数阈值S时,所述管理节点从所有的存有数据h且状态参数为异步状态的数据节点中,获取超时比值最小(即在预设的超时记录时间段内所述数据节点的总超时次数与所述数据节点向其他数据节点进行连接请求的次数的比值最小)的数据节点,并在所述管理节点状态表将该数据节点存储的数据h的状态参数变更为半同步状态。
所述节点数阈值S预先设置在分布式数据存储系统中。所述节点数阈值S一般小于所述副本阈值N。所述节点数阈值S的取值应考虑系统整体的操作性能和实时性,因而不应取值过大;同时还应考虑系统整体的容灾能力,因此也不应取值过小。通常,对于不同的系统,可通过实测或仿真实验得到最优的S取值。当存储数据h且状态参数为同步状态的数据节点数量达到所述节点数阈值S,则管理节点暂停生成新的同步状态的操作,以维持所述节点数阈值S。
503、所述数据节点接收所述管理节点发送的管理节点状态表。
504、从所述管理节点状态表中获取各个数据节点保存的数据的状态参数。
所述管理节点执行如步骤502中描述的对数据节点存储数据的状态参数的变更后,将变更后的所述管理节点状态表发送给所述数据节点。此时,所述数据节点从所述管理节点状态表中获取的状态参数可能与所述数据节点自身的节点状态表中记录状态参数不同,因此需要进行状态参数的更新。
505、将所述数据节点的节点状态表中的状态参数更新为所述获取的各个数据节点保存的数据的状态参数。
当从所述管理节点状态表中获取的各个数据节点的数据的状态参数与所述数据节点的节点状态表中的各个数据节点的数据的状态参数不同时,将所述节点状态表中的所述不同的状态参数更新为从所述管理节点状态表中获取的各个数据节点的数据的状态参数。
506、在更新所述不同的状态参数后,若所述数据节点的部分数据的状态参数变更为半同步状态,则从存储所述部分数据且所述部分数据的状态参数为同步状态的另一个数据节点复制所述部分数据。
所述数据节点从所述另一个数据节点复制所述部分数据,以使所述数据节点保存的部分数据能够从半同步状态恢复为同步状态。
实际情况中,如果不存在所述存储所述部分数据且所述部分数据的状态参数为同步状态的另一个数据节点,则向所有存储有所述部分数据的数据节点进行连接,以获取版本最新的所述部分数据进行复制。
507、所述数据节点完成所述复制后,向所述管理节点发送同步完成消息。
所述管理节点收到所述同步完成消息后,判断是否将所述数据节点的所述部分数据的状态参数变更为同步状态。
比如,数据节点H完成对数据h的复制后,向所述管理节点发送同步完成消息。所述管理节点根据自身的管理节点状态表,判断存储数据h且其状态参数为同步状态和半同步状态的所有数据节点的总数是否达到所述节点数阈值S。如果没有达到所述节点数阈值S,则向所述数据节点H发送同步确认消息,以使数据节点H将自身存储的数据h的状态参数变更为同步状态;如果达到所述节点数阈值S,则向所述数据节点H发送同步终止消息,使数据节点H将自身存储的数据h的状态参数维持为半同步状态。另外,在所述数据节点复制所述部分数据时,如此时所述数据节点保存的所述部分数据的状态参数状态变为异步状态,或所述数据节点的管理状态变为中断状态,则终止当前的复制动作。
本发明实施例提供的数据存储系统的操作方法,对数据节点中保存的数据分配了状态参数,并将状态参数为同步状态的数据作为最新的数据读取出来,避免了现有技术分别从R个节点读取数据的操作,提高了读操作的效率;同时,根据状态参数能确定最新版本的数据,不必对同一数据在不同数据节点中的副本进行遍历,使复杂条件查询的实现更为简便。此外,通过引入管理节点对分布式数据存储系统中的连接超时等异常情况进行处理,提高了系统整体的可用性。
实施例3:
本发明实施例提供了一种数据存储系统的操作装置,如图6所示,所述装置包括:操作消息接收单元61、状态参数查询单元62、数据读取单元63、第一节点查询单元64、读操作消息发送单元65、数据写入单元66、第二节点查询单元67、第一写操作发送单元68、第二写操作发送单元69、第二读操作发送单元610、状态参数更新单元611、超时状态更新单元612、管理连接请求单元613、超时记录发送单元614、管理状态接收单元615、节点状态表更新单元616、同步数据复制单元617、同步完成消息发送单元618、中断状态设置单元619。
此外,所述节点状态表更新单元616还包括:第一状态参数获取模块6161、第一状态参数更新模块6162、第二状态参数获取模块6163、第二状态参数更新模块6164,如图7所示。
操作消息接收单元61用于接收携带有数据操作类型以及操作的数据对象的数据操作消息。状态参数查询单元62用于查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,包括同步状态、半同步状态、异步状态。所述状态参数查询单元62还用于在所述数据节点的管理状态参数为正常状态时查询所述数据对象的状态参数。数据读取单元63用于在所述状态参数为同步状态并且所述操作类型为读操作时,读取所述数据节点存储的所述数据对象。第一节点查询单元64用于在所述状态参数为半同步状态或异步状态并且所述操作类型为读操作时,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点。读操作消息发送单元65用于向所述其他数据节点中的其中一个数据节点发送读操作消息,所述读操作消息中包括所述数据对象,以便所述其他数据节点接收所述读操作消息后读取所述数据对象。数据写入单元66用于在所述状态参数是同步状态并且所述操作类型为写操作时,对所述数据节点存储的所述对象数据进行写入。第二节点查询单元67用于在所述状态参数为半同步状态或异步状态并且所述操作类型为写操作时,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点。第一写操作发送单元68用于在获取所述状态参数为同步状态的其他数据节点后向所述状态参数为同步状态的其他数据节点中的其中一个数据节点发送第一写操作消息,以便所述其他数据节点接收所述第一写操作消息后对所述数据对象进行写入。第二写操作发送单元69用于在所述数据节点或所述状态参数为同步状态的其他数据节点中的其中一个数据节点完成对所述数据对象的写入后,向保存所述数据对象且所述数据对象的状态参数为同步、半同步或异步状态的所有其他数据节点发送第二写操作消息,以便所述所有其他数据节点进行对所述数据对象的写入。第二读操作发送单元610用于在预设的第一等待时间段内收到所述其中一个数据节点因管理状态参数为中断状态而返回的管理状态异常消息后,将所述读操作消息发送到所述其他数据节点中的另一个数据节点。状态参数更新单元611用于在预设的第一等待时间段内收到所述其中一个数据节点因数据对象的状态参数不是同步状态而返回的更新状态异常消息时,对所述数据节点的节点状态表中记录的所述其中一个数据节点的数据对象的状态参数进行更新;在完成所述状态参数的更新后,将所述读操作消息发送到所述其他数据节点中的另一个数据节点。超时状态更新单元612用于在所述第一等待时间段内未接收所述其中一个数据节点的响应时,在所述数据节点存储的超时记录表中将所述其中一个数据节点的超时次数增加一次。
在与所述管理节点进行互连时,管理连接请求单元613用于以预设的时间段为周期,向管理节点发起管理连接请求。超时记录发送单元614用于在所述管理连接请求被所述管理节点接收后,向所述管理节点发送所述数据节点的超时记录表。管理状态接收单元615用于在所述管理连接请求被所述管理节点接收后,接收所述管理节点发送的管理节点状态表。节点状态表更新单元616用于依照所述管理节点状态表更新所述数据节点的节点状态表。
所述节点状态表更新单元616中的第一状态参数获取模块6161用于从更新状态异常消息中获取所述其中一个数据节点的数据对象的状态参数。第一状态参数更新模块6162将所述节点状态表中记录的数据对象的状态参数变更为所述从更新状态异常消息中获取的数据对象的状态参数。
所述节点状态表更新单元616中的第二状态参数获取模块6163用于从所述管理节点状态表中获取各个数据节点保存的数据的状态参数。第二状态参数更新模块6164用于当所述获取的各个数据节点保存的数据的状态参数与所述数据节点的节点状态表中的状态参数不同时,将所述数据节点的节点状态表中的状态参数更新为所述获取的各个数据节点保存的数据的状态参数。
此外,同步数据复制单元617用于在节点状态表更新单元616更新所述数据节点的节点状态表后、并且当所述数据节点的部分数据的状态参数变更为半同步状态时,从存储所述部分数据且所述部分数据的状态参数为同步状态的另一个数据节点复制所述部分数据。同步完成消息发送单元618用于在完成对所述部分数据的复制后,向所述管理节点发送同步完成消息。中断状态设置单元619用于当所述数据节点向所述管理节点发起的管理连接请求连续连接失败的次数达到预设的连接失败计数阈值时,所述数据节点将自身的管理状态参数设置为中断状态。。
对于本发明实施例提供的数据存储系统的操作装置的其他相关功能情况,可以参照前述的实施例1和实施例2的描述,本实施例不再赘述。
本发明实施例提供的数据存储系统的操作装置,对数据节点中保存的数据分配了状态参数,并将状态参数为同步状态的数据作为最新的数据读取出来,避免了现有技术分别从R个节点读取数据的操作,提高了读操作的效率,也使复杂条件查询的实现更为简便。此外,本发明实施例引入了管理节点,可以对分布式数据存储系统中的连接超时等异常情况进行处理,提高了系统整体的可用性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (17)

1.一种数据存储系统的操作方法,其特征在于,包括: 
数据节点接收数据操作消息,所述数据操作消息携带数据操作类型以及操作的数据对象; 
查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述状态参数包括同步状态、半同步状态、异步状态; 
若所述状态参数为同步状态,并且所述操作类型为读操作,则读取所述数据节点存储的所述数据对象; 
若所述状态参数为半同步状态或异步状态,并且所述操作类型为读操作,则查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点;所述节点状态表记录各个数据节点保存的数据以及所述保存的数据对应的状态参数; 
向所述其他数据节点中的其中一个数据节点发送读操作消息,所述读操作消息中包括所述数据对象,以便所述其他数据节点中的其中一个数据节点接收所述读操作消息后读取所述数据对象; 
所述方法还包括: 
若所述状态参数是同步状态,并且所述操作类型为写操作,则对所述数据节点存储的所述对象数据进行写入; 
若所述状态参数为半同步状态或异步状态,并且所述操作类型为写操作,则查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点; 
在获取所述状态参数为同步状态的其他数据节点后,向所述状态参数为同步状态的其他数据节点中的其中一个数据节点发送第一写操作消息,所述第一写操作消息中包括所述数据对象,以便所述状态参数为同步状态的其他数据节点中的其中一个数据节点接收所述第一写操作消息后对所述数据对象进行写入; 
在所述数据节点或所述状态参数为同步状态的其他数据节点中的其中一个数据节点完成对所述数据对象的写入后,向保存所述数据对象且所述数据对象的状态参数为同步、半同步或异步状态的所有其他数据节点发送第二写操作消息,以便所述所有其他数据节点进行对所述数据对象的写入。 
2.根据权利要求1所述的方法,其特征在于,所述查询所述数据对象的状态参数包括: 
在所述数据节点的管理状态参数为正常状态时,查询所述数据对象的状态参数;当所述数据节点的管理状态参数为中断状态时,终止当前的数据操作。 
3.根据权利要求1所述的方法,其特征在于,在所述数据节点向所述其他数据节点中的其中一个数据节点发出所述读操作消息后,还包括: 
若在预设的第一等待时间段内收到所述其中一个数据节点因管理状态参数为中断状态而返回的管理状态异常消息,则将所述读操作消息发送到所述其他数据节点中的另一个数据节点;或者, 
若在预设的第一等待时间段内收到所述其中一个数据节点因数据对象的状态参数不是同步状态而返回的更新状态异常消息,则对所述数据节点的节点状态表中记录的所述其中一个数据节点的数据对象的状态参数进行更新;在完成所述状态参数的更新后,将所述操作消息发送到所述其他数据节点中的另一个数据节点;或者, 
若在所述第一等待时间段内未接收到所述其中一个数据节点的响应,则在所述数据节点存储的超时记录表中将所述其中一个数据节点的超时次数增加一次。 
4.根据权利要求3所述的方法,其特征在于,所述对所述数据节点的节点状态表中记录的所述其中一个数据节点的数据对象的状态参数进行更新包括: 
从更新状态异常消息中获取所述其中一个数据节点的数据对象的状态参数; 
将所述节点状态表中记录的所述其中一个数据节点的数据对象的状态参数变更为所述从更新状态异常消息中获取的数据对象的状态参数。 
5.根据权利要求1或3所述的方法,其特征在于,还包括: 
所述数据节点向所述管理节点周期性发送所述数据节点的超时记录表,以便所述管理节点根据所述超时记录表将达到超时阈值的数据节点的所有数据的状态参数修改为异步状态并记录到管理节点状态表; 
所述数据节点接收所述管理节点发送的管理节点状态表; 
依照所述管理节点状态表更新所述数据节点的节点状态表。 
6.根据权利要求5所述的方法,其特征在于,若保存数据且状态 参数为同步状态和半同步状态的数据节点的数量之和低于预设的节点数阈值,则所述管理节点从所述保存数据并且状态参数为异步状态的数据节点中选择超时记录最少的数据节点,并将所述超时记录最少的数据节点保存的数据的状态参数变更为半同步状态。 
7.根据权利要求5所述的方法,其特征在于,所述数据节点依照所述管理节点状态表更新所述数据节点的节点状态表包括: 
从所述管理节点状态表中获取各个数据节点保存的数据的状态参数; 
当所述获取的各个数据节点保存的数据的状态参数与所述数据节点的节点状态表中的状态参数不同时,将所述数据节点的节点状态表中的状态参数更新为所述获取的各个数据节点保存的数据的状态参数。 
8.根据权利要求5所述的方法,其特征在于,依照所述管理节点状态表更新所述数据节点的节点状态表后,还包括: 
若更新所述数据节点的节点状态表后,所述数据节点的部分数据的状态参数变更为半同步状态,则从存储所述部分数据且所述部分数据的状态参数为同步状态的另一个数据节点复制所述部分数据; 
完成对所述部分数据的复制后,向所述管理节点发送同步完成消息,以便所述管理节点在收到所述同步完成消息后在所述管理节点状态表中将所述数据节点的所述部分数据的状态参数变更为同步状态;所述管理节点对所述管理状态表中的数据的状态参数进行动态调整,以使存储任何一种数据且状态参数为同步状态的数据节点与存储所述任何一种数据且状态参数为半同步状态的数据节点的总数不超过预设的节点数阈值;所述动态调整具体包括:所述管理节点根据自身的管理节点状态表,判断存储数据h且其状态参数为同步状态和半同步状态的所有数据节点的总数是否达到所述节点数阈值;如果没有达到所述节点数阈值,则向所述数据节点发送同步确认消息,以使数据节点将自身存储的数据h的状态参数变更为同步状态;如果达到所述节点数阈值,则向所述数据节点发送同步终止消息,使所述数据节点将自身存储的数据h的状态参数维持为半同步状态。 
9.根据权利要求5所述的方法,其特征在于,在发送所述数据节点的超时记录表前,还包括: 
向管理节点发起管理连接请求; 
当所述数据节点向所述管理节点发起的管理连接请求的连续连接失败的次数达到预设的连接失败计数阈值时,所述数据节点将自身的管理状态参数设置为中断状态。 
10.一种数据存储系统的操作装置,其特征在于,包括: 
操作消息接收单元,用于接收数据操作消息,所述数据操作消息携带数据操作类型以及操作的数据对象; 
状态参数查询单元,用于查询所述数据对象的状态参数;所述状态参数由管理节点为数据节点分配,用于表示数据对象的更新状态,所述状态参数包括同步状态、半同步状态、异步状态; 
数据读取单元,用于在所述状态参数为同步状态并且所述操作类型为读操作时,读取所述数据节点存储的所述数据对象; 
第一节点查询单元,用于在所述状态参数为半同步状态或异步状态并且所述操作类型为读操作时,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点;所述节点状态表记录各个数据节点保存的数据以及所述保存的数据对应的状态参数; 
读操作消息发送单元,用于向所述其他数据节点中的其中一个数据节点发送读操作消息,所述读操作消息中包括所述数据对象,以便所述其他数据节点中的其中一个数据节点接收所述读操作消息后读取所述数据对象; 
所述装置还包括: 
数据写入单元,用于在所述状态参数是同步状态并且所述操作类型为写操作时,对所述数据节点存储的所述对象数据进行写入; 
第二节点查询单元,用于在所述状态参数为半同步状态或异步状态并且所述操作类型为写操作时,查询所述数据节点保存的节点状态表并获取所述状态参数为同步状态的其他数据节点; 
第一写操作发送单元,用于在获取所述状态参数为同步状态的其他数据节点后向所述状态参数为同步状态的其他数据节点中的其中一个数据节点发送第一写操作消息,所述第一写操作消息中包括所述数据对象,以便所述状态参数为同步状态的其他数据节点中的其中一个数据节点接收所述第一写操作消息后对所述数据对象进行写入; 
第二写操作发送单元,用于在所述数据节点或所述状态参数为同步状态的其他数据节点中的其中一个数据节点完成对所述数据对象的写入后,向保存所述数据对象且所述数据对象的状态参数为同步、半 同步或异步状态的所有其他数据节点发送第二写操作消息,以便所述所有其他数据节点进行对所述数据对象的写入。 
11.根据权利要求10所述的装置,其特征在于,所述状态参数查询单元还用于在所述数据节点的管理状态参数为正常状态时查询所述数据对象的状态参数;当所述数据节点的管理状态参数为中断状态时,终止当前的数据操作。 
12.根据权利要求10所述的装置,其特征在于,还包括: 
第二读操作发送单元,用于在所述数据节点向所述其他数据节点中的其中一个数据节点发出所述读操作消息后,在预设的第一等待时间段内收到所述其中一个数据节点因管理状态参数为中断状态而返回的管理状态异常消息后,将所述读操作消息发送到所述其他数据节点中的另一个数据节点; 
状态参数更新单元,用于在所述数据节点向所述其他数据节点中的其中一个数据节点发出所述读操作消息后,在预设的第一等待时间段内收到所述其中一个数据节点因数据对象的状态参数不是同步状态而返回的更新状态异常消息时,对所述数据节点的节点状态表中记录的所述其中一个数据节点的数据对象的状态参数进行更新;在完成所述状态参数的更新后,将所述读操作消息发送到所述其他数据节点中的另一个数据节点; 
超时状态更新单元,用于在所述第一等待时间段内未接收到所述其中一个数据节点的响应时,在所述数据节点存储的超时记录表中将所述其中一个数据节点的超时次数增加一次。 
13.根据权利要求12所述的装置,其特征在于,还包括节点状态更新单元,所述节点状态更新单元包括: 
第一状态参数获取模块,用于从更新状态异常消息中获取所述其中一个数据节点的数据对象的状态参数; 
第一状态参数更新模块,将所述节点状态表中记录的数据对象的状态参数变更为所述从更新状态异常消息中获取的数据对象的状态参数。 
14.根据权利要求10或12所述的装置,其特征在于,还包括: 
管理连接请求单元,用于以预设的时间段为周期,向管理节点发起管理连接请求; 
超时记录发送单元,用于在所述管理连接请求被所述管理节点接 收后,向所述管理节点发送所述数据节点的超时记录表,以便所述管理节点根据所述超时记录表将达到超时阈值的数据节点的所有数据的状态参数修改为异步状态并记录到管理节点状态表; 
管理状态接收单元,用于接收所述管理节点发送的管理节点状态表; 
节点状态表更新单元,用于依照所述管理节点状态表更新所述数据节点的节点状态表。 
15.根据权利要求14所述的装置,其特征在于,所述节点状态表更新单元还包括: 
第二状态参数获取模块,用于从所述管理节点状态表中获取各个数据节点保存的数据的状态参数; 
第二状态参数更新模块,用于当所述获取的各个数据节点保存的数据的状态参数与所述数据节点的节点状态表中的状态参数不同时,将所述数据节点的节点状态表中的状态参数更新为所述获取的各个数据节点保存的数据的状态参数 。
16.根据权利要求14所述的装置,其特征在于,所述装置还包括: 
同步数据复制单元,用于依照所述管理节点状态表更新所述数据节点的节点状态表后,且当所述数据节点的部分数据的状态参数变更为半同步状态时,从存储所述部分数据且所述部分数据的状态参数为同步状态的另一个数据节点复制所述部分数据; 
同步完成消息发送单元,用于在完成对所述部分数据的复制后,向所述管理节点发送同步完成消息,以便所述管理节点在收到所述同步完成消息后在所述管理节点状态表中将所述数据节点的所述部分数据的状态参数变更为同步状态;所述管理节点对所述管理状态表中的数据的状态参数进行动态调整,以使存储任何一种数据且状态参数为同步状态的数据节点与存储所述任何一种数据且状态参数为半同步状态的数据节点的总数不超过预设的节点数阈值;所述动态调整具体包括:所述管理节点根据自身的管理节点状态表,判断存储数据h且其状态参数为同步状态和半同步状态的所有数据节点的总数是否达到所述节点数阈值;如果没有达到所述节点数阈值,则向所述数据节点发送同步确认消息,以使数据节点将自身存储的数据h的状态参数变更为同步状态;如果达到所述节点数阈值,则向所述数据节点发送同步终止消息,使所述数据节点将自身存储的数据h的状态参数维持为半 同步状态。 
17.根据权利要求14所述的装置,其特征在于,还包括: 
中断状态设置单元,用于当所述数据节点与所述管理节点发起的管理连接请求的连续连接失败的次数达到预设的连接失败计数阈值时,所述数据节点将自身的管理状态参数设置为中断状态。 
CN201180001011.6A 2011-06-01 2011-06-01 数据存储系统的操作方法和装置 Active CN102265277B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/075077 WO2011157156A2 (zh) 2011-06-01 2011-06-01 数据存储系统的操作方法和装置

Publications (2)

Publication Number Publication Date
CN102265277A CN102265277A (zh) 2011-11-30
CN102265277B true CN102265277B (zh) 2014-03-05

Family

ID=45010606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180001011.6A Active CN102265277B (zh) 2011-06-01 2011-06-01 数据存储系统的操作方法和装置

Country Status (3)

Country Link
US (1) US9639588B2 (zh)
CN (1) CN102265277B (zh)
WO (1) WO2011157156A2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772784B2 (en) 2011-08-10 2017-09-26 Nutanix, Inc. Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
CN103891244B (zh) * 2012-09-04 2016-11-16 华为技术有限公司 一种进行数据存储和检索的方法及装置
CN103888496A (zh) * 2012-12-22 2014-06-25 鸿富锦精密工业(深圳)有限公司 数据分散存储方法及系统
CN105094756B (zh) * 2014-04-28 2018-07-03 阿里巴巴集团控股有限公司 数据读写方法和装置
US10310857B2 (en) 2014-04-29 2019-06-04 Ampere Computing Llc Systems and methods facilitating multi-word atomic operation support for system on chip environments
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
CN104281643A (zh) * 2014-08-12 2015-01-14 广州华多网络科技有限公司 业务数据的存储方法、业务机及存储机
US10642507B2 (en) * 2015-01-30 2020-05-05 Nutanix, Inc. Pulsed leader consensus management
EP3079064B1 (en) 2015-04-07 2017-11-29 Huawei Technologies Co., Ltd. Method and apparatus for tracking objects in a first memory
US9998394B2 (en) * 2015-07-03 2018-06-12 Veritas Technologies Llc Systems and methods for scalable network buffer management
WO2017019054A1 (en) * 2015-07-29 2017-02-02 Applied Micro Circuits Corporation Systems and methods facilitating multi-word atomic operation support for system on chip environments
CN105208096A (zh) * 2015-08-24 2015-12-30 用友网络科技股份有限公司 分布式缓存系统和方法
CN105159818B (zh) * 2015-08-28 2018-01-02 东北大学 内存数据管理中日志恢复方法及其仿真系统
CN105278877A (zh) * 2015-09-30 2016-01-27 成都华为技术有限公司 一种对象存储方法和装置
US9747049B2 (en) * 2015-12-03 2017-08-29 Huawei Technologies Co., Ltd. Computer memory management method and system
CN106873902B (zh) * 2015-12-11 2020-04-28 杭州华为数字技术有限公司 一种文件存储系统、数据调度方法及数据节点
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10275480B1 (en) * 2016-06-16 2019-04-30 Amazon Technologies, Inc. Immediately-consistent lock-free indexing for distributed applications
CN106325767B (zh) * 2016-08-16 2019-02-15 北京控制工程研究所 一种基于时间参数拟合处理的异步数据存储方法
CN107888634B (zh) * 2016-09-29 2021-05-28 北京金山云网络技术有限公司 一种分布式存储系统的数据请求方法及装置
US10362092B1 (en) 2016-10-14 2019-07-23 Nutanix, Inc. Entity management in distributed systems
CN106598488B (zh) * 2016-11-24 2019-08-13 北京小米移动软件有限公司 分布式数据读取方法及装置
CN108241588A (zh) * 2016-12-27 2018-07-03 乐视汽车(北京)有限公司 数据传输的方法和装置
CN106936827B (zh) * 2017-03-10 2019-03-08 Oppo广东移动通信有限公司 一种广播接收者队列调整方法、装置及终端
CN107273440A (zh) * 2017-05-25 2017-10-20 北京邮电大学 计算机应用、数据存储方法、微服务和微数据库
CN107391033B (zh) * 2017-06-30 2020-07-07 北京奇虎科技有限公司 数据迁移方法及装置、计算设备、计算机存储介质
CN107436735A (zh) * 2017-07-28 2017-12-05 郑州云海信息技术有限公司 一种分布式文件系统中存储单元状态更新方法
CN110633320B (zh) * 2018-05-30 2024-01-12 北京京东尚科信息技术有限公司 分布式数据服务的处理方法、系统、设备及存储介质
CN110636090B (zh) * 2018-06-22 2022-09-20 北京东土科技股份有限公司 窄带宽条件下的数据同步方法和装置
CN108959530A (zh) * 2018-06-29 2018-12-07 铜陵市世纪朝阳数码科技有限责任公司 一种在线信息录入数据方法
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
CN111343258A (zh) * 2020-02-17 2020-06-26 中国建设银行股份有限公司 对等节点的管理方法、装置、存储介质及电子设备
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11159617B1 (en) * 2021-01-22 2021-10-26 Juniper Networks, Inc Apparatus, system, and method for synchronizing replicated objects across network nodes in highly scaled environments
CN113766027B (zh) * 2021-09-09 2023-09-26 瀚高基础软件股份有限公司 一种流复制集群节点转发数据的方法及设备
US20240069807A1 (en) * 2022-08-31 2024-02-29 Micron Technology, Inc. Managing command completion notification pacing in a memory sub-system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1447257A (zh) * 2002-04-09 2003-10-08 威盛电子股份有限公司 分布式共享内存系统数据维护方法
US6950820B2 (en) * 2001-02-23 2005-09-27 International Business Machines Corporation Maintaining consistency of a global resource in a distributed peer process environment
CN101753608A (zh) * 2008-12-09 2010-06-23 中国移动通信集团公司 分布式系统的调度方法及系统
US7788346B2 (en) * 2002-03-01 2010-08-31 Oracle America, Inc. System and method for state data back-up in a distributed data system
CN101826073A (zh) * 2009-03-06 2010-09-08 华为技术有限公司 分布式数据库同步方法、设备及系统
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US6574749B1 (en) * 1999-10-29 2003-06-03 Nortel Networks Limited Reliable distributed shared memory
US20010039548A1 (en) * 2000-04-27 2001-11-08 Yoshitake Shinkai File replication system, replication control method, and storage medium
US7707175B1 (en) * 2002-05-02 2010-04-27 Palmsource Inc. Single ended synchronization agents
US7549080B1 (en) * 2002-08-27 2009-06-16 At&T Corp Asymmetric data mirroring
US7761421B2 (en) * 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
US7827144B1 (en) * 2005-11-17 2010-11-02 Hewlett-Packard Development Company, L.P. Methods of reading and writing data
US20070208790A1 (en) * 2006-03-06 2007-09-06 Reuter James M Distributed data-storage system
US7668878B2 (en) * 2006-07-31 2010-02-23 Oracle International Corporation Replicating data between heterogeneous data systems
US20090083441A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US8151062B2 (en) 2008-10-26 2012-04-03 Microsoft Corporation Consistency models in a distributed store
CN101753609B (zh) * 2008-12-15 2012-09-19 中国移动通信集团公司 分布式系统版本控制方法、节点及系统
MY155432A (en) * 2010-03-18 2015-10-15 Nuodb Inc Database management system
US8954385B2 (en) * 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US9110724B2 (en) * 2011-02-08 2015-08-18 Microsoft Technology Licensing, Llc Selecting computing nodes in cloud service using replication topologies
US9218404B2 (en) * 2011-06-06 2015-12-22 Sybase, Inc. Replication support for heterogeneous data types

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950820B2 (en) * 2001-02-23 2005-09-27 International Business Machines Corporation Maintaining consistency of a global resource in a distributed peer process environment
US7788346B2 (en) * 2002-03-01 2010-08-31 Oracle America, Inc. System and method for state data back-up in a distributed data system
CN1447257A (zh) * 2002-04-09 2003-10-08 威盛电子股份有限公司 分布式共享内存系统数据维护方法
CN101753608A (zh) * 2008-12-09 2010-06-23 中国移动通信集团公司 分布式系统的调度方法及系统
CN101826073A (zh) * 2009-03-06 2010-09-08 华为技术有限公司 分布式数据库同步方法、设备及系统
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统

Also Published As

Publication number Publication date
WO2011157156A2 (zh) 2011-12-22
WO2011157156A3 (zh) 2012-04-19
US20140089259A1 (en) 2014-03-27
US9639588B2 (en) 2017-05-02
CN102265277A (zh) 2011-11-30

Similar Documents

Publication Publication Date Title
CN102265277B (zh) 数据存储系统的操作方法和装置
JP6044539B2 (ja) 分散ストレージシステムおよび方法
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN104965850B (zh) 一种基于开源技术的数据库高可用实现方法
CN107148617B (zh) 日志协调存储组的自动配置
JP7549137B2 (ja) トランザクション処理方法、システム、装置、機器、及びプログラム
US20030229764A1 (en) Data storage subsystem
CN111078667B (zh) 一种数据迁移的方法以及相关装置
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
CN103180852A (zh) 分布式数据处理方法及装置
EP4213038A1 (en) Data processing method and apparatus based on distributed storage, device, and medium
CN109739435B (zh) 文件存储和更新方法及装置
CN111291062B (zh) 数据同步写入方法、装置、计算机设备及存储介质
CN116917880A (zh) 分布式数据库远程备份
CN103902405A (zh) 一种准连续性数据复制方法及装置
CN111930716A (zh) 一种数据库扩容方法、装置及系统
CN102479118A (zh) 数据块的增量备份方法
CN113905054B (zh) 基于RDMA的Kudu集群数据同步方法、装置、系统
CN109726211B (zh) 一种分布式时序数据库
US11042454B1 (en) Restoration of a data source
CN103428288A (zh) 基于分区状态表和协调节点的副本同步方法
CN106855869B (zh) 一种实现数据库高可用的方法、装置和系统
CN113253924B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN110569231B (zh) 数据迁移方法、装置、设备和介质
CN109857523B (zh) 一种用于实现数据库高可用性的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210427

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right