一种数据处理方法和装置与流程

文档序号:11432157阅读:161来源:国知局
一种数据处理方法和装置与流程

本发明涉及数据处理技术领域,更具体的说是涉及一种数据处理方法和装置。



背景技术:

现有的存储系统大多数为双节点存储系统,在一个节点出现故障时,可以使用另一个节点来缓存数据,从而保证业务的正常进行。

近年来,为了进一步提高数据缓存的安全性,在双节点存储系统的基础上,提出了多节点存储系统,多节点存储系统仍沿用双节点方式来进行数据的缓存。具体的,针对某一数据进行缓存时,该数据的数据流会被转发到任一节点上,从而出现数据不一致的技术问题。



技术实现要素:

有鉴于此,本发明提供一种数据处理方法和装置,以解决现有技术中数据不一致的技术问题。

为实现上述目的,本发明提供如下技术方案:

一种数据处理方法,包括:

当第一数据的数据流到达转发层后,判断本节点是否为所述第一数据的数据流的目的节点;所述目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,所述第一存储单元为所述第一数据的写入单元;

如果否,确定所述第一数据的数据流的目的节点,将所述第一数据的数据流转发至所述目的节点,由所述目的节点将所述第一数据的数据流发送到缓存层;

如果是,将所述第一数据的数据流发送到缓存层。

优选的,所述判断本节点是否为所述第一数据的数据流的目的节点之前,还包括:

判断本节点是否为第一存储单元所属节点组中的节点;

如果是,触发所述判断本节点是否为所述第一数据的数据流的目的节点的步骤;

如果否,触发所述确定所述第一数据流的目的节点的步骤。

优选的,所述将所述第一数据的数据流发送到缓存层之后,还包括:

当本节点为所述第一存储单元的所属节点时,将所述第一数据镜像到所述所属节点的合作节点;

当本节点为所述第一存储单元的所属节点的合作节点时,将所述第一数据镜像到本节点的前置节点;

其中,所述本节点的前置节点为所述第一存储单元的所属节点。

优选的,所述确定所述第一数据流的目的节点包括:

从所述所属节点和所述所属节点的合作节点中选取数据处理能力大的节点为目的节点。

优选的,所述从所述所属节点和所述所属节点的合作节点中选取数据处理能力大的节点为目的节点,包括:

从所述所属节点和所述所属节点的合作节点中确定上一次进行数据处理的节点;

确定除所述上一次进行数据处理的节点的另一节点为目的节点。

一种数据处理装置,包括:

第一判断单元,用于当第一数据的数据流到达转发层后,判断本节点是否为所述第一数据的数据流的目的节点;所述目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,所述第一存储单元为所述第一数据的写入单元;

确定转发单元,用于当本节点不是所述第一数据的数据流的目的节点时,确定所述第一数据的数据流的目的节点,将所述第一数据的数据流转发至所述目的节点,由所述目的节点将所述第一数据的数据流发送到缓存层;

第一发送单元,用于当本节点是所述第一数据的数据流的目的节点时,将所述第一数据的数据流发送到缓存层。

优选的,还包括:

第二判断单元,用于当第一数据的数据流到达转发层后,判断本节点是否为第一存储单元所属节点组中的节点;

第一触发单元,用于当本节点为第一存储单元所属节点组中的节点时,触发所述第一判断单元执行判断本节点是否为所述第一数据的数据流的目的节点的操作;

第二触发单元,用于当本节点不是第一存储单元所属节点组中的节点时,触发所述确定转发单元执行确定所述第一数据流的目的节点的操作。

优选的,还包括:

第一镜像单元,用于当本节点为所述第一存储单元的所属节点时,将所述第一数据镜像到所述所属节点的合作节点;

第二镜像单元,用于当本节点为所述第一存储单元的所属节点的合作节点时,将所述第一数据镜像到本节点的前置节点;

其中,所述本节点的前置节点为所述第一存储单元的所属节点。

优选的,所述确定转发单元包括:

第一确定模块,用于当本节点不是所述第一数据的数据流的目的节点时,从所述所属节点和所述所属节点的合作节点中选取数据处理能力大的节点为目的节点;

第一转发模块,用于将所述第一数据的数据流转发至所述目的节点,由所述目的节点将所述第一数据的数据流发送到缓存层。

