CN108616598A - 数据同步方法、装置和分布式存储系统 - Google Patents
数据同步方法、装置和分布式存储系统 Download PDFInfo
- Publication number
- CN108616598A CN108616598A CN201810447303.6A CN201810447303A CN108616598A CN 108616598 A CN108616598 A CN 108616598A CN 201810447303 A CN201810447303 A CN 201810447303A CN 108616598 A CN108616598 A CN 108616598A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data
- main storage
- log
- operation request
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Abstract
本公开提供了一种数据同步方法、装置和分布式存储系统,属于数据存储技术领域。本公开提供的数据同步方法、装置和分布式存储系统,主存储设备将日志信息发送至从存储设备后,无需再将数据操作请求中的数据发送至从存储设备,以使从存储设备更新本地数据,节约了主存储设备与从存储设备之间的网络消耗,节省网络带宽。主存储设备在接收到从存储设备返回的写日志成功消息达到或超过预设阈值后,在主存储设备上启动数据操作请求对应的数据操作,当主存储设备完成数据操作时,向客户端发送数据操作成功通知。主存储设备无需等待从存储设备均完成数据更新操作后,再向客户端发送数据操作成功通知,提高了数据操作的效率,从而提高了用户体验。
Description
技术领域
本公开涉及数据存储技术领域,尤其是涉及一种数据同步方法、装置和分布式存储系统。
背景技术
随着高清视频、图像处理、视频监控等技术的发展,用户数据容量逐渐增大,同时用户对存储数据的可靠性和性能的要求也在同步提高。目前分布式存储系统为保证存储数据的可靠性,通常采用多副本存储的方式,即一份用户数据被保存多份,当其中一份数据损坏时,可以从其它副本中获取数据,保证数据的高可靠。因此,一份数据的多份副本之间需要保持数据的一致性,即多份副本的数据需要同步更新。
分布式存储系统设置有客户端和多个存储设备,客户端可以理解为分布式存储系统的数据处理接口,该客户端与分布式存储系统的用户接口连接,用于接收来自用户接口的读/写数据等数据操作任务或向用户接口提供读/写数据等数据操作任务的处理结果。如果客户端接收到写数据任务,首先确定此次写数据任务的主存储设备,向主存储设备发送写数据请求。主存储设备收到写数据请求后,先在本地写日志,将日志推送至各个从存储设备。从存储设备将接收到的日志内容写入本地日志中,然后向主存储设备发送写日志成功通知。主存储设备收到所有从存储设备的写日志成功通知后,才开始写数据。主存储设备首先向本地数据区写入此次更新的数据,然后将本次写的数据发送给从存储设备。从存储设备将接收到的数据写入本地数据区后,向主存储设备发送写数据成功通知。主存储设备接收到所有从存储设备发送的写数据成功通知后,才通知客户端此处写数据任务完成。
上述主存储设备将数据推送至从存储设备的数据同步方式,占用了主存储设备与从存储设备之间的网络带宽。主存储设备需等待所有从存储设备均完成写数据之后,才通知客户端写数据任务完成,容易造成长尾效应,影响数据操作的效率。并且,由于主存储设备需要等待写数据任务完成之后,才能继续为客户端提供其它服务,数据操作的效率低,也会影响用户的其它业务。
发明内容
有鉴于此,本公开的目的在于提供一种数据同步方法、装置和分布式存储系统,可以节约主存储设备与从存储设备之间的网络消耗,同时提高数据操作的效率。
为了实现上述目的,本公开采用的技术方案如下:
第一方面,本公开提供了一种数据同步方法,应用于分布式存储系统中的主存储设备,所述方法包括:
接收客户端的数据操作请求,所述数据操作请求的操作类型包括写数据类型和/或修改数据类型;
根据所述数据操作请求的操作类型在本地日志系统添加日志信息;
将所述日志信息发送至所述数据操作请求对应的从存储设备;
接收各个所述从存储设备返回的写日志成功消息;
如果接收到的所述写日志成功消息达到或超过预设阈值,在所述主存储设备上启动所述数据操作请求对应的数据操作;
当所述主存储设备完成所述数据操作时,向所述客户端发送数据操作成功通知。
第二方面,本公开提供了一种数据同步方法,应用于分布式存储系统中的从存储设备,所述方法包括:
接收主存储设备发送的日志信息;其中,所述日志信息为所述主存储设备根据客户端的数据操作请求生成的日志信息;
将所述日志信息添加至所述从存储设备的日志系统;
向所述主存储设备发送写日志成功消息;
根据所述从存储设备的日志系统更新所述从存储设备的本地数据。
第三方面,本公开提供了一种数据同步装置,应用于分布式存储系统中的主存储设备,所述装置包括:
主日志添加模块,用于接收客户端的数据操作请求,根据所述数据操作请求的操作类型在本地日志系统添加日志信息;所述数据操作请求的操作类型包括写数据类型和/或修改数据类型;
日志推送模块,用于将所述日志信息发送至所述数据操作请求对应的从存储设备;
消息接收模块,用于接收各个所述从存储设备返回的写日志成功消息;
数据操作模块,用于如果接收到的所述写日志成功消息达到或超过预设阈值,在所述主存储设备上启动所述数据操作请求对应的数据操作;
通知发送模块,用于当所述主存储设备完成所述数据操作时,向所述客户端发送数据操作成功通知。
第四方面,本公开提供了一种数据同步装置,应用于分布式存储系统中的从存储设备,所述装置包括:
从日志添加模块,用于接收主存储设备发送的日志信息,将所述日志信息添加至所述从存储设备的日志系统;其中,所述日志信息为所述主存储设备根据客户端的数据操作请求生成的日志信息;
消息发送模块,用于向所述主存储设备发送写日志成功消息;
数据更新模块,用于根据所述从存储设备的日志系统更新所述从存储设备的本地数据。
第五方面,本公开提供了一种分布式存储系统,包括主存储设备和与所述主存储设备连接的从存储设备;
所述主存储设备上设置有第三方面所述的数据同步装置;所述从存储设备上设置有第四方面所述的数据同步装置。
上述数据同步方法、装置和分布式存储系统,主存储设备根据客户端的数据操作请求在本地日志系统添加日志信息后,将日志信息发送至主存储设备对应的从存储设备,以使从存储设备将日志信息添加至从存储设备的日志系统,并根据从存储设备的日志系统更新从存储设备的本地数据。因而,主存储设备无需再将数据操作请求中的数据发送至从存储设备,以使从存储设备更新本地数据,节约了主存储设备与从存储设备之间的网络消耗,节省网络带宽。主存储设备在接收到从存储设备返回的写日志成功消息达到或超过预设阈值后,在主存储设备上启动数据操作请求对应的数据操作,当主存储设备完成数据操作时,向客户端发送数据操作成功通知。主存储设备无需等待从存储设备均完成数据更新操作后,再向客户端发送数据操作成功通知,提高了数据操作的效率,从而提高了用户体验。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施方式提供的一种数据同步方法的应用环境示意图;
图2为现有的数据同步方法的交互图;
图3为本公开实施方式提供的一种数据同步方法的流程图;
图4为本公开实施方式提供的另一种数据同步方法的流程图;
图5为本公开实施方式提供的数据同步方法的交互图;
图6为本公开实施方式提供的一种数据同步装置的结构框图;
图7为本公开实施方式提供的另一种数据同步装置的结构框图;
图8为本公开实施方式提供的一种分布式存储系统的结构框图。
具体实施方式
为使本公开实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。
本公开实施方式提供的数据同步方法和装置的应用环境参见图1所示,图1示出了一种分布式存储系统,该分布式存储系统可以包括客户端10和与所述客户端10连接的多个存储设备。客户端10可以理解为分布式存储系统内部的数据处理接口,该客户端与分布式存储系统的用户接口连接,用于接收来自用户接口的读/写数据任务或向用户接口提供读/写数据任务的处理结果。在与客户端10进行数据交互时,多个存储设备可以通过选举或某种固定算法确定出主存储设备20和与主存储设备20对应的一个或多个从存储设备30。客户端10只与主存储设备20进行数据交互,主存储设备20再与从存储设备30进行数据交互。即客户端10通过主存储设备20与从存储设备30连接。在存储数据的过程中,主存储设备20用于保存数据的主副本,从存储设备30用于保存数据的从副本。
结合图2所示,在分布式存储系统中,现有的数据同步方法采取如下方式实现:客户端10接收到来自用户接口的写数据任务后,向主存储设备20发送写数据请求。主存储设备20接收到客户端10发送的写数据请求,先根据写数据请求在本地日志系统添加日志信息,然后将日志信息发送至与主存储设备20对应的各个从存储设备30。从存储设备30接收到主存储设备20发送的日志信息,将日志信息添加至从存储设备的日志系统,然后向主存储设备20发送写日志成功消息。主存储设备20接收到与其对应的所有从存储设备30均返回写日志成功消息后,将写数据请求中的数据写入主副本,同时将写数据请求中的数据发送至各个从存储设备30。从存储设备30将接收到的数据写入从副本,然后发送写数据成功消息。主存储设备20接收到与其对应的所有从存储设备30均返回写数据成功消息后,才通知客户端本次数据写入成功。
上述数据同步的过程,主存储设备20将需更新的数据推送至从存储设备30,等待主存储设备20及对应的所有从存储设备30均完成写数据操作后,才通知客户端10数据写入成功。该方法不仅占用了主存储设备与从存储设备之间的网络带宽,而且影响了数据操作的效率。具体地说,在接收到所有从存储设备30回复的写数据成功消息之前,主存储设备20是不处理客户端的新的服务请求的。如果分布式存储系统需要存储的数据的副本量较多时,如需要对一份数据存储6份副本时(在主存储设备20上存储1份主副本,在对应的5个从存储设备30上分别存储1个从副本),当5个从存储设备30中任意一个从存储设备的数据写入磁盘的速度慢,或者任意一个从存储设备由于网络拥塞等情况不能将写数据成功消息发送给主存储设备20,主存储设备20将一直等待,直到接收到最后一个从存储设备30回复的写数据成功消息。主存储设备20的业务是否能够继续进行取决于最后一个完成写入的从存储设备30,这种现象被称为长尾效应。当用户业务对IO延迟敏感时,这种长尾现象将会严重影响用户的业务。
为了解决上述技术问题,本公开实施方式提供了一种数据同步方法、装置和分布式存储系统,可以节约主存储设备与从存储设备之间的网络消耗,同时提高数据操作的效率。该技术可以采用相关的软件或硬件实现,下面通过具体实施方式进行描述。
图3示出了一种数据同步方法的流程图,该方法可以应用于图1所示的分布式存储系统中的主存储设备20。如图3所示,该方法包括如下步骤:
步骤S302,接收客户端的数据操作请求。
客户端用于与分布式存储系统的用户接口连接,接收来自用户接口的数据操作任务,根据数据操作任务生成数据操作请求,将数据操作请求发送至此次数据操作请求对应的主存储设备。主存储设备和从存储设备是相对于每次的数据操作请求而言的,每次的数据操作请求对应的主存储设备和从存储设备可以通过相关主从设备选择机制确定。数据操作请求中可以包括数据和操作类型,其中,数据操作请求的操作类型可以包括但不限于写数据类型和修改数据类型。
步骤S304,根据上述数据操作请求的操作类型在本地日志系统添加日志信息。
本地日志系统用于记录每次数据操作的信息。由于在主存储设备将数据写入磁盘的过程中,如果主存储设备发生突然断电等异常事件,会引起磁盘上数据的损坏,本地日志系统可以防止上述异常事件破坏用户数据。
主存储设备接收到客户端发送的数据操作请求,在向磁盘中写入数据之前,先根据数据操作请求生成日志信息,将日志信息添加至本地日志系统中。其中,日志信息可以包括操作类型,数据存储地址和数据。操作类型和数据来源于数据操作请求。如果数据操作请求的操作类型为写数据类型,主存储设备为待写入的数据分配数据存储地址,将该数据存储地址添加至日志信息中。如果数据操作请求的操作类型为修改数据类型,主存储设备查找为待更新的数据对应的数据存储地址,将该数据存储地址添加至日志信息中。
将日志信息添加至本地日志系统之后,如果在数据写入磁盘的过程中发生断电等异常事件,导致磁盘上的数据被损坏。在异常事件恢复后,可以从本地日志系统的日志信息中读取数据,以恢复磁盘上的数据,防止用户数据损坏或丢失。
步骤S306,将日志信息发送至主存储设备对应的从存储设备。
主存储设备将日志信息推送至对应的各个从存储设备。从存储设备将日志信息添加至从存储设备的日志系统,然后向主存储设备返回写日志成功消息。从存储设备可以根据从存储设备的日志系统更新本地数据,而无需主存储设备再向从存储设备发送数据,从而节约了主存储设备与从存储设备之间的网络消耗,节省了带宽。
步骤S308,接收各个从存储设备返回的写日志成功消息。
步骤S310,如果接收到的写日志成功消息达到或超过预设阈值,在主存储设备上启动数据操作请求对应的数据操作。
如果接收到主存储设备对应的所有从存储设备均返回写日志成功消息,在主存储设备上启动数据操作请求对应的数据操作。或者,当从存储设备较多时,如果接收到主存储设备对应的部分从存储设备(达到设定数量)返回写日志成功消息,在主存储设备上启动数据操作请求对应的数据操作。
可选地,预设阈值可以是预先设定的数量,例如,如果接收到的写日志成功消息达到5个,就可以在主存储设备上启动数据操作请求对应的数据操作。预设阈值可以是设定的比例值,即如果接收到80%以上的从存储设备返回写日志成功消息,就可以在主存储设备上启动数据操作请求对应的数据操作。
在主存储设备上启动数据操作请求对应的数据操作的过程,具体包括:如果数据操作请求的操作类型为写数据类型,将数据操作请求中的数据写入日志信息中指定的数据存储地址。如果数据操作请求的操作类型为修改数据类型,使用数据操作请求中的数据替换日志信息中指定的数据存储地址上的原数据。其中,日志信息中指定的数据存储地址位于主存储设备对应的本地存储空间。
步骤S312,当主存储设备完成数据操作时,向客户端发送数据操作成功通知。
上述数据同步方法中,主存储设备在接收到从存储设备返回的写日志成功消息达到或超过预设阈值后,在主存储设备上启动数据操作请求对应的数据操作,当主存储设备完成数据操作时,向客户端发送数据操作成功通知。主存储设备无需等待从存储设备均完成数据更新操作后,再向客户端发送数据操作成功通知,提高了数据操作的效率,缓解了因数据操作效率低对用户其它业务造成的影响。
与上述方法相对应地,图4示出了另一种数据同步方法的流程图,该方法可以应用于图1所示的分布式存储系统中的从存储设备30。如图4所示,该方法包括如下步骤:
步骤S402,接收主存储设备发送的日志信息。
日志信息为主存储设备根据客户端的数据操作请求生成的,日志信息中包括操作类型,数据存储地址和数据。
步骤S404,将日志信息添加至从存储设备的日志系统。
步骤S406,向主存储设备发送写日志成功消息。
从存储设备完成将日志信息添加至日志系统的操作后,生成写日志成功消息,并将写日志成功消息发送至主存储设备,以使主存储设备在接收到的写日志成功消息达到或超过预设阈值时,在主存储设备上启动数据操作请求对应的数据操作,并当主存储设备完成数据操作时,向客户端发送数据操作成功通知。
步骤S408,根据从存储设备的日志系统更新从存储设备的本地数据。
从存储设备可以在完成将日志信息添加至日志系统的操作之后,根据添加的日志信息更新从存储设备的本地数据;也可以定期根据从存储设备的日志系统更新从存储设备的本地数据。例如,定时读取从存储设备的日志系统,将当前时刻读取的日志系统与上一时刻读取的日志系统进行比较,如果当前时刻读取的日志系统中存在新的日志信息,根据新的日志信息更新从存储设备的本地数据。
根据从存储设备的日志系统中的日志信息更新从存储设备的本地数据的过程,具体包括:如果日志信息中的操作类型为写数据类型,将日志信息中的数据写入日志信息中指定的数据存储地址。如果日志信息中的操作类型为修改数据类型,使用日志信息中的数据替换日志信息中指定的数据存储地址上的原数据。
上述数据同步方法中,从存储设备根据从存储设备的日志系统更新本地数据,而无需再从主存储设备获取数据,从而节约了主存储设备与从存储设备之间的网络消耗,节省网络带宽。同时,主存储设备无需等待从存储设备全部完成写数据操作之后,再向客户端发送数据操作成功通知,提高了数据操作的效率。
为了更便于理解,图5示出了本公开实施方式提供的数据同步方法的交互图。结合图5所示,客户端10接收到来自用户接口的数据操作任务后,向主存储设备20发送数据操作请求。该数据操作请求的操作类型可以包括写数据类型和修改数据类型。主存储设备20接收到客户端10发送的数据操作请求,根据数据操作请求在本地日志系统添加日志信息,然后将日志信息发送至与主存储设备20对应的各个从存储设备30。从存储设备30接收到主存储设备20发送的日志信息,将日志信息添加至从存储设备的日志系统,然后向主存储设备20发送写日志成功消息。从存储设备30可以根据从存储设备的日志系统更新本地数据。主存储设备20接收到的写日志成功消息达到或超过预设阈值后,在主存储设备20上启动数据操作请求对应的数据操作。当主存储设备20完成数据操作时,向客户端发送数据操作成功通知。
在该数据同步方法中,主存储设备根据客户端的数据操作请求在本地日志系统添加日志信息后,将日志信息发送至主存储设备对应的从存储设备,以使从存储设备将日志信息添加至从存储设备的日志系统,并根据从存储设备的日志系统更新从存储设备的本地数据。因而,主存储设备无需再将数据操作请求中的数据发送至从存储设备,以使从存储设备更新本地数据,节约了主存储设备与从存储设备之间的网络消耗,节省网络带宽。主存储设备在接收到从存储设备返回的写日志成功消息达到或超过预设阈值后,在主存储设备上启动数据操作请求对应的数据操作,当主存储设备完成数据操作时,向客户端发送数据操作成功通知。主存储设备无需等待从存储设备均完成数据更新操作后,再向客户端发送数据操作成功通知,提高了数据操作的效率,从而提高了用户体验。
与上述方法实施方式相对应地,本公开实施方式还提供了一种数据同步装置,该装置可以应用于图1所示的分布式存储系统中的主存储设备20中。如图6所示,该装置包括:
主日志添加模块61,用于接收客户端的数据操作请求,根据数据操作请求的操作类型在本地日志系统添加日志信息;其中,数据操作请求的操作类型包括写数据类型和修改数据类型;
日志推送模块62,用于将日志信息发送至数据操作请求对应的从存储设备;
消息接收模块63,用于接收各个从存储设备返回的写日志成功消息;
数据操作模块64,用于如果接收到的写日志成功消息达到或超过预设阈值,在主存储设备上启动数据操作请求对应的数据操作;
通知发送模块65,用于当主存储设备完成数据操作时,向客户端发送数据操作成功通知。
其中,数据操作模块64,还可以用于:如果接收到主存储设备对应的所有从存储设备均返回写日志成功消息,在主存储设备上启动所述数据操作请求对应的数据操作。数据操作模块64,还可以用于:如果数据操作请求的操作类型为写数据类型,将数据操作请求中的数据写入主存储设备对应的本地存储空间;如果数据操作请求的操作类型为修改数据类型,使用所述数据操作请求中的数据替换主存储设备对应的本地存储空间中的原数据。
相应地,本公开实施方式还提供了一种数据同步装置,该装置可以应用于图1所示的分布式存储系统中的从存储设备30中。如图7所示,该装置包括:
从日志添加模块71,用于接收主存储设备发送的日志信息,将日志信息添加至从存储设备的日志系统;其中,日志信息为主存储设备根据客户端的数据操作请求生成的日志信息;
消息发送模块72,用于向主存储设备发送写日志成功消息;
数据更新模块73,用于根据从存储设备的日志系统更新从存储设备的本地数据。
其中,数据更新模块73,还可以用于:定时读取从存储设备的日志系统;将当前时刻读取的日志系统与上一时刻读取的日志系统进行比较;如果当前时刻读取的日志系统中存在新的日志信息,根据新的日志信息更新从存储设备的本地数据。
采用本公开实施方式提供的数据同步装置,主存储设备根据客户端的数据操作请求在本地日志系统添加日志信息后,将日志信息发送至主存储设备对应的从存储设备,以使从存储设备将日志信息添加至从存储设备的日志系统,并根据从存储设备的日志系统更新从存储设备的本地数据。因而,主存储设备无需再将数据操作请求中的数据发送至从存储设备,以使从存储设备更新本地数据,节约了主存储设备与从存储设备之间的网络消耗,节省网络带宽。主存储设备在接收到从存储设备返回的写日志成功消息达到或超过预设阈值后,在主存储设备上启动数据操作请求对应的数据操作,当主存储设备完成数据操作时,向客户端发送数据操作成功通知。主存储设备无需等待从存储设备均完成数据更新操作后,再向客户端发送数据操作成功通知,提高了数据操作的效率,从而提高了用户体验。
本公开实施方式所提供的数据同步装置,其实现原理及产生的技术效果和前述方法实施方式相同,为简要描述,装置实施方式部分未提及之处,可参考前述方法实施方式中相应内容。
本公开实施方式还提供了一种分布式存储系统,如图8所示,该分布式存储系统包括主存储设备20和与主存储设备20连接的从存储设备30,还可以包括与主存储设备20连接的客户端30。
具体地,主存储设备20可以包括主处理器和主存储器。主存储设备20上存储有主日志系统(即上述的主存储设备的本地日志系统)和用户数据的主副本。主日志系统和主副本存储于主存储器中,主存储器可以包含高速随机存取存储器(RAM,Random AccessMemory),也可以还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
主处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过主处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的主处理器可以是通用处理器,可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块(如图6所示的数据同步装置)可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于主存储器中,主处理器读取主存储器中的信息,结合其硬件完成图3所示的数据同步方法的步骤。
主存储设备20还可以包括总线和通信接口,主处理器、通信接口和主存储器通过总线连接。通信接口用于与客户端10或从存储设备30连接,完成数据传输。
从存储设备30可以包括从处理器和从存储器。从存储设备30上存储有从日志系统(即上述的从存储设备的日志系统)和用户数据的从副本。从日志系统和从副本存储于从存储器中,从存储器可以包含高速随机存取存储器(RAM,Random Access Memory),也可以还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
从处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过从处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的从处理器可以是通用处理器,可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块(如图7所示的数据同步装置)可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于从存储器中,从处理器读取从存储器中的信息,结合其硬件完成图4所示的数据同步方法的步骤。
从存储设备30还可以包括总线和通信接口,从处理器、通信接口和从存储器通过总线连接。通信接口用于与主存储设备20连接,完成数据传输。
进一步地,本公开实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现图3或图4所示的数据同步方法,具体实现可参见上述方法实施方式,在此不再赘述。
本发明实施例提供的数据同步方法、数据同步装置和分布式存储系统具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种数据同步方法,其特征在于,应用于分布式存储系统中的主存储设备,所述方法包括:
接收客户端的数据操作请求,所述数据操作请求的操作类型包括写数据类型和/或修改数据类型;
根据所述数据操作请求的操作类型在本地日志系统添加日志信息;
将所述日志信息发送至所述数据操作请求对应的从存储设备;
接收各个所述从存储设备返回的写日志成功消息;
如果接收到的所述写日志成功消息达到或超过预设阈值,在所述主存储设备上启动所述数据操作请求对应的数据操作;
当所述主存储设备完成所述数据操作时,向所述客户端发送数据操作成功通知。
2.根据权利要求1所述的方法,其特征在于,如果接收到的所述写日志成功消息达到或超过预设阈值,在所述主存储设备上启动所述数据操作请求对应的数据操作,包括:
如果接收到所述主存储设备对应的所有从存储设备均返回写日志成功消息,在所述主存储设备上启动所述数据操作请求对应的数据操作。
3.根据权利要求1所述的方法,其特征在于,在所述主存储设备上启动所述数据操作请求对应的数据操作,包括:
如果所述数据操作请求的操作类型为写数据类型,将所述数据操作请求中的数据写入所述主存储设备对应的本地存储空间;
如果所述数据操作请求的操作类型为修改数据类型,使用所述数据操作请求中的数据替换所述主存储设备对应的本地存储空间中的原数据。
4.一种数据同步方法,其特征在于,应用于分布式存储系统中的从存储设备,所述方法包括:
接收主存储设备发送的日志信息;其中,所述日志信息为所述主存储设备根据客户端的数据操作请求生成的日志信息;
将所述日志信息添加至所述从存储设备的日志系统;
向所述主存储设备发送写日志成功消息;
根据所述从存储设备的日志系统更新所述从存储设备的本地数据。
5.根据权利要求4所述的方法,其特征在于,根据所述从存储设备的日志系统更新所述从存储设备的本地数据,包括:
定时读取所述从存储设备的日志系统;
将当前时刻读取的所述日志系统与上一时刻读取的日志系统进行比较;
如果当前时刻读取的所述日志系统中存在新的日志信息,根据所述新的日志信息更新所述从存储设备的本地数据。
6.一种数据同步装置,其特征在于,应用于分布式存储系统中的主存储设备,所述装置包括:
主日志添加模块,用于接收客户端的数据操作请求,根据所述数据操作请求的操作类型在本地日志系统添加日志信息;所述数据操作请求的操作类型包括写数据类型和/或修改数据类型;
日志推送模块,用于将所述日志信息发送至所述数据操作请求对应的从存储设备;
消息接收模块,用于接收各个所述从存储设备返回的写日志成功消息;
数据操作模块,用于如果接收到的所述写日志成功消息达到或超过预设阈值,在所述主存储设备上启动所述数据操作请求对应的数据操作;
通知发送模块,用于当所述主存储设备完成所述数据操作时,向所述客户端发送数据操作成功通知。
7.根据权利要求6所述的装置,其特征在于,所述数据操作模块,还用于:
如果接收到所述主存储设备对应的所有从存储设备均返回写日志成功消息,在所述主存储设备上启动所述数据操作请求对应的数据操作。
8.根据权利要求6所述的装置,其特征在于,所述数据操作模块,还用于:
如果所述数据操作请求的操作类型为写数据类型,将所述数据操作请求中的数据写入所述主存储设备对应的本地存储空间;
如果所述数据操作请求的操作类型为修改数据类型,使用所述数据操作请求中的数据替换所述主存储设备对应的本地存储空间中的原数据。
9.一种数据同步装置,其特征在于,应用于分布式存储系统中的从存储设备,所述装置包括:
从日志添加模块,用于接收主存储设备发送的日志信息,将所述日志信息添加至所述从存储设备的日志系统;其中,所述日志信息为所述主存储设备根据客户端的数据操作请求生成的日志信息;
消息发送模块,用于向所述主存储设备发送写日志成功消息;
数据更新模块,用于根据所述从存储设备的日志系统更新所述从存储设备的本地数据。
10.根据权利要求9所述的装置,其特征在于,所述数据更新模块,还用于:
定时读取所述从存储设备的日志系统;
将当前时刻读取的所述日志系统与上一时刻读取的日志系统进行比较;
如果当前时刻读取的所述日志系统中存在新的日志信息,根据所述新的日志信息更新所述从存储设备的本地数据。
11.一种分布式存储系统,其特征在于,包括主存储设备和与所述主存储设备连接的从存储设备;
所述主存储设备上设置有权利要求6~8中任一项所述的数据同步装置;所述从存储设备上设置有权利要求9~10中任一项所述的数据同步装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810447303.6A CN108616598B (zh) | 2018-05-10 | 2018-05-10 | 数据同步方法、装置和分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810447303.6A CN108616598B (zh) | 2018-05-10 | 2018-05-10 | 数据同步方法、装置和分布式存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108616598A true CN108616598A (zh) | 2018-10-02 |
CN108616598B CN108616598B (zh) | 2021-01-01 |
Family
ID=63662994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810447303.6A Active CN108616598B (zh) | 2018-05-10 | 2018-05-10 | 数据同步方法、装置和分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108616598B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901798A (zh) * | 2019-02-27 | 2019-06-18 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN112822227A (zh) * | 2019-11-15 | 2021-05-18 | 北京金山云网络技术有限公司 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
CN115017223A (zh) * | 2022-08-04 | 2022-09-06 | 成都运荔枝科技有限公司 | 一种支持大数据量导入导出的系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068516A1 (en) * | 2002-10-04 | 2004-04-08 | Chung-I Lee | System and method for synchronizing files in multiple nodes |
CN102025756A (zh) * | 2009-09-09 | 2011-04-20 | 中兴通讯股份有限公司 | 分布式系统及其数据同步方法 |
CN102368267A (zh) * | 2011-10-25 | 2012-03-07 | 曙光信息产业(北京)有限公司 | 一种维护分布式系统中副本一致性的方法 |
CN104346373A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 分区日志队列同步管理方法及设备 |
CN105407117A (zh) * | 2014-09-10 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 分布式备份数据的方法、装置和系统 |
CN106899648A (zh) * | 2016-06-20 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
-
2018
- 2018-05-10 CN CN201810447303.6A patent/CN108616598B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068516A1 (en) * | 2002-10-04 | 2004-04-08 | Chung-I Lee | System and method for synchronizing files in multiple nodes |
CN102025756A (zh) * | 2009-09-09 | 2011-04-20 | 中兴通讯股份有限公司 | 分布式系统及其数据同步方法 |
CN102368267A (zh) * | 2011-10-25 | 2012-03-07 | 曙光信息产业(北京)有限公司 | 一种维护分布式系统中副本一致性的方法 |
CN104346373A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 分区日志队列同步管理方法及设备 |
CN105407117A (zh) * | 2014-09-10 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 分布式备份数据的方法、装置和系统 |
CN106899648A (zh) * | 2016-06-20 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901798A (zh) * | 2019-02-27 | 2019-06-18 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN112822227A (zh) * | 2019-11-15 | 2021-05-18 | 北京金山云网络技术有限公司 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
WO2021093735A1 (zh) * | 2019-11-15 | 2021-05-20 | 北京金山云网络技术有限公司 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
CN112822227B (zh) * | 2019-11-15 | 2022-02-25 | 北京金山云网络技术有限公司 | 分布式存储系统的数据同步方法、装置、设备及存储介质 |
CN115017223A (zh) * | 2022-08-04 | 2022-09-06 | 成都运荔枝科技有限公司 | 一种支持大数据量导入导出的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108616598B (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088466A1 (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
CN101208671B (zh) | 管理消息队列 | |
CN109376197B (zh) | 一种数据同步方法、服务器及计算机存储介质 | |
CN108616598A (zh) | 数据同步方法、装置和分布式存储系统 | |
CN107426265A (zh) | 数据一致性同步的方法及设备 | |
CN106446159B (zh) | 一种存储文件的方法、第一虚拟机及名称节点 | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
CN103986779B (zh) | 一种应用数据传输方法、装置及终端设备 | |
CN113495889B (zh) | 一种分布式对象存储方法、装置、电子设备及存储介质 | |
CN106357703B (zh) | 集群切换方法与设备 | |
CN113032162B (zh) | 一种基于共享内存备份机制的多进程通讯方法 | |
CN103856516A (zh) | 数据存储、读取方法及数据存储、读取装置 | |
CN109491609A (zh) | 一种缓存数据处理方法、装置、设备及可读存储介质 | |
WO2023015866A1 (zh) | 一种数据写入方法、装置、系统、电子设备及存储介质 | |
CN106126113B (zh) | 一种家庭网关业务数据分类存储管理的方法 | |
CN114253743A (zh) | 消息同步方法、装置、节点及可读存储介质 | |
US20180121531A1 (en) | Data Updating Method, Device, and Related System | |
CN106897288A (zh) | 数据库的服务提供方法和系统 | |
CN110286852A (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN111984198B (zh) | 消息队列实现方法、装置及电子设备 | |
CN109298977A (zh) | 一种虚拟机业务快速恢复方法、系统、装置及存储介质 | |
CN117170820A (zh) | 集群节点的配置共享方法、系统、终端及存储介质 | |
CN112463073A (zh) | 一种对象存储分布式配额方法、系统、设备和存储介质 | |
CN105488047B (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 |