CN107908370B - 数据存储方法及装置 - Google Patents
数据存储方法及装置 Download PDFInfo
- Publication number
- CN107908370B CN107908370B CN201711239784.3A CN201711239784A CN107908370B CN 107908370 B CN107908370 B CN 107908370B CN 201711239784 A CN201711239784 A CN 201711239784A CN 107908370 B CN107908370 B CN 107908370B
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- storage node
- file
- 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
Links
Images
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据存储方法及装置,应用于存储节点,所述方法包括:在存储节点为第一待存储数据的主存储节点时,如果存储节点和第一待存储数据的从存储节点均已完成第一待存储数据对应的日志文件的写入操作,则对第一待存储数据进行数据文件的写入操作,并通知从存储节点对第一待存储数据进行数据文件的写入操作;在存储节点或者存储节点和第一待存储数据的从存储节点中的任意一个存储节点成功写入第一待存储数据时,向第一待存储数据的来源客户端发送第一待存储数据可读通知。如此,既保证了数据存储的可靠性,又提高了数据存储的效率。
Description
技术领域
本申请涉及数据存储技术领域,具体而言,涉及一种数据存储方法及装置。
背景技术
在分布式数据存储系统中,为了提高数据的可靠性,通常将数据分多个副本存储在不同的存储节点中。在一个存储节点出现异常时,可以从其他存储节点读出数据。
具体的,在存储数据时,通常采用先写日志文件再写数据文件的方式来防止掉电等异常情况导致数据被破坏。这种方式,需要保证日志文件间及数据文件间的强一致性(即,存储该数据的各个存储节点上的日志文件及数据文件均是一致的),导致数据存储的效率不高。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种数据存储方法,应用于存储节点,所述方法包括:
在所述存储节点为第一待存储数据的主存储节点时,如果所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则对所述第一待存储数据进行数据文件的写入操作,并通知所述从存储节点对所述第一待存储数据进行数据文件的写入操作;
在所述存储节点或者所述存储节点和所述第一待存储数据的从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,向所述第一待存储数据的来源客户端发送所述第一待存储数据可读通知。
可选地,在上述方法中,所述方法还包括:
在所述存储节点成功写入所述第一待存储数据的数据文件后,删除所述第一待存储数据对应的日志文件。
可选地,在上述方法中,所述方法还包括:
在所述存储节点未成功写入所述第一待存储数据的数据文件时,从所述第一待存储数据对应的日志文件中获取所述第一待存储数据并进行数据文件的写入操作。
可选地,在上述方法中,所述方法还包括:
在所述存储节点为第二待存储数据的从存储节点时,如果未成功写入所述第二待存储数据的数据文件,则从所述第二待存储数据对应的日志文件中获取所述第二待存储数据并进行数据文件的写入操作;如果成功写入所述第二待存储数据的数据文件,则删除所述第二待存储数据对应的日志文件。
可选地,在上述方法中,在所述存储节点为第一待存储数据的主存储节点时,所述方法还包括:
若所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则所述存储节点通知所述第一待存储数据的来源客户端所述第一待存储数据写入完成。
本申请的另一目的在于提供一种数据存储装置,应用于存储节点,所述装置包括:
写数据模块,用于在所述存储节点为第一待存储数据的主存储节点时,如果所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则对所述第一待存储数据进行对应的数据文件的写入操作,并通知所述从存储节点对所述第一待存储数据进行对应的数据文件的写入操作;
发送模块,用于在所述存储节点或者所述存储节点和所述从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,通知所述第一待存储数据的来源客户端所述第一待存储数据可读通知。
可选地,在上述装置中,所述写数据模块还用于在所述存储节点成功写入所述第一待存储数据的数据文件后,删除所述第一待存储数据对应的日志文件。
可选地,在上述装置中,所述写数据模块还用于在所述存储节点未成功写入所述第一待存储数据的数据文件时,从所述第一待存储数据对应的日志文件中获取所述第一待存储数据并进行数据文件的写入操作。
可选地,在上述装置中,所述写数据模块还用于在所述存储节点为第二待存储数据的从存储节点时,如果未成功写入所述第二待存储数据的数据文件,则从所述第二待存储数据对应的日志文件中获取所述第二待存储数据并进行数据文件的写入操作;如果成功写入所述第二待存储数据的数据文件,则删除所述第二待存储数据对应的日志文件。
可选地,在上述装置中,所述装置还包括:
通知模块,用于在所述存储节点为第一待存储数据的主存储节点时,若所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,通知所述第一待存储数据的来源客户端所述第一待存储数据写入完成。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的数据存储方法及装置,存储待存储数据的不同存储节点在进行相应的写日志文件的操作时,待这些存储节点均成功完成写日志文件的操作才判断为写日志成功。在写数据文件时,待主存储节点成功完成写数据文件的操作或任一存储节点成功完成写数据文件的操作,即反馈待存储数据的来源客户端数据可读。如此,通过日志文件的强一致性保证数据写入的正确性,通过数据文件的弱一致性减少数据写入的等待时间,既保证了数据存储的可靠性,又提高了数据存储的效率,极大的提升了用户的体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为现有技术中数据存储方法流程示意图;
图2为本申请实施例提供的存储节点的应用场景示意图之一;
图3为本申请实施例提供的存储节点的应用场景示意图之二;
图4为本申请实施例提供的数据存储方法流程示意图;
图5为本申请实施例提供的数据存储装置的功能模块示意图之一;
图6为本申请实施例提供的数据存储装置的功能模块示意图之二。
图标:10(20)-分布式数据存储系统;101(102、103、201、202、203)-存储节点;110-数据存储装置;111-写数据模块;112-发送模块;113-通知模块;204-NAS服务设备;300-用户客户终端。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
现有的分布式数据存储系统在进行数据存储时,可以为待存储数据确定一个主存储节点和至少一个从存储节点进行分布式存储,各存储节点可以采用先写日志文件再写数据文件的机制。例如,存储节点在接收到待存储的待存储数据时,先将所述待存储数据写入日志存储区域作为日志文件,之后再将所述待存储数据写入数据存储区域作为数据文件,如SQL的预写式日志(Write-Ahead Logging,WAL)机制。利用这类机制可以减少磁盘的I/O操作,并且在出现异常掉电等场景时,数据可以通过存储节点保留的日志文件进行数据恢复。
在采用上述存储机制的数据存储系统中,对同一数据的日志文件和数据文件常都采用强一致性来保证数据的可靠性。例如,请参照图1,现有技术中常用的数据存储方法包括以下步骤。
S110,主存储节点接收待存储的数据,开始执行写日志文件的操作,并通知从存储节点写日志文件。
S120,主存储节点在所有存储节点均成功完成写日志文件的操作后,再开始执行写数据文件的操作,并通知从存储节点写数据文件。如此,保证所述日志文件的强一致性。
S130,所述主存储节点在所有存储节点均成功完成所述写数据文件的操作后,再通知客户端数据可读,如此,保证所述数据文件的强一致性。
经过发明人大量研究发现,由于存储数据的各个存储节点的性能或当前工作负载情况不一,若某一存储节点在写数据文件时的速度较慢,会导致整个系统等待时间过长,严重影响数据存储的效率。
为了解决上述问题,在本实施例中,发明人提出一种数据存储方法及装置,在写日志文件时,采用日志文件的强一致性保证数据的稳定可靠,在写数据文件时,采用数据文件的弱一致性(即,存储数据的各存储节点上的数据文件不要求是一致的)提高数据存储效率。以下在本实施例中对所述数据存储方法及装置进行详细阐述。
可选地,在本实施例一种可能的实施方式中,提供一种如图2所示的分布式数据存储系统10,分布式数据存储系统10包括至少两个相对独立工作的存储节点,如图2所示的存储节点101、存储节点102和存储节点103,这些存储节点均位于不同的存储设备(例如,主机)上。用户客户端200在需要将数据存储到分布式数据存储系统10中时,用户客户端200可以对待存储数据进行拆分;针对拆分后的每条数据,作为拆分后的该条数据的来源客户端为该条数据确定存储该条数据的主存储节点和从存储节点,并将该条数据发送给主存储节点,由主存储节点负责汇报自身和从存储节点完成数据存储的情况。
需要说明的是,在分布式数据存储系统10中,用户客户端200确定拆分后的每条数据的主存储节点和从存储节点的过程为现有技术,在此不再详述。例如,拆分后的数据是数据1和数据2,用户客户端200为数据1确定出的主存储节点是存储节点101,从存储节点是存储节点102和存储节点103;用户客户端200为数据2确定出的主存储节点是存储节点102,从存储节点是存储节点101和存储节点103。
可选地,在本实施例另一种可能实施方式中,提供一种如图3所示的分布式数据存储系统20,所述数据存储系统20包括至少两个相对独立工作的存储节点(如图3所示的存储节点201、存储节点202和存储节点203)及NAS(Network Attached Storage,网络附属存储)服务设备204,这些存储节点均位于不同的存储设备(例如,主机)上。
NAS服务设备204可以接收用户客户端300发送的待存储数据,对待存储数据进行拆分;针对拆分后的每条数据,作为拆分后的该条数据的来源客户端为该条数据确定存储该条数据的主存储节点和从存储节点,并将该条数据发送给主存储节点,由主存储节点负责汇报自身和从存储节点完成数据存储的情况。
需要说明的是,在分布式数据存储系统20中,NAS服务设备204确定拆分后的每条数据的主存储节点和从存储节点的过程为现有技术,在此不再详述。例如,拆分后的数据是数据11和数据12,NAS服务设备204为数据11确定出的主存储节点是存储节点201,从存储节点是存储节点202和存储节点203;NAS服务设备204为数据12确定出的主存储节点是存储节点202,从存储节点是存储节点201和存储节点203。
当然,在另一种分布式数据存储系统20中,NAS服务设备204还可以集成在部分或者全部存储节点所在的存储设备上,在这种情况下,由接收到来自用户客户端的待存储数据的存储设备对待存储数据进行拆分,后续处理过程同上述NAS服务设备的处理过程,在此不再赘述。
基于上述分布式数据存储系统架构,请参照图4,本实施例提供一种数据存储方法,包括以下步骤:步骤S210,在存储节点为第一待存储数据的主存储节点时,如果所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则对所述第一待存储数据进行数据文件的写入操作,并通知所述从存储节点对所述第一待存储数据进行对应的数据文件的写入操作。
以图2所示的分布式数据系统为例,假设所述第一待存储数据(用户客户端200进行数据拆分后的一条数据)的主存储节点是存储节点101,从存储节点是存储节点102和存储节点103,存储节点101接收用户客户端200发送的携带有所述第一待存储数据和从存储节点的身份信息的写请求;之后,存储节点101依据所述第一待存储数据进行相应日志文件的写入操作,同时,依据从存储节点的身份信息通知存储节点102和存储节点103进行所述第一待存储数据的日志文件的写入操作,存储节点102或者存储节点103写日志文件成功后,通知存储节点101日志文件成功写入;最后,存储节点101在确定出自身、存储节点102和存储节点103均已完成所述第一待存储数据对应的日志文件的写入操作后,通知用户客户端200数据写入完成。
接下来,存储节点101开始进行所述第一待存储数据对应的数据文件的写入操作,同时也通知存储节点102和存储节点103进行所述第一待存储数据对应的数据文件的写入操作。
如此,在本实施例中,当所述第一待存储数据的所有存储节点均完成对应日志文件的写入操作时才认为所述第一存储数据写入完成,然后开始执行数据文件的写入操作,通过所述日志文件的强一致性保证存储的数据可靠。
步骤S220,在所述存储节点或者所述存储节点和所述第一待存储数据的从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,向所述第一待存储数据的来源客户端发送所述第一待存储数据可读通知。
可选地,在本实施例的一种实施方式中,仍以解释上述步骤S210时的例子为例,存储节点101在成功执行所述写数据文件的操作时,立即向用户客户端200发送所述第一待存储数据的可读通知,后续用户客户端200的处理流程为现有技术,在此不再详述。
如此,所述第一待存储数据的主存储节点不需要等待其他从存储节点反馈的写数据文件的结果,可以防止因为某个从存储节点执行写数据文件的操作的时间过长,而导致存储效率较低的问题,并且降低了慢盘的影响率。
可选地,在本实施例的另一种实施方式中,所述第一待存储数据的主存储节点和从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,向所述第一待存储数据的来源客户端发送所述第一待存储数据可读通知,后续用户客户端的处理流程为现有技术,在此不再详述。
在本实施方式中,一旦所述第一待存储数据的某个从存储节点在成功执行所述写数据文件的操作后,该从存储节点向所述第一待存储数据的主存储节点发送写数据文件成功通知,以由主存储节点向所述第一待存储数据的来源客户端发送所述第一待存储数据可读通知,进而提高存储效率,降低慢盘的影响率。
可选地,在本实施例中,在所述存储节点作为所述第一待存储数据的主存储节点时,在所述存储节点成功写入数据文件后,删除所述第一待存储数据对应的日志文件;在所述存储节点未成功写入所述第一待存储数据的数据文件时,从所述第一待存储数据对应的日志文件中获取所述第一待存储数据并进行数据文件的写入操作。
进一步地,在本实施例中,所述存储节点还可以是其他待存储数据的从存储节点。在所述存储节点作为第二待存储数据的从存储节点时,可以根据所述第二待存储数据的主存储节点的通知对所述第二待存储数据进行数据文件的写入操作。如果未成功写入所述第二待存储数据的数据文件,则从所述第二待存储数据对应的日志文件中获取所述第二待存储数据并进行数据文件的写入操作;如果成功写入所述第二待存储数据的数据文件,则删除所述第二待存储数据对应的日志文件。
请参照图5,本实施例还提供一种应用于图1所示存储节点的数据存储装置110,所述装置包括写数据模块111及发送模块112。
所述写数据模块111,用于在所述存储节点为第一待存储数据的主存储节点时,如果所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则对所述第一待存储数据进行对应的数据文件的写入操作,并通知所述从存储节点对所述第一待存储数据进行对应的数据文件的写入操作。
本实施例中,所述写数据模块111可用于执行图4所示的步骤S210,关于所述写数据模块111的具体描述可参对所述步骤S210的描述。
所述发送模块112,用于在所述存储节点或者所述存储节点和所述从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,通知所述第一待存储数据的来源客户端所述第一待存储数据可读通知。
本实施例中,所述发送模块112可用于执行图4所示的步骤S220,关于所述发送模块112的具体描述可参对所述步骤S220的描述。
可选地,在本实施例中,所述写数据模块111还用于在所述存储节点成功写入所述第一待存储数据的数据文件后,删除所述第一待存储数据对应的日志文件。
可选地,在本实施例中,所述写数据模块111还用于在所述存储节点未成功写入所述第一待存储数据的数据文件时,从所述第一待存储数据对应的日志文件中获取所述第一待存储数据并进行数据文件的写入操作。
可选地,在本实施例中,所述写数据模块111还用于在所述存储节点为第二待存储数据的从存储节点时,如果未成功写入所述第二待存储数据的数据文件,则从所述第二待存储数据对应的日志文件中获取所述第二待存储数据并进行数据文件的写入操作;如果成功写入所述第二待存储数据的数据文件,则删除所述第二待存储数据对应的日志文件。
可选地,请参照图6,在本实施例中,所述装置还可以包括通知模块113。
所述通知模块113,用于在所述存储节点为第一待存储数据的主存储节点时,若所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,通知所述第一待存储数据的来源客户端所述第一待存储数据写入完成。
综上所述,本申请提供的数据存储方法及装置,存储待存储数据的不同存储节点在进行相应的写日志文件的操作时,待这些存储节点均成功完成写日志文件的操作才判断为写日志成功。在写数据文件时,待主存储节点成功完成写数据文件的操作或任一存储节点成功完成写数据文件的操作,即反馈待存储数据的来源客户端数据可读。如此,通过日志文件的强一致性保证数据写入的正确性,通过数据文件的弱一致性减少数据写入的等待时间,既保证了数据存储的可靠性,又提高了数据存储的效率,极大的提升了用户的体验。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据存储方法,应用于存储节点,其特征在于,所述方法包括:
在所述存储节点为第一待存储数据的主存储节点时,如果所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则对所述第一待存储数据进行数据文件的写入操作,并通知所述从存储节点对所述第一待存储数据进行数据文件的写入操作;
在所述存储节点或者所述存储节点和所述第一待存储数据的从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,向所述第一待存储数据的来源客户端发送所述第一待存储数据可读通知。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述存储节点成功写入所述第一待存储数据的数据文件后,删除所述第一待存储数据对应的日志文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述存储节点未成功写入所述第一待存储数据的数据文件时,从所述第一待存储数据对应的日志文件中获取所述第一待存储数据并进行数据文件的写入操作。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述存储节点为第二待存储数据的从存储节点时,如果未成功写入所述第二待存储数据的数据文件,则从所述第二待存储数据对应的日志文件中获取所述第二待存储数据并进行数据文件的写入操作;如果成功写入所述第二待存储数据的数据文件,则删除所述第二待存储数据对应的日志文件。
5.根据权利要求1所述的方法,其特征在于,在所述存储节点为第一待存储数据的主存储节点时,所述方法还包括:
若所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则所述存储节点通知所述第一待存储数据的来源客户端所述第一待存储数据写入完成。
6.一种数据存储装置,应用于存储节点,其特征在于,所述装置包括:
写数据模块,用于在所述存储节点为第一待存储数据的主存储节点时,如果所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,则对所述第一待存储数据进行对应的数据文件的写入操作,并通知所述从存储节点对所述第一待存储数据进行对应的数据文件的写入操作;
发送模块,用于在所述存储节点或者所述存储节点和所述从存储节点中的任意一个存储节点成功写入所述第一待存储数据时,通知所述第一待存储数据的来源客户端所述第一待存储数据可读通知。
7.根据权利要求6所述的装置,其特征在于,所述写数据模块还用于在所述存储节点成功写入所述第一待存储数据的数据文件后,删除所述第一待存储数据对应的日志文件。
8.根据权利要求6所述的装置,其特征在于,所述写数据模块还用于在所述存储节点未成功写入所述第一待存储数据的数据文件时,从所述第一待存储数据对应的日志文件中获取所述第一待存储数据并进行数据文件的写入操作。
9.根据权利要求6所述的装置,其特征在于,所述写数据模块还用于在所述存储节点为第二待存储数据的从存储节点时,如果未成功写入所述第二待存储数据的数据文件,则从所述第二待存储数据对应的日志文件中获取所述第二待存储数据并进行数据文件的写入操作;如果成功写入所述第二待存储数据的数据文件,则删除所述第二待存储数据对应的日志文件。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
通知模块,用于在所述存储节点为第一待存储数据的主存储节点时,若所述存储节点和所述第一待存储数据的从存储节点均已完成所述第一待存储数据对应的日志文件的写入操作,通知所述第一待存储数据的来源客户端所述第一待存储数据写入完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239784.3A CN107908370B (zh) | 2017-11-30 | 2017-11-30 | 数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239784.3A CN107908370B (zh) | 2017-11-30 | 2017-11-30 | 数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107908370A CN107908370A (zh) | 2018-04-13 |
CN107908370B true CN107908370B (zh) | 2021-07-06 |
Family
ID=61849621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711239784.3A Active CN107908370B (zh) | 2017-11-30 | 2017-11-30 | 数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908370B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947733A (zh) * | 2019-03-29 | 2019-06-28 | 众安信息技术服务有限公司 | 数据存储装置与方法 |
CN110554839A (zh) * | 2019-07-30 | 2019-12-10 | 华为技术有限公司 | 分布式存储系统访问方法、客户端及计算机程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库系统及其读写方法 |
CN105335098A (zh) * | 2015-09-25 | 2016-02-17 | 华中科技大学 | 一种基于存储级内存的日志文件系统性能提高方法 |
CN106406750A (zh) * | 2016-08-23 | 2017-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据操作方法及系统 |
CN106484311A (zh) * | 2015-08-31 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010106991A1 (ja) * | 2009-03-19 | 2010-09-23 | 株式会社ココリンク | データの複製管理方法及びシステム |
US9395936B2 (en) * | 2013-04-22 | 2016-07-19 | Hitachi, Ltd. | Method and apparatus for remote storage performance data copy |
CN105787129B (zh) * | 2016-03-29 | 2020-06-23 | 联想(北京)有限公司 | 一种数据存储方法和电子设备 |
CN106899648B (zh) * | 2016-06-20 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
-
2017
- 2017-11-30 CN CN201711239784.3A patent/CN107908370B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库系统及其读写方法 |
CN106484311A (zh) * | 2015-08-31 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据处理方法及装置 |
CN105335098A (zh) * | 2015-09-25 | 2016-02-17 | 华中科技大学 | 一种基于存储级内存的日志文件系统性能提高方法 |
CN106406750A (zh) * | 2016-08-23 | 2017-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据操作方法及系统 |
Non-Patent Citations (1)
Title |
---|
"新型非易失存储环境下事务型数据管理技术研究";潘巍;《软件学报》;20170131;第28卷(第1期);第59-83页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107908370A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9785521B2 (en) | Fault tolerant architecture for distributed computing systems | |
US9934107B1 (en) | Designating backup nodes and backing up in parallel in a high-availability environment | |
US10152382B2 (en) | Method and system for monitoring virtual machine cluster | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
US8250202B2 (en) | Distributed notification and action mechanism for mirroring-related events | |
US9778998B2 (en) | Data restoration method and system | |
US9098439B2 (en) | Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs | |
CN110543386B (zh) | 一种数据存储方法、装置、设备和存储介质 | |
CN107506266B (zh) | 一种数据恢复方法及系统 | |
US9864772B2 (en) | Log-shipping data replication with early log record fetching | |
EP2976714B1 (en) | Method and system for byzantine fault tolerant data replication | |
WO2019020081A1 (zh) | 分布式系统及其故障恢复方法、装置、产品和存储介质 | |
US20120278429A1 (en) | Cluster system, synchronization controlling method, server, and synchronization controlling program | |
CN106878363A (zh) | 一种信息处理方法、装置及系统 | |
US11748215B2 (en) | Log management method, server, and database system | |
CN109165112B (zh) | 一种元数据集群的故障恢复方法、系统及相关组件 | |
CN106815094B (zh) | 一种用于实现主备同步模式下事务提交的方法与设备 | |
CN107908370B (zh) | 数据存储方法及装置 | |
CN105068894A (zh) | 基于LVM镜像实现Linux系统存储设备高可用的方法和装置 | |
CN108595287B (zh) | 基于纠删码的数据截断方法及装置 | |
US10169441B2 (en) | Synchronous data replication in a content management system | |
US9031969B2 (en) | Guaranteed in-flight SQL insert operation support during an RAC database failover | |
CN107526652B (zh) | 一种数据同步方法及存储设备 | |
CN111226200A (zh) | 为分布式应用创建一致性快照的方法、装置和分布式系统 | |
CN110658989B (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 |