优选的,所述第一确定模块具体用于从所述所属节点和所述所属节点的合作节点中确定上一次进行数据处理的节点,从而确定除所述上一次进行数据处理的节点的另一节点为目的节点。

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种数据处理方法,具体的,当第一数据的数据流到达转发层后,判断本节点是否为第一数据的数据流的目的节点,目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,所第一存储单元为所述第一数据的写入单元;如果否,则确定出第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,最终由目的节点将第一数据的数据流发送到缓存层。由此可见,本申请中的第一数据的数据流会转发到目的节点上,由目的节点缓存到缓存层,保证了数据的一致性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明公开的一种多节点存储系统的结构示意图;

图2为本发明实施例一公开的一种数据处理方法的流程示意图;

图3为本发明实施例二公开的一种数据处理方法的流程示意图;

图4为本发明实施例三公开的一种数据处理方法的流程示意图;

图5为本发明实施例四公开的一种数据处理装置的结构示意图;

图6为本发明实施例五公开的一种数据处理装置的结构示意图;

图7为本发明实施例六公开的一种数据处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施一公开了一种数据处理方法,该数据处理方法应用于多节点存储系统中,具体的,图1示出了本发明公开的一种多节点存储系统的结构示意图,如图1所示,客户端host与n个节点相连,n个节点组成一个节点组,其中,一个节点为与其相邻的前一个节点的合作节点,为与其相邻的后一个节点的前置节点。也就是说,两个相邻的节点之间是单方合作关系,并不是互为合作关系。即,node1为node0的合作节点,为node2的前置节点;node2为node1的合作节点,为node3的前置节点,…以此类推。

需说明的是,多节点存储系统包括至少一个节点组,图1以客户端对应一个节点组为例,当然客户端可以对应多个节点组,本发明对此并不做限定。而每个节点组包括至少两个节点。

图2示出了一种数据处理方法的流程示意图,如图2所示,该方法包括以下步骤:

步骤201:当第一数据的数据流到达转发层后,判断本节点是否为第一数据的数据流的目的节点;若否,进入步骤202;若是,进入步骤203;

本节点指代为其转发层上接收到第一数据的数据流的节点。

其中,目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点。

第一存储单元为第一数据的写入单元,具体的,第一存储单元为lun(logicalunitnumber,逻辑单元号),一个lun可以由一块磁盘构成,也可以由几块磁盘构成,还可以由一块磁盘上的部分空间构成等等。

第一存储单元的所属节点为拥有该第一存储单元的节点,该节点为第一存储单元的指定节点,用于将需要写入第一存储单元的数据写入到第一存储单元中。第一存储单元的所属节点的合作节点为与第一存储单元的所属节点相邻的节点,由前文关于多节点存储系统的描述可知,第一存储单元的所属节点和所属节点的合作节点之间为单方向合作关系,第一存储单元的所属节点为第一存储单元的所属节点的合作节点的前置节点。

当客户端下发的第一数据的数据流到达某一节点的转发层后,该节点会判断本节点是否为第一数据的数据流的目的节点。

具体的,多节点存储系统中每一节点上存储有本节点的节点索引以及所有节点的位图信息,因此,基于本节点的节点索引以及所有节点的位图信息能够判断出本节点是否为第一数据的数据流的目的节点。例如,位图信息为32位的整型值,即针对节点0-31。本节点的节点索引为第n位,那么,如果位图信息的第n位置1则表示节点n上接收到的第一存储单元的数据流需要转发,即节点n不是第一数据的数据流的目的节点,如果位图信息的第n为置0则表示节点n上接收到的第一存储单元的数据流不需要转发,即节点n是第一数据的数据流的目的节点。也就是说,位图信息中除了第一数据的数据流所属的第一存储单元的所属节点的位以及合作节点的位置0外,其余位均置1。

步骤202:确定第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,由目的节点将第一数据的数据流发送至缓存层;

当确定本节点不是第一数据的数据流的目的节点时,则可以从第一存储单元的所属节点和第一存储单元的所属节点的合作节点中选择一个节点作为目的节点,从而将第一数据的数据流转发至目的节点的转发层,由目的节点将第一数据的数据流发送至目的节点的缓存层。

步骤203:将第一数据的数据流发送到缓存层。

