一种数据处理方法及装置制造方法及图纸

技术编号:36735581 阅读:14 留言:0更新日期:2023-03-04 10:06
本申请公开了一种数据处理方法及装置,该方法包括:客户端的处理器或网卡生成数据的第一副本和第二副本,由客户端的网卡使用一次单边远程内存访问RDMA方式将第一副本写入存储设备的内存的第一地址以及将第二副本写入该内存的第二地址,或者,由存储设备的网卡根据客户端发送的单边RDMA写请求将数据的第一副本和第二副本分别写入内存的第一地址和第二地址。在存储设备检测到从第一地址读取的第一副本与从第二地址读取的第二副本不一致时,对第一地址存储的数据或第二地址存储的数据执行数据覆盖操作,以使两个内存地址存储的数据相同。实施本申请,通过一次IO消耗实现了数据写入的原子性,降低了数据写入的时延,提高了存储系统的性能。存储系统的性能。存储系统的性能。

【技术实现步骤摘要】
一种数据处理方法及装置


[0001]本申请涉及数据存储领域,尤其涉及一种数据处理方法及装置。

技术介绍

[0002]为了解决数据在写入存储介质的过程中因断电等造成的数据撕裂,即部分数据写入成功以及部分数据写入失败,提出了二次提交方式、三次提交方式等保证了数据写入的原子性,使得该次写请求携带的数据全部写入或全部未写入。
[0003]但是,二次提交方式或三次提交方式都是基于日志的方式将待写入数据在持久化存储,导致输入输出(Input/Output,IO)开销大、网络往返时间长,降低了存储系统的性能。

技术实现思路

