数据处理方法及其设备与流程

文档序号:26540271发布日期:2021-09-07 21:28阅读:74来源:国知局
数据处理方法及其设备与流程

1.本技术实施例涉及计算机技术领域,具体涉及一种数据处理方法及其设备。


背景技术:

2.在计算机应用领域中,存储系统的共享卷可以被多个用户访问并且读写,当多个用户对相同共享卷进行访问时,为了避免发生多用户访问冲突,会通过共享卷对应的软件来进行冲突管理。
3.当通过共享卷对应的软件来进行冲突管理时,需要该共享卷对应的存储节点参与,即需要占用存储节点的处理器资源。


技术实现要素:

4.本技术实施例提供了一种数据处理方法,用于在数据存储中,发生写冲突时,根据网卡设备处理该冲突,避免了存储节点的处理器参与,节省了存储节点的处理器。
5.本技术实施例第一方面提供了一种数据处理方法。
6.在当第一客户端需要访问存储节点时,第一客户端向存储节点对应的网卡设备发送第一访问请求,该第一请求携带了需要访问的存储节点的访问地址。
7.网卡设备接收到该第一访问请求之后,解析该第一访问请求,并根据该第一访问请求携带的访问地址,检测该第一访问请求是否存在冲突。
8.当网卡设备检测到第一访问请求访问的访问地址正在被访问时,则确定存在冲突。
9.当发生冲突之后,网卡设备根据处理策略处理该冲突,该处理策略由网卡设备预先设置的。
10.本技术实施例中,当发生写冲突时,可以通过网卡设备进行冲突管理,而不需要通过存储节点的处理器参与,节省了存储节点的处理器。
11.基于本技术实施例第一方面的实施方式,本技术实施例第一方面的第一种实施方式中,第一客户端发送的第一访问请求为写请求,在网卡设备接收第一访问请求之前,网卡设备接收到了第二客户端发送的第二写请求,该第二写请求携带的访问地址和第一访问请求相同,则网卡设备根据该第二写请求携带的访问地址和第一访问请求相同确定该第一访问写请求和第二写请求存在冲突。
12.本技术实施例中,网卡设备通过第一访问写请求和第二写请求的访问地址相同,确定了发生冲突,提升了方案的可实现性。
13.基于本技术实施例第一方面或本技术实施例第一方面第一种实施方式中,本技术实施例第一方面第二种实施方式中,第一客户端发送的第一访问请求为读请求,在在网卡设备接收第一访问请求之前,网卡设备接收到了第三客户端发送的第三写请求,该第三写请求携带的访问地址和第一访问请求携带的访问地址相同,则网卡设备根据该第二写请求和第一访问请求确定该第一访问写请求和第二写请求存在冲突。
14.本技术实施例中,网卡设备通过第一访问写请求和第二写请求的访问地址相同,确定了发生冲突,提升了方案的可实现性。
15.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第二种实施方式,本技术实施例第一方面第三种实施方式中,第一访问请求用于将第二数据写入到存储节点对应的访问地址中,该网卡设备根据该第一访问请求的访问地址和该访问地址对应的元数据上的状态属性,确定存在冲突。网卡设备根据处理策略处理该第二数据,该处理策略由网卡设备生成。
16.本技术实施例中,网卡设备通过元数据的状态属性确定存在冲突,提升了方案的可实现性。
17.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第三种实施方式,本技术实施例第一方面第四种实施方式中,网卡设备在根据第二写请求更新访问地址对应的元数据的状态属性时,将该访问地址对应的元数据的状态属性更新为第二客户端写入。
18.本技术实施例中,网卡设备将状态属性更新为第二客户端写入,明确了当前正在写入的客户端的信息,在后续还有该客户端的写入请求时,则可以继续写入,提升了数据写入的效率。
19.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第四种实施方式,本技术实施例第一方面第五种实施方式中,网卡设备在根据第一请求更新访问地址对应的元数据的状态属性时,将该访问地址对应的元数据的状态属性更新为写入状态。
20.本技术实施例中,网卡设备将状态属性更新为写入状态,提升了方案的可实现性。
21.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第五种实施方式,本技术实施例第一方面第六种实施方式中,网卡设备在根据处理策略处理第二数据时,可以向访问地址对应的处理器发送第一冲突通知,该第一冲突通知表示第二客户端的第二写请求请求写入的访问地址和第一客户端的第一访问请求请求写入的访问地址相同。
22.本技术实施例中,网卡设备通过向处理器发送第一冲突通知,并且让处理器做后续的处理,提升了方案的可实现性。
23.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第六种实施方式,本技术实施例第一方面第七种实施方式中,网卡设备在根据处理策略处理第二数据时,可以直接将该第二数据丢弃,即不获取该第二数据。在丢弃了第二数据之后,网卡设备向第一客户端发送第二冲突通知,该第二冲突通知表示第一客户端的第一访问请求请求写入的访问地址和第二客户端的第二写请求请求写入的访问地址相同。
24.本技术实施例中,网卡设备通过直接将第二数据丢弃,并向第一客户端发送第二冲突通知,而不需要通过cpu处理该第二数据,节省了cpu的资源。
25.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第七种实施方式,本技术实施例第一方面第八种实施方式中,网卡设备在将第二客户端对应的数据写入到数据块中后,网卡设备会接收到处理器发送的反馈结果,该反馈结果表示第二客户端对应的数据写入完成,网卡设备根据该反馈结果调用集成于网卡设备中的冲突清理接口对访问地址对应的元数据的状态属性进行清除。
26.本技术实施例中,在第一客户端对应的数据写入完成后,网卡设备调用冲突清理
接口对元数据的状态属性进行清除,可以使得在访问地址可以被新的客户端访问,提升了方案的可实现性。
27.基于本技术实施例第一方面、第一方面第一种实施方式或第一方面第八种实施方式,本技术实施例第一方面第九种实施方式中,该数据块对应的元数据可以包括,数据块的版本号和或当前的冲突状态和或当前访问该数据块的客户端号和对应的数据块数量。
28.本技术实施例中,例举了元数据的具体组成形式,提升了方案的可实现性。
29.本技术实施例第二方面提供了一种网卡设备。
30.一种网卡设备,该网卡设备包含接口和处理器,其中,接口与处理器通信,接口用于接收第一客户端的第一访问请求;第一访问请求携带访问地址;
31.处理器用于检测第一访问请求是否存在冲突;
32.当检测到第一访问请求存在冲突,根据处理策略处理冲突。
33.基于本技术实施例第二方面的实施方式,本技术实施例第二方面的第一种实施方式中,第一访问请求为写请求,接口还用于:在接收第一客户端的第一访问请求之前接收第二客户端的第二写请求,第二写请求包含访问地址。
34.处理器具体用于检测到第一访问请求与第二写请求冲突。
35.基于本技术实施例第二方面或本技术实施例第二方面第一种实施方式中,本技术实施例第二方面第二种实施方式中,第一访问请求为读请求,接口还用于:在接收第一客户端的第一访问请求之前接收第三客户端的第三写请求,第三写请求包含访问地址。
36.处理器具体用于检测到第一访问请求与第三写请求冲突。
37.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第二种实施方式,本技术实施例第二方面第三种实施方式中,第一访问请求用于将第二数据写入访问地址;
38.处理器具体用于根据第一访问请求和元数据确定存在冲突,元数据表示访问地址的状态属性;
39.处理器具体用于根据处理策略处理第二数据,处理策略由处理器生成。
40.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第三种实施方式,本技术实施例第二方面第四种实施方式中,处理器还用于根据第二写请求更新元数据的状态属性为第二客户端写入。
41.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第四种实施方式,本技术实施例第二方面第五种实施方式中,处理器还用于根据第二写请求更新元数据的状态属性为写入状态。
42.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第五种实施方式,本技术实施例第二方面第六种实施方式中,网卡设备的处理器用于向访问地址对应的处理器发送第一冲突通知,第一冲突通知用于表示第一访问请求与第二写请求冲突;
43.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第六种实施方式,本技术实施例第二方面第七种实施方式中,处理器用于丢弃第二数据;
44.接口还用于向第一客户端发送第二冲突通知,第二冲突通知用于表示第一访问请求与第二写请求冲突。
45.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第七种实施方
式,本技术实施例第二方面第八种实施方式中,接口还用于接收处理器发送的反馈结果,反馈结果表示第二写请求的数据写入完成;
46.处理器还用于根据反馈结果清除元数据的状态属性。
47.基于本技术实施例第二方面、第二方面第一种实施方式或第二方面第八种实施方式,本技术实施例第二方面第九种实施方式中,元数据的状态属性包括以下至少一种:版本号、冲突状态或当前访问的客户端号。
48.本技术实施例第三方面提供了一种网卡设备。
49.接收单元,用于接收第一客户端的第一访问请求,第一访问请求携带访问地址;
50.处理单元用于检测第一访问请求是否存在冲突;
51.当检测到第一访问请求存在冲突,处理单元根据处理策略处理冲突。
52.基于本技术实施例第三方面的实施方式,本技术实施例第三方面的第一种实施方式中,第一访问请求为写请求,接收单元还用于在接收第一客户端的第一访问请求之前接收第二客户端的第二写请求,第二写请求包含访问地址。
53.处理单元具体用于检测到第一访问请求与第二写请求冲突。
54.基于本技术实施例第三方面或本技术实施例第三方面第一种实施方式中,本技术实施例第三方面第二种实施方式中,第一访问请求为读请求,接收单元在接收第一客户端的第一访问请求之前接收第三客户端的第三写请求,第三写请求包含访问地址。
55.处理单元具体用于检测到第一访问请求与第三写请求冲突。
56.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第二种实施方式,本技术实施例第三方面第三种实施方式中,第一访问请求用于将第二数据写入访问地址;
57.处理单元具体用于根据第一访问请求和元数据确定存在冲突,元数据表示访问地址的状态属性;
58.处理单元具体用于根据处理策略处理第二数据,处理策略由处理器生成。
59.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第三种实施方式,本技术实施例第三方面第四种实施方式中,处理单元还用于根据第二写请求更新元数据的状态属性为第二客户端写入。
60.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第四种实施方式,本技术实施例第三方面第五种实施方式中,处理单元还用于根据第二写请求更新元数据的状态属性为写入状态。
61.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第五种实施方式,本技术实施例第三方面第六种实施方式中,网卡设备还包括:
62.发送单元,用于向访问地址对应的处理器发送第一冲突通知,第一冲突通知用于表示第一访问请求与第二写请求冲突;
63.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第六种实施方式,本技术实施例第三方面第七种实施方式中,处理单元用于丢弃第二数据;
64.发送单元还用于向第一客户端发送第二冲突通知,第二冲突通知用于表示第一访问请求与第二写请求冲突。
65.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第七种实施方
式,本技术实施例第三方面第八种实施方式中,反馈结果表示第二写请求的数据写入完成;
66.处理单元还用于根据反馈结果清除元数据的状态属性。
67.基于本技术实施例第三方面、第三方面第一种实施方式或第三方面第八种实施方式,本技术实施例第三方面第九种实施方式中,元数据的状态属性包括以下至少一种:版本号、冲突状态或当前访问的客户端号。
68.本技术实施例第四方面提供了一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在所述计算机上执行时,使得计算机执行如本技术第一方面实施方式所述的方法。
69.本技术实施例第五方面提供了一种计算机程序产品,所述计算机程序产品在计算机上执行时,使得所述计算机执行如本技术第一方面实施方式所述的方法。
70.从以上技术方案可以看出,本技术实施例具有以下优点:
71.本技术实施例中,发生写冲突时,根据网卡设备生成的处理策略处理准备写入相同数据块的第一数据,避免了存储节点的处理器参与,节省了存储节点的处理器。
附图说明
72.图1为本技术实施例提供的存储系统框架一个示意图;
73.图2为本技术实施例提供的存储系统框架另一示意图;
74.图3为本技术实施例提供的数据处理方法一个流程示意图;
75.图4为本技术实施例提供的网卡设备的一个结构示意图;
76.图5为本技术实施例提供的网卡设备的另一结构示意图;
77.图6为本技术实施例提供的网卡设备的另一结构示意图。
具体实施方式
78.本技术实施例提供了一种数据处理方法,用于在数据存储中,发生访问冲突时,根据网卡设备生成的处理策略处理该冲突,避免了存储节点的处理器参与,节省了存储节点的处理器。
79.请参阅图1,为本技术提供的存储系统框架一个示意图。
80.本技术实施例提供了一种存储系统框架,该存储系统框架包括至少两个客户端,第一客户端101和第二客户端102,至少一个存储节点103。
81.第一客户端101和第二客户端102包含网卡设备nic,存储节点103包含网卡设备nic。存储节点104还包含处理器,如中央处理单元(central processing unit,cpu)。
82.第一客户端用于将数据存储到存储节点103上。
83.请参阅图2,本技术实施例的存储节点的网卡设备包含冲突检测器,该冲突检测器中有预先设置的元数据,不同的元数据sn对应着存储节点中不同的数据块blockn,需要说明的是,可以是一个元数据对应一个数据块,也可以是一个元数据对应多个数据块,具体此处不做限定。数据块为客户端访问数据的地址,即访问地址。
84.需要说明的是,一个数据块的大小可以配置为4k,或者64k,可以理解的是,还可以配置为其他大小,例如128k等,具体此处不做限定。
85.当第一客户端需要将数据需要写入对应的数据块block1,则通过网卡设备的冲突
管理器对应的元数据s1进行确定,当没有其他客户端在写入数据到该数据块时,则第一客户端可以将数据写入该数据块。
86.在实际应用过程中,该数据存储节点可以被多个客户端同时访问,当多个客户端同时请求向同一个数据块写入数据时,则网卡设备则会进行相应的处理。
87.下面结合图1和图2的存储系统框架,对本技术实施例中的数据处理方法进行描述。
88.请参阅图3,为本技术提供的数据处理方法的一个实施例的流程示意图。
89.在步骤301中,第二客户端向网卡设备发送第二写请求。
90.当第二客户端需要将数据写入存储节点时,第一客户端向存储节点对应的网卡设备发送第二写请求,该第二请求用于第二客户端的数据写入存储节点中的数据块中,即第二写请求携带的访问地址中。
91.可以理解的是,在实际应用过程中,根据第二客户端请求写入的数据的大小,该第二客户端的第二写请求可以向存储节点对应的缓冲存储器的网卡设备发送,也可以直接向存储节点的网卡设备发送,具体此处不做限定。
92.在第二客户端向网卡设备发送第二写请求之前,在存储系统的初始化阶段,存储节点对应的业务软件向网卡设备注册存储节点的共享资源信息,该共享资源的信息包括但不限于,存储节点的数据块的起始地址,共享资源数据块的大小还有共享资源的数据块数量。即通过存储节点中的元数据记录有对应的数据块的数量,该数据块的大小,还有该数据块的起始地址。
93.在存储系统的初始化阶段,存储节点还会设置对应的处理策略,并且初始化网卡设备上的冲突管理器,该处理策略用于当发生读写冲突时,通过该处理策略处理该读写冲突。
94.在步骤302中,网卡设备根据第二写请求更新元数据的状态属性为第二客户端写入。
95.当网卡设备接收到第二客户端发送的第二写请求之后,网卡设备会解析该第二写请求中的数据,即解析该第二写请求的数据对应的io数据包,得到该第二写请求的数据对应的io数据包访问的数据块(访问地址)和访问类型。其中访问类型包含写请求或读请求。网卡设备会确定需要写入的数据块对应的元数据的状态属性,当数据块对应的元数据的状态属性为空时,则网卡设备将该第二写请求的数据写入到对应的数据块中,并将该元数据的状态属性更新为第二客户端写入,该第二客户端写入表示第二客户端正在将数据写入到对应的数据块中。另一种实现,状态属性显示不存在访问冲突,网卡设备将该第二写请求的数据写入到对应的数据块中,并将该元数据的状态属性更新为第二客户端写入,该第二客户端写入表示第二客户端正在将数据写入到对应的数据块中。
96.可以理解的是,在实际应用过程中,当正在将第二写请求的数据写入到对应的数据块时,该元数据的状态属性还可以有其他的状态属性,例如更新为写入状态,该写入状态表示该数据块有数据正在写入,可以理解的是,还可以有其他形式的状态属性,只要该状态属性可以表示有数据正在输入对应的数据块即可,本技术实施例不对此做具体限定。
97.在实际应用过程中,该元数据可以包括但不限于数据块的版本号、冲突状态以及最近访问的客户端id中的一种或多种。
98.例如通过version1.0来表示该数据块的版本号,可以理解的是,还可以通过其他形式来表示该数据块的版本号,例如v1.1,具体此处不做限定。
99.例如通过位图bitmap来标识数据块的状态属性,可以理解的是,还可以通过其他形式来表示该数据块的状态属性,具体此处不做限定。
100.例如可以通过拥有者的id(owner id)来表示最近一次数据块访问者,即客户端id。可以理解的是,还可以通过其他形式来表示该最近一次数据块访问者,具体此处不做限定。
101.在步骤303中,第一客户端向网卡设备发送第一访问请求。
102.当网卡设备更新元数据的状态属性之后,第一客户端需要访问该存储节点,例如,需要将数据写入该存储节点中,第一客户端向存储节点对应的网卡设备发送第一访问请求,该第一访问请求用于将第一客户端的第二数据写入存储节点中的数据块中。
103.可以理解的是,该第一访问请求还可以用于读取该存储节点中的数据,具体此处不做限定。
104.在步骤304中,网卡设备根据第一访问请求和元数据确定冲突。
105.当网卡设备接收到第一客户端发送的第一访问请求时,当该第一访问请求是写请求时,则网卡设备解析该第一访问请求中的第二数据,即解析第二数据对应的io数据包,得到该第二数据对应的io数据包访问的数据块(访问地址)和访问类型。其中访问类型包含写请求或读请求。网卡设备根据第二数据对应的访问地址,查找对应的元数据,并查看该元数据的状态属性,当第二数据对应的io数据包需要写入访问地址和第二写请求的数据对应的io数据包需要写入访问地址相同时,即该元数据的状态属性为第一客户端写入时,则网卡设备确定发生冲突。
106.可以理解的是,当第一访问请求为读请求时,该网卡设备根据需要读取的地址和第二写请求的数据对应的写入地址相同,则网卡设备确定发生冲突。第一访问请求为写请求时,网卡设备同样也确定发生冲突。
107.在步骤305中,网卡设备根据处理策略处理冲突。
108.当网卡设备确定发生冲突时,网卡设备调用之前设置的处理策略,根据不同的处理策略,处理该冲突。对该第二数据作出不同的处理方式。
109.例如,当该第一访问请求为写请求时,该处理策略可以是将该第二数据对应的io数据包发送给存储节点的业务软件,即将该第二数据对应的io数据包发送给存储节点的处理器,并且向该处理器发送第一冲突通知,该第一冲突通知表示该第二客户端发送的第二写请求与第一客户端发送的第一访问请求冲突了,即第二写请求需要写入的数据块和第一访问请求正在写入的数据块相同。
110.当处理器获取到该第一冲突通知和第二数据之后,会对该第二数据做出进一步的处理。
111.例如,当处理器获取到该第二数据之后,会按照获取该第二数据的时间顺序,将该第二数据写入对应的日志区中,当第二写请求的数据写入完成之后,再将第二数据写入到对应的数据块中。
112.在实际应用过程中,可能存在多个客户端同时网卡设备发送针对同一个数据块的写入请求,当网卡设备将多个客户端需要写入的数据发送给处理器时,处理器会根据写入
日志区的顺序,在当前客户端对该数据块写入完成之后,处理器会按照日志区的写入顺序,将多个客户端需要写入该数据块的数据再写入到该数据块中。
113.需要说明的是,在实际应用过程中,还可以通过其他处理策略处理该第二数据,例如,该处理策略可以是网卡设备丢弃该第二数据。
114.当网卡设备确定发生写冲突时,网卡设备不对该第二数据做处理,即丢弃该第二数据,并向第一客户端发送第二冲突通知,该第二冲突通知用于表示该第二客户端发送的第二写请求与第一客户端发送的第一访问请求冲突了,即第二写请求需要写入的数据块和第一访问请求正在写入的数据块是相同的。
115.当第一客户端接收到网卡设备发送的第二冲突通知后,第一客户端会做出进一步的处理。
116.例如,当第一客户端接收到该第二冲突通知后,第一客户端会放弃第二数据的输入,即不再向网卡设备发送第二数据的写入请求。
117.可以理解的是,当第一客户端接收到网卡设备发送的第二冲突通知后,第一客户端还可以有其他的处理方式。
118.例如,在第一客户端接收到该第二冲突通知后,第一客户端会继续生成新的写入请求,该新的写入请求用于请求将第二数据写入对应的数据块中,第一客户端继续向网卡设备发送新的写入请求。
119.可以理解的是,第一客户端还可以有其他的处理方式,例如在收到该第二冲突通知后,等待一定的时长,再向网卡设备发送新的写入请求,本技术实施例不对第一客户端的具体处理方式作出限定。
120.可以理解的是,网卡设备还可以通过其他处理策略处理该第二数据,具体此处不做限定。
121.当第一访问请求是读请求时,网卡设备可以直接将该读请求丢弃,并向第一客户端发送第二冲突通知,让第一客户端做后续处理。
122.在步骤306中,处理器向网卡设备发送反馈结果。
123.当网卡设备在写入第二请求的数据之后,第二客户端在元数据的状态属性为第二客户端写入时,继续向该网卡设备发送新的写入请求,请求在该数据块中写入新的数据,因此时该数据块对应的元数据的状态属性为二客户端写入的状态,即网卡设备确定该新的写入请求不冲突,则网卡设备继续将该第二客户端的新的数据写入到该数据块中,网卡设备在数据写入之后,处理器u会获取到该存储节点写入了对应的数据。当所有数据写入完成时,处理器会向网卡设备发送一个反馈结果,该反馈结果用于表示第二客户端当前的所有数据写入完成。
124.在步骤307中,网卡设备根据反馈结果清除元数据的状态属性。
125.当网卡设备接收到处理器发送的反馈结果时,网卡设备根据该反馈结果,调用网卡设备的冲突清理接口,清除该数据块对应的元数据的状态属性,例如清除该元数据的拥有者id和对应的bitmap的状态属性,并且更新该数据块对应的版本号。
126.在清除了该数据块对应的元数据的状态属性之后,当其他客户端有写入请求需要将数据要写入该数据块时,则网卡设备根据当前元数据的状态属性,确定该写入请求不冲突,并将该其他客户端的数据写入该数据块。
127.在实际应用过程中,步骤306和步骤307为可选步骤,当网卡设备也可以不根据处理器的反馈结果来进行清除元数据的状态属性,例如当第一客户端写入时,启动定时器,当定时器到时时,则清除数据块对应的元数据的状态属性,具体此处不做限定。
128.本技术实施例中,当发生冲突时,网卡设备根据处理策略处理该冲突,避免了通过软件来进行冲突管理,节省了存储节点处理器的资源。
129.上面对本技术实施例中的数据处理方法进行了描述,下面对本技术实施例中的网卡设备进行描述,请参阅图4,为本技术提供的网卡设备的一个实施例的结构示意图。
130.一种网卡设备,该网卡设备包含接口401和处理器402,其中,接口401与处理器402通信,接口401用于接收第一客户端的第一访问请求;第一访问请求携带访问地址;
131.处理器402用于检测第一访问请求是否存在冲突;
132.当检测到第一访问请求存在冲突,根据处理策略处理冲突。
133.本实施例中,网卡设备中接口401和处理器402所执行的操作与前述图3所示实施例描述的类似,此处不再赘述。
134.请参阅图4,为本技术提供的网卡设备的另一实施例的结构示意图。
135.一种网卡设备,该网卡设备包含接口401和处理器402,其中,接口401与处理器402通信,接口401用于接收第一客户端的第一访问请求;第一访问请求携带访问地址;
136.处理器402用于检测第一访问请求是否存在冲突;
137.当检测到第一访问请求存在冲突,根据处理策略处理冲突。
138.可选的,第一访问请求为写请求,接口401还用于:在接收第一客户端的第一访问请求之前接收第二客户端的第二写请求,第二写请求包含访问地址。
139.处理器402具体用于检测到第一访问请求与第二写请求冲突。
140.可选的,第一访问请求为读请求,接口401还用于:在接收第一客户端的第一访问请求之前接收第三客户端的第三写请求,第三写请求包含访问地址。
141.处理器402具体用于检测到第一访问请求与第三写请求冲突。
142.可选的,第一访问请求用于将第二数据写入数据块;
143.处理器402具体用于根据第一访问请求和元数据确定存在冲突,元数据表示数据块的状态属性;
144.处理器402具体用于根据处理策略处理第二数据,处理策略由处理器生成。
145.可选的,处理器402还用于根据第二写请求更新元数据的状态属性为第一客户端写入。
146.可选的,处理器402还用于根据第二写请求更新元数据的状态属性为写入状态。
147.可选的,接口401用于向数据块对应的处理器发送第一冲突通知,第一冲突通知用于表示第一访问请求与第二写请求冲突;
148.可选的,处理器402用于丢弃第二数据;
149.接口401还用于向第一客户端发送第二冲突通知,第二冲突通知用于表示第一访问请求与第二写请求冲突。
150.可选的,接口401还用于接收处理器发送的反馈结果,反馈结果表示第二写请求的数据写入完成;
151.处理器402还用于根据反馈结果清除元数据的状态属性。
152.可选的,元数据的状态属性包括:版本号、冲突状态、当前访问的客户端号、对应的数据块。
153.本实施例中,网卡设备中接口401和处理器402所执行的操作与前述图3所示实施例描述的类似,此处不再赘述。
154.请参阅图5,为本技术提供的网卡设备的另一实施例的结构示意图。
155.接收单元501,用于接收第一客户端的第一访问请求,第一访问请求携带访问地址;
156.处理单元502用于检测第一访问请求是否存在冲突;
157.当检测到第一访问请求存在冲突,处理单元502根据处理策略处理冲突。
158.本实施例中,网卡设备中各单元所执行的操作与前述图3所示实施例描述的类似,此处不再赘述。
159.请参阅图6,为本技术提供的网卡设备的另一实施例的结构示意图。
160.接收单元601,用于接收第一客户端的第一访问请求,第一访问请求携带访问地址;
161.处理单元602用于检测第一访问请求是否存在冲突;
162.当检测到第一访问请求存在冲突,处理单元602根据处理策略处理冲突。
163.可选的,第一访问请求为写请求,接收单元601还用于在接收第一客户端的第一访问请求之前接收第二客户端的第二写请求,第二写请求包含访问地址。
164.处理单元602具体用于检测到第一访问请求与第二写请求冲突。
165.可选的,第一访问请求为读请求,接收单元601在接收第一客户端的第一访问请求之前接收第三客户端的第三写请求,第三写请求包含访问地址。
166.处理单元602具体用于检测到第一访问请求与第三写请求冲突。
167.可选的,第一访问请求用于将第二数据写入访问地址;
168.处理单元602具体用于根据第一访问请求和元数据确定存在冲突,元数据表示访问地址的状态属性;
169.处理单元602具体用于根据处理策略处理第二数据,处理策略由处理器生成。
170.可选的,处理单元602还用于根据第二写请求更新元数据的状态属性为第二客户端写入。
171.可选的,处理单元602还用于根据第二写请求更新元数据的状态属性为写入状态。
172.可选的,网卡设备还包括:
173.发送单元603,用于向访问地址对应的处理器发送第一冲突通知,第一冲突通知用于表示第一访问请求与第二写请求冲突;
174.可选的,处理单元602用于丢弃第二数据;
175.发送单元603还用于向第一客户端发送第二冲突通知,第二冲突通知用于表示第一访问请求与第二写请求冲突。
176.可选的,反馈结果表示第二写请求的数据写入完成;
177.处理单元602还用于根据反馈结果清除元数据的状态属性。
178.可选的,元数据的状态属性包括以下至少一种:版本号、冲突状态或当前访问的客户端号。
179.本实施例中,网卡设备中各单元所执行的操作与前述图3所示实施例描述的类似,此处不再赘述。
180.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与网卡设备相关的方法流程。
181.本发明实施例中的存储节点可以为分布式存储系统中的存储节点,也可以为存储阵列中的阵列控制器。本发明对此不作限定。
182.应理解,本技术以上实施例中提及的处理器,可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
183.还应理解,本技术中以上实施例中的处理器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本技术实施例中的存储器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
184.还应理解,本技术实施例中以上实施例中提及的存储器或可读存储介质等,可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
185.本技术实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述任一方法实施例中网卡设备的方法流程。
186.在上述图3中实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
187.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存
储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
188.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
189.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
190.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
191.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
192.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者其他网络设备等)执行本技术图3中实施例所述方法的全部或部分步骤。而该存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
193.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
194.本技术各实施例中提供的消息/帧/信息、模块或单元等的名称仅为示例,可以使用其他名称,只要消息/帧/信息、模块或单元等的作用相同即可。
195.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本技术实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,在本技术的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,a/b可以表示a或b;本技术中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独
存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。
196.取决于语境,如在此所使用的词语“如果”或“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1