当确定本节点是第一数据的数据流的目的节点时,则直接由本节点将第一数据的数据流发送到本节点的缓存层。需说明的是,在第一节点的转发层和缓存层之间可能还具有其他数据处理层,但是,该第一数据的数据流最终会被发送到缓存层中,即将第一数据的数据流发送到缓存层并不一定指代为由转发层直接下发到缓存层,而可以指代为由转发层下发到其他数据处理层经过数据处理后最终发送到缓存层。

在本实施例中,当第一数据的数据流到达转发层后,判断本节点是否为第一数据的数据流的目的节点,目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,所第一存储单元为所述第一数据的写入单元;如果否,则确定出第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,最终由目的节点将第一数据的数据流发送到缓存层。由此可见,本申请中的第一数据的数据流会转发到目的节点上,由目的节点缓存到缓存层,保证了数据的一致性。

实施例二

本发明实施例二还公开了一种数据处理方法,如图3所示,该方法包括以下步骤:

步骤301:当第一数据的数据流到达转发层后,判断本节点是否为第一存储单元所属节点组中的节点;若是,进入步骤302;若否,进入步骤303;

第一存储单元为第一数据的写入单元,具有拥有该第一存储单元的所属节点。在多节点存储系统中,每一节点均属于一个节点组,相应的,第一存储单元所属节点组为具有第一存储单元的所属节点的节点组。

具体的,多节点存储系统中每一节点上存储有本节点的节点索引以及所有节点的位图信息,因此,基于本节点的节点索引以及所有节点的位图信息能够判断出本节点是否为第一存储单元所属节点组中的节点。

步骤302:判断本节点是否为所述第一数据的数据流的目的节点;若否,进入步骤303,若是,进入步骤304;

步骤303:确定所述第一数据的数据流的目的节点,将所述第一数据的数据流转发至所述目的节点,由所述目的节点将所述第一数据的数据流发送到缓存层;

作为一种具体的实现方式,确定所述第一数据流的目的节点包括:从所属节点和所属节点的合作节点中选取数据处理能力大的节点为目的节点。

具体的,从所属节点和所属节点的合作节点中选取数据处理能力大的节点为目的节点,包括:从所属节点和所属节点的合作节点中确定上一次进行数据处理的节点,从而确定除上一次数据处理的节点的另一节点为目的节点。

其中,第一存储单元的所属节点和所属节点的合作节点中,确定出上一次进行数据处理的节点,若上一次进行数据处理的节点为第一存储单元的所属节点,那么则确定第一存储单元的所属节点的合作节点为目的节点;若上一次进行数据处理的节点为第一存储单元的所属节点的合作节点,那么则确定第一存储单元的所属节点为目的节点。

步骤304:将所述第一数据的数据流发送到缓存层。

在本实施例中,当第一数据的数据流到达转发层后,判断本节点是否为第一存储单元所属节点组中的节点,若本节点是第一存储单元所属节点组中的节点,那么则需判断本节点是否为所述第一数据的数据流的目的节点,如果本节点不是第一存储单元所属节点组中的节点,那么则可以直接确定第一数据的数据流的目的节点,从而实现由目的节点将第一数据的数据流发送到的缓存层,保证了数据的一致性。

实施例三

本发明实施例三还公开了一种数据处理方法,如图4所示,该方法包括以下步骤:

步骤401:当第一数据的数据流到达转发层后,判断本节点是否为第一数据的数据流的目的节点;若否,进入步骤402;若是,进入步骤403;

其中,目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点。

第一存储单元为第一数据的写入单元。

步骤402:确定第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,由目的节点将第一数据的数据流发送至缓存层;

当确定本节点不是第一数据的数据流的目的节点时,则可以从第一存储单元的所属节点和第一存储单元的所属节点的合作节点中选择一个节点作为目的节点,从而将第一数据的数据流转发至目的节点的转发层,由目的节点将第一数据的数据流发送至目的节点的缓存层。

步骤403:将第一数据的数据流发送到缓存层;

步骤404:当本节点为第一存储单元的所属节点时,将第一数据镜像到所属节点的合作节点;

步骤405:当本节点为第一存储单元的所属节点的合作节点时,将第一数据镜像到本节点的前置节点。