[0004]本申请公开了一种数据处理方法及装置,能够实现数据写入的原子性,节省IO开销,提高了存储系统的性能。
[0005]第一方面,本申请提供了一种数据处理方法,该方法包括:客户端的处理器或者网卡生成数据的第一副本和第二副本;其中,处理器与网卡通信;该网卡使用一次单边远程内存访问RDMA方式向存储设备的内存的第一地址写入第一副本,向该内存的第二地址写入第二副本。
[0006]其中,客户端的网卡采用单边RDMA将数据写入存储设备的内存,避免了数据写入过程中双方操作系统的接入,能够减小数据写入过程中内存的带宽、计算力的消耗,提高数据写入的效率。
[0007]上述方法中,客户端的网卡通过一次单边RDMA技术实现了数据的第一副本和第二副本在存储设备的内存中的连续双写,即将第一副本写入存储设备的内存中的第一地址,待第一副本写入第一地址之后,再将第二副本写入该内存的第二地址。如此,节省了数据写入时的IO开销,降低了数据写入的时延,有效提高了存储系统的性能。
[0008]可选地,上述内存为持久化内存。
[0009]实施上述实现方式,持久化内存能提高客户端读、写数据的速度及效率,实现存储的数据的持久性。
[0010]可选地,该方法还包括:该网卡使用单边RDMA方式从第一地址读取第一副本以及从第二地址读取第二副本;该处理器或者网卡校验读取的第一副本和读取的第二副本,并从读取的第一副本和读取的第二副本中确定有效数据。
[0011]实施上述实现方式,客户端的处理器或者网卡还可以验证从第一地址读取的第一副本和从第二地址读取的第二副本的有效性或完整性,以从中取有效的数据使用。
[0012]可选地,该处理器或者网卡校验读取的第一副本和读取的第二副本,并从读取的第一副本和读取的第二副本中确定有效数据,具体是:该处理器或者网卡检测到读取的第一副本与读取的第二副本相同时,确定读取的第一副本和读取的第二副本为有效数据。
[0013]其中,读取的第一副本与读取的第二副本相同包括以下两种实施方式中的任意一
种:
[0014]一具体实施中,读取的第一副本与数据的第一副本相同,且读取的第二副本与数据的第二副本相同。在此情况下,说明数据的第一副本已成功写入内存的第一地址,数据的第二副本已成功写入内存的第二地址。如此,客户端的处理器或网卡确认读取的第一副本和读取的第二副本为有效数据,确保了数据写入的原子性。
[0015]另一具体实施中,读取的第一副本与内存的第一地址存储的初始数据相同,且读取的第二副本与内存的第二地址存储的初始数据相同,其中,第一地址存储的初始数据为数据的第一副本写入内存的第一地址前该第一地址存储的数据,第二地址存储的初始数据为数据的第二副本写入内存的第二地址前该第二地址存储的数据,第一地址存储的初始数据与第二地址存储的初始数据相同。如此,客户端的处理器或网卡确认读取的第一副本和读取的第二副本为有效数据,确保了数据写入的原子性。
[0016]第二方面,本申请提供了一种数据处理方法,该方法包括:存储设备的网卡接收客户端发送的单边远程内存访问RDMA写请求;单边RDMA写请求包含数据的第一副本和第二副本,以及第一副本在存储设备的内存的第一地址和第二副本在该内存的第二地址;网卡将第一副本写入第一地址,以及将第二副本写入第二地址。
[0017]上述方法中,存储设备的网卡使用一次单边RDMA方式实现数据的第一副本和数据的第二副本在存储设备的内存中的连续双写,即将第一副本写入内存的第一地址之后再将第二副本写入内存的第二地址,不仅减少了IO消耗,还降低了数据写入的延时,有效提高了存储系统的性能。
[0018]可选地,该内存为持久化内存。
[0019]实施上述实现方式,持久化内存能提高客户端读、写数据的速度及效率,实现存储的数据的持久性。
[0020]可选地,该方法还包括:存储设备的网卡或处理器从第一地址读取第一副本以及从第二地址读取第二副本;存储设备的网卡或处理器校验读取的第一副本和读取的第二副本,在检测到读取的第一副本与读取的第二副本不一致时,对第一地址存储的数据或第二地址存储的数据执行数据覆盖操作。
[0021]实施上述实现方式,存储设备的网卡或处理器在检测到读取的第一副本和读取的第二副本不一致时,可以执行数据覆盖操作以使第一地址存储的数据与第二地址存储的数据相同,从而实现了数据写入的原子性。
[0022]可选地,读取的第一副本包括第一数据和第一校验码,读取的第二副本包括第二数据和第二校验码,在满足以下至少一个条件时,读取的第一副本与读取的第二副本不一致:第一数据与第二数据不相同;或第一校验码与第二校验码不相同。
[0023]其中,第一数据与第二数据不相同是指第一数据的内容与第二数据的内容不相同。第一校验码与第二校验码不相同是指第一校验码的内容与第二校验码的内容不相同。
[0024]一具体实施中,第一数据的长度与第二数据的长度相同,第一校验码的长度与第二校验码的长度相同。
[0025]可选地,对第一地址存储的数据或第二地址存储的数据执行数据覆盖操作,包括:在基于第一校验码校验第一数据成功时,使用第一数据和第一校验码覆盖第二地址存储的数据。
[0026]实施上述实现方式,基于第一校验码校验第一数据成功说明读取的第一副本是完整、有效的,也就是说,第一地址存储的数据是完整、有效的,因此,使用第一数据和第一校验码覆盖第二地址存储的数据,以使第一地址存储的数据与第二地址存储的数据完全相同,从而实现了数据写入的原子性。
[0027]可选地,对第一地址存储的数据或第二地址存储的数据执行数据覆盖操作,包括:在基于第一校验码校验第一数据失败且基于第二校验码校验第二数据成功时,使用第二数据和第二校验码覆盖第一地址存储的数据。
[0028]实施上述实现方式,基于第一校验码校验第一数据失败说明读取的第一副本发生了数据撕裂,也就是说,第一地址存储的数据发生了数据撕裂。基于第二校验码校验第二数据成功说明读取的第二副本是完整、有效的,也就是说,第二地址存储的数据是完整、有效的,因此,使用第二数据和第二校验码覆盖第一地址存储的数据,以使第一地址存储的数据与第二地址存储的数据完全相同,从而实现了数据写入的原子性。
[0029]可选地,该方法还包括:存储设备的网卡或处理器在检测到读取的第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:客户端的处理器或者网卡生成数据的第一副本和第二副本;其中,所述处理器与所述网卡通信;所述网卡使用一次单边远程内存访问RDMA方式向存储设备的内存的第一地址写入所述第一副本,向所述内存的第二地址写入所述第二副本。2.根据权利要求1所述的方法,其特征在于,所述内存为持久化内存。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述网卡使用单边RDMA方式从所述第一地址读取所述第一副本以及从所述第二地址读取所述第二副本;所述处理器或者网卡校验读取的第一副本和读取的第二副本,并从所述读取的第一副本和所述读取的第二副本中确定有效数据。4.根据权利要求3所述的方法,其特征在于,所述处理器或者网卡校验读取的第一副本和读取的第二副本,并从所述读取的第一副本和所述读取的第二副本中确定有效数据,包括:所述处理器或者网卡检测到读取的第一副本与读取的第二副本相同时,确定所述读取的第一副本和所述读取的第二副本为有效数据。5.一种数据处理方法,其特征在于,所述方法包括:存储设备的网卡接收客户端发送的单边远程内存访问RDMA写请求;所述单边RDMA写请求包含数据的第一副本和第二副本,以及所述第一副本在所述存储设备的内存的第一地址和所述第二副本在所述内存的第二地址;所述网卡将所述第一副本写入所述第一地址,以及将所述第二副本写入所述第二地址。6.根据权利要求5所述的方法,其特征在于,所述内存为持久化内存。7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:所述存储设备的网卡或处理器从所述第一地址读取所述第一副本以及从所述第二地址读取所述第二副本;所述存储设备的网卡或处理器校验读取的第一副本和读取的第二副本,在检测到所述读取的第一副本与所述读取的第二副本不一致时,对所述第一地址存储的数据或所述第二地址存储的数据执行数据覆盖操作。8.根据权利要求7所述的方法,其特征在于,所述读取的第一副本包括第一数据和第一校验码,所述读取的第二副本包括第二数据和第二校验码,在满足以下至少一个条件时,所述读取的第一副本与所述读取的第二副本不一致:所述第一数据与所述第二数据不相同;或所述第一校验码与所述第二校验码不相同。9.根据权利要求8所述的方法,其特征在于,所述对所述第一地址存储的数据或所述第二地址存储的数据执行数据覆盖操作,包括:在基于所述第一校验码校验所述第一数据成功时,使用所述第一数据和所述第一校验码覆盖所述第二地址存储的数据。10.根据权利要求8所述的方法,其特征在于,所述对所述第一地址存储的数据或所述
第二地址存储的数据执行数据覆盖操作,包括:在基于所述第一校验码校验所述第一数据失败且基于所述第二校验码校验所述第二数据成功时,使用所述第二数据和所述第二校验码覆盖所述第一地址存储的数据。11.一种数据处理装置,其特征在于,所述装置包括:生成单元,用于生成数据的第一副本和第二副本;写入单元,用于使用一次单边远程内存访问RDMA方式向存储设备的内存的第一地址写入所述第一副本,向所述内存的第二地址写入所述第二副本。12.根据权利要求11所述的装置,其特征在于,所述内存为持久化内存。13.根据权利要求11或12所述的装置,其特征在于,所述装置还包括:读取单元,用于使用单边RDMA方式从所述第一地址读取所述第一副本以及从所述第二地址读取所述第二副本;校验单元,用于校验读取的第一副本和读取的第二副本,并从所述读取的第一副本和所述读取的第二副本中确定有效数据。14.根据权利要求13所述的装置,其特征在于,所述校验单元,具体用于:检测到读取的第一副本与读取的第二副本相同时,确定所述读取的第一副本和所述读取的第二副本为有效数据。15.一种数据处理装置,其特征在于,所述装置包括:接收单元,用于接收客户端发送的单边远程内存访问RDMA写请求;所述单边RDMA写请求包含数据的第一副本和第二副本,以及所述第一副本在所述存储设备的内存的第一地址和所述第二副本在所述内存的第二地址;写入单元,用于将所述第一副本写入所述第一地址,以及将所述第二副本写入所述第二地址。16.根据权利要求15所述的装置,其特征在于,所述内存为持久化内存。17.根据权利要求15或...

【专利技术属性】
技术研发人员:张陈旭罗小东
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1