其中,本节点的前置节点为第一存储单元的所属节点。第一存储单元的所属节点和第一存储单元的所属节点的合作节点为两个相邻的节点,且第一存储单元的所属节点为第一存储单元的所属节点的合作节点的前置节点,当本节点为第一存储单元的所属节点的合作节点时,将第一数据镜像到本节点的前置节点后,则相当于将第一数据镜像到第一存储单元的所属节点。

在本实施例中,当数据流达到缓存层后,当本节点为所述第一存储单元的所属节点时,将所述第一数据镜像到所述所属节点的合作节点,当本节点为所述第一存储单元的所属节点的合作节点时,将所述第一数据镜像到本节点的前置节点,从而保证当一个节点出现故障时,能够通过另一个节点进行来缓存数据。并且,由于第一数据分别保存在第一存储单元的所属节点以及所属节点的合作节点中,因此能够保证通过第一存储单元的所属节点下发到第一存储单元的数据为最新的数据。

与上述一种数据处理方法对应的,本发明还提供了一种数据处理装置,该装置应用于多节点存储系统中。具体的,通过以下实施例进行详细描述:

实施例四

本发明实施例四公开了一种数据处理装置,如图5所示,该装置包括:第一判断单元501、确定转发单元502、第一发送单元503;其中:

第一判断单元501,用于当第一数据的数据流到达转发层后,判断本节点是否为所述第一数据的数据流的目的节点;

目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,第一存储单元为所述第一数据的写入单元。

第一存储单元的所属节点为拥有该第一存储单元的节点,该节点为第一存储单元的指定节点,用于将需要写入第一存储单元的数据写入到第一存储单元中。第一存储单元的所属节点的合作节点为与第一存储单元的所属节点相邻的节点,由前文关于多节点存储系统的描述可知,第一存储单元的所属节点和所属节点的合作节点之间为单方向合作关系,第一存储单元的所属节点为第一存储单元的所属节点的合作节点的前置节点。

第一判断单元501用于当客户端下发的第一数据的数据流到达某一节点的转发层后,判断本节点是否为第一数据的数据流的目的节点。具体的,多节点存储系统中每一节点上存储有与第一存储单元相关的信息,该信息包含有第一存储单元的所属节点和第一存储单元的所属节点的合作节点,因此第一判断单元基于该信息能够确定出本节点是否为目的节点。

确定转发单元502,用于当本节点不是所述第一数据的数据流的目的节点时,确定所述第一数据的数据流的目的节点,将所述第一数据的数据流转发至所述目的节点,由所述目的节点将所述第一数据的数据流发送到缓存层;

当确定本节点不是第一数据的数据流的目的节点时,确定转发单元则可以从第一存储单元的所属节点和第一存储单元的所属节点的合作节点中选择一个节点作为目的节点,从而将第一数据的数据流转发至目的节点的转发层,由目的节点将第一数据的数据流发送至目的节点的缓存层。

具体的,作为一种实现方式,确定转发单元502包括:第一确定模块和第一转发模块。其中,第一确定模块,用于当本节点不是所述第一数据的数据流的目的节点时,从所述所属节点和所述所属节点的合作节点中选取数据处理能力大的节点为目的节点;第一转发模块,用于将所述第一数据的数据流转发至所述目的节点,由所述目的节点将所述第一数据的数据流发送到缓存层。

其中,第一确定模块具体用于从所述所属节点和所述所属节点的合作节点中确定上一次进行数据处理的节点,从而确定除所述上一次进行数据处理的节点的另一节点为目的节点。也就是说,若上一次进行数据处理的节点为第一存储单元的所属节点,那么第一确定模块则确定第一存储单元的所属节点的合作节点为目的节点;若上一次进行数据处理的节点为第一存储单元的所属节点的合作节点,那么第一确定模块则确定第一存储单元的所属节点为目的节点。

第一发送单元503,用于当本节点是所述第一数据的数据流的目的节点时,将所述第一数据的数据流发送到缓存层。

在本实施例中,当第一数据的数据流到达转发层后,判断本节点是否为第一数据的数据流的目的节点,目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,所第一存储单元为所述第一数据的写入单元;如果否,则确定出第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,最终由目的节点将第一数据的数据流发送到缓存层。由此可见,本申请中的第一数据的数据流会转发到目的节点上,由目的节点缓存到缓存层,保证了数据的一致性。

实施例五

本发明实施例五公开了一种数据处理装置,如图6所示,该装置包括:第二判断单元601、第一触发单元602、第二触发单元603、第一判断单元604、确定转发单元605、第一发送单元606;其中:

第二判断单元601,用于当第一数据的数据流到达转发层后,判断本节点是否为第一存储单元所属节点组中的节点;

第一存储单元为第一数据的写入单元,具有拥有该第一存储单元的所属节点。在多节点存储系统中,每一节点均属于一个节点组,相应的,第一存储单元所属节点组为具有第一存储单元的所属节点的节点组。

具体的,多节点存储系统中每一节点上存储有与第一存储单元相关的信息,该信息包含有第一存储单元的所属节点和第一存储单元的所属节点的合作节点,还包含有第一存储单元所属节点组标识;多节点存储系统中每一节点上还存储有其所属节点组的标识。因此,第二判断单元可以通过判断本节点所属节点组的标识与第一存储单元所属节点组标识是否一致来确定本节点是否为第一存储单元所属节点组中的节点。

第一触发单元602,用于当本节点为第一存储单元所属节点组中的节点时,触发第一判断单元604执行判断本节点是否为所述第一数据的数据流的目的节点的操作;

第二触发单元603,用于当本节点不是第一存储单元所属节点组中的节点时,触发确定转发单元605执行确定第一数据流的目的节点的操作;

第一判断单元604,用于判断本节点是否为第一数据的数据流的目的节点;

目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,第一存储单元为第一数据的写入单元。

确定转发单元605,用于当本节点不是第一数据的数据流的目的节点时,确定第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,由目的节点将第一数据的数据流发送到缓存层;

第一发送单元606,用于当本节点是第一数据的数据流的目的节点时,将第一数据的数据流发送到缓存层。

在本实施例中,当第一数据的数据流到达转发层后,先判断本节点是否为第一存储单元所属节点组中的节点,若本节点是第一存储单元所属节点组中的节点,那么则再判断本节点是否为所述第一数据的数据流的目的节点,如果本节点不是第一存储单元所属节点组中的节点,则直接确定第一数据的数据流的目的节点,从而实现由目的节点将第一数据的数据流发送到的缓存层,保证了数据的一致性。

实施例六

本发明实施例六公开了一种数据处理装置,如图7所示,该装置包括:第一判断单元701、确定转发单元702、第一发送单元703、第一镜像单元704以及第二镜像单元705;其中:

第一判断单元701,用于当第一数据的数据流到达转发层后,判断本节点是否为所述第一数据的数据流的目的节点;

目的节点包括第一存储单元的所属节点和第一存储单元的所属节点的合作节点;其中,所述第一存储单元为第一数据的写入单元。

确定转发单元702,用于当本节点不是第一数据的数据流的目的节点时,确定第一数据的数据流的目的节点,将第一数据的数据流转发至目的节点,由目的节点将所述第一数据的数据流发送到缓存层;

第一发送单元703,用于当本节点是第一数据的数据流的目的节点时,将第一数据的数据流发送到缓存层;

第一镜像单元704,用于当本节点为第一存储单元的所属节点时,将第一数据镜像到所述所属节点的合作节点;

第二镜像单元705,用于当本节点为第一存储单元的所属节点的合作节点时,将第一数据镜像到本节点的前置节点;

其中,本节点的前置节点为所述第一存储单元的所属节点。第一存储单元的所属节点和第一存储单元的所属节点的合作节点为两个相邻的节点,且第一存储单元的所属节点为第一存储单元的所属节点的合作节点的前置节点,当本节点为第一存储单元的所属节点的合作节点时,将第一数据镜像到本节点的前置节点后,则相当于将第一数据镜像到第一存储单元的所属节点。

在本实施例中,当数据流达到缓存层后,当本节点为所述第一存储单元的所属节点时,将所述第一数据镜像到所述所属节点的合作节点,当本节点为所述第一存储单元的所属节点的合作节点时,将所述第一数据镜像到本节点的前置节点,从而保证当一个节点出现故障时,能够通过另一个节点进行来缓存数据。并且,由于第一数据分别保存在第一存储单元的所属节点以及所属节点的合作节点中,因此能够保证通过第一存储单元的所属节点将第一数据下发到第一存储单元的数据为最新的数据。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1