CN101459676A - 针对文件系统的基于高速网络的消息传输框架和方法 - Google Patents

针对文件系统的基于高速网络的消息传输框架和方法 Download PDF

Info

Publication number
CN101459676A
CN101459676A CNA2008102474628A CN200810247462A CN101459676A CN 101459676 A CN101459676 A CN 101459676A CN A2008102474628 A CNA2008102474628 A CN A2008102474628A CN 200810247462 A CN200810247462 A CN 200810247462A CN 101459676 A CN101459676 A CN 101459676A
Authority
CN
China
Prior art keywords
message
client
file system
server
data
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
Application number
CNA2008102474628A
Other languages
English (en)
Other versions
CN101459676B (zh
Inventor
杨栋
孟丹
熊劲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008102474628A priority Critical patent/CN101459676B/zh
Publication of CN101459676A publication Critical patent/CN101459676A/zh
Application granted granted Critical
Publication of CN101459676B publication Critical patent/CN101459676B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种针对文件系统的基于高速网络的消息传输框架和方法。该消息传输框架包括:文件系统接口层,用于向文件系统层提供创建通信上下文、建立连接通道、创建操作上下文及网络传输的接口;文件操作处理层,其分别与文件系统接口层和网络协议封装层通信,用于处理文件系统接口层提交的操作上下文,并提交网络通信操作给网络协议封装层;网络协议封装层,其与网络协议层通信,将文件操作处理层提交的网络通信操作进行封装后通过网络协议层执行消息传输。本发明将文件系统的上层操作和InfiniBand通信操作相匹配,最大化利用高速网络特性。

Description

针对文件系统的基于高速网络的消息传输框架和方法
技术领域
本发明总体上涉及文件系统的消息传输框架和方法,特别涉及一种为文件系统提供高速网络支持的消息传输框架和方法。
背景技术
机群系统以其可扩展性好、性能价格比高、高可用性强、可继承现有软硬件资源和开发周期短、可编程性好等特点,目前已成为超级服务器的主流体系结构。现阶段许多数据密集型应用需要海量存储以及高数据传输带宽的支持,在这种环境下,数据的高速访问成为关键。机群文件系统是目前机群系统解决输入/输出(I/O)瓶颈问题的一种重要方式,其主要策略是采用高效的数据布局以及高速网络系统。高速网络系统例如InfiniBand等逐渐成为高性能计算领域服务器互联网络的主流,它提供低延迟和高带宽,能够有效减轻主机CPU和内存总线的压力。
分布式文件系统一般通过通用支撑协议,像InfiniBand协议栈中的IPoIB或SDP协议来支持高速网络,这些支撑协议基于IB Verbs实现,目标是对上层软件保持透明,因而协议内部涉及多级缓存拷贝以及多次语义转换,对传输性能造成了影响;再者,当前的SDP协议实现都基于InfiniBand中的RDMA Read操作,没有利用效率更高的RDMA Write操作,从而使得操作效率不够理想;另外,由于使用更为上层的SDP协议,使得机群文件系统消息传输的模式不能与底层的网络协议IB Verbs完全匹配,导致一些InfiniBand特性无法完全利用,例如不能实现RDMA传输多页。
目前分布式文件系统支持InfiniBand网络的常用方法是利用通用协议IPoIB或SDP。不过这些协议的目标是通用性,因而内部存在多级缓存拷贝和语义转换,导致文件系统传输性能受到制约。
另外,一些文件系统诸如PVFS和DAFS,通过定制面向自身应用的协议来支持InfiniBand网络,其存在的不足是:首先这些协议不适合大规模的科学计算;其次,这些协议基本上都实现在用户态,而一些文件系统需要核心态的支持;再次,这些协议的设计上与上层文件系统模块的耦合性较大,不利于扩展。
发明内容
本发明提供一种针对文件系统的基于高速网络的消息传输框架和方法,其能够解决由于现有技术的不足所导致的一个或多个问题。
本发明的目的是提供一种针对文件系统的基于高速网络的消息传输框架和方法,克服现有的支持协议不能充分利用高速网络性能以及支持文件系统时存在的局限性。
为了上述目的,本发明提供如下技术方案。
一种针对文件系统的基于高速网络的消息传输框架,其位于文件系统层之下、网络协议层之上并与所述文件系统层及网络协议层通信,该消息传输框架包括文件系统接口层、文件操作处理层及网络协议封装层;其中:
文件系统接口层,用于向文件系统层提供创建通信上下文的接口、建立连接通道的接口、创建操作上下文的接口及网络传输的接口;
文件操作处理层,其分别与文件系统接口层和网络协议封装层通信,用于处理文件系统层通过文件系统接口层提交的操作上下文,并提交网络通信操作给网络协议封装层;
网络协议封装层,其与网络协议层通信,将文件操作处理层提交的网络通信操作进行封装后通过网络协议层执行消息传输。
进一步地,所述网络传输的接口包括异步消息传输接口和同步消息传输接口。
进一步地,所述文件操作处理层包括通信方式选择单元,用于将所述文件系统层通过所述文件系统接口层提交的文件操作与网络通信操作相匹配,使得不同类型的文件操作遵循不同网络传输方式。
进一步地,所述的文件操作与网络通信操作相匹配是指:文件系统中的普通元数据操作采用Send/Receive的通信方式,读目录元数据操作采用Send/Receive加RDMA Write的通信方式,写文件数据操作采用Send/Receive加RDMA Read的通信方式,读文件数据操作采用Send/Receive加RDMA Write的通信方式。
进一步地,所述网络协议封装层包括:
通信模型管理单元,用于为文件操作处理层提交的网络通信操作选择网络协议;
通信方式管理单元,用于调用网络协议层进行网络通信操作,对网络协议层的接口进行封装,该通信方式管理单元包括创建连接接口、中断连接接口、发送消息接口、接收消息接口;
通信缓存管理单元,用于管理网络协议的消息传输中涉及的消息缓存。
为了上述目的,本发明还提供一种针对文件系统的基于高速网络的消息传输方法,其应用于文件系统层、针对文件系统的基于高速网络的消息传输框架和网络协议层结合构成文件系统对于高速网络的应用框架,该方法包括:
通过Send/Receive操作进行普通元数据访问的消息传输步骤;和/或
通过Send/Receive加RDMA Write操作进行读目录元数据访问的消息传输步骤;和/或
通过Send/Receive加RDMA Write操作进行读文件数据访问的消息传输步骤;和/或
通过Send/Receive加RDMA Read操作进行写文件数据访问的消息传输步骤。
进一步地,所述普通元数据访问的消息传输步骤采用客户端/服务器的通信模型,具体包括以下步骤:
步骤S11,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S12,客户端通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S13,客户端提交元数据访问请求消息给InfiniBand工作队列发送;
步骤S14,服务器感知消息到达,执行本地元数据操作,并通过Send操作提交元数据结果给InfiniBand队列发送;
步骤S15,客户端感知并接收应答消息。
进一步地,在上述步骤S11中还包括:客户端和服务器建立连接通道;和连接通道建立时内部消息缓冲池在连接两端建立,并注册发送缓冲区和接收缓冲区。
进一步地,所述步骤S13具体包括如下步骤:
步骤S13a,客户端从内部消息缓冲池中获得一个发送缓冲区,将消息从文件系统层缓冲区拷贝其中;
步骤S13b,客户端通过Receive操作先将请求对应的应答缓冲区提交到InfiniBand的工作队列等待接收应答消息,然后通过Send操作将请求消息提交到InfiniBand的工作队列发送。
进一步地,上述步骤S14具体包括如下步骤:
步骤S14a,服务器通过完成机制接收客户端发来的请求消息;
步骤S14b,服务器解析请求消息,并依据解析结果执行本地文件系统元数据操作,同时将保存请求消息的消息缓冲区重新提交到工作队列上,等待接收客户端的请求消息;服务器的本地元数据操作执行完成后,将应答消息拷贝到发送消息缓冲区;
步骤S14c,服务器通过Send操作将应答消息提交到InfiniBand的工作队列发送;
进一步地,所述步骤S14还包括:
步骤S14d,当服务器完成机制感知到应答消息发送操作完成后,释放发送应答占用的消息缓冲区。
进一步地,步骤S15中还包括:当客户端通过完成机制感知事先提交的接收缓冲区接收到应答消息后,释放发送请求占用的消息缓冲区和接收应答占用的消息缓冲区到内部缓冲池。
进一步地,所述读目录访问的消息传输步骤采用客户端/服务器的通信模型,其包括如下步骤:
步骤S21,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S22,客户端通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S23,客户端提交读目录元数据访问请求消息给InfiniBand工作队列发送;
步骤S24,服务器感知消息到达,解析消息,执行本地读目录元数据操作,通过RDMA Write操作将结果数据写到客户端的数据缓冲区中,然后通过Send操作提交应答通知给InfiniBand队列发送;
步骤S25,客户端感知并接收服务器的应答通知。
进一步地,所述写文件数据访问的消息传输步骤采用客户端/服务器的通信模型,其包括如下步骤:
步骤S31,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S32,客户端注册文件数据的缓冲区,并通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S33,服务器感知客户端请求消息到达,解析消息,根据消息内容分配并注册本地数据缓冲区,然后通过RDMA Read操作将客户端数据缓冲区的文件数据读到本地数据缓冲区中,接着执行本地文件操作,将本地数据缓冲区数据写到磁盘,最后通过Send操作提交应答通知给InfiniBand队列发送;
步骤S34,客户端收到服务器的应答消息。
进一步地,所述步骤S32具体包括如下步骤:
步骤S32a,客户端将所要传输的文件数据缓冲区进行注册;
步骤S32b,客户端从内部消息缓冲池中获得发送缓冲,先将请求消息编码,增加文件数据区域的注册信息,将编码后的消息拷贝到发送缓冲区;
步骤S32c,客户端通过Receive操作先将请求对应的应答缓冲区提交到InfiniBand的工作队列等待接收应答消息,然后通过Send操作将请求消息提交到InfiniBand的工作队列发送。
进一步地,所述步骤S33具体包括如下步骤:
步骤S33a,服务器通过完成机制感知事先提交的接收缓冲区接收到请求消息,将收到的消息解码获得客户端数据缓冲区的地址信息和传输方向;
步骤S33b,服务器根据客户端的数据大小分配内存空间并进行注册;
步骤S33c,服务器通过RDMA Read操作从客户端数据缓冲区中读取数据到本地缓冲区,完成机制捕获RDMA Read操作完成时将数据缓冲区注销;
步骤S33d,服务器执行本地文件数据操作,将获得的数据写入磁盘;
步骤S33e,服务器向客户端发送应答消息,并感知应答消息发送完成。
进一步地,所述步骤S34还包括:收到应答消息之后,将本地数据缓冲区注销。
进一步地,所述读文件数据访问的消息传输步骤采用客户端/服务器的通信模型,其包括如下步骤:
步骤S41,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S42,客户端注册存放文件数据的缓冲区,并通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S43,客户端提交读文件数据访问请求消息给InfiniBand工作队列发送;
步骤S44,服务器感知客户端请求消息到达,解析消息,接着执行本地文件操作,将文件数据从磁盘读读到本地数据缓冲区中,并注册该数据缓冲区,然后通过RDMA Write操作将本地数据缓冲区的文件数据写到客户端注册的数据缓冲区中,最后通过Send操作提交完成应答消息通知给InfiniBand队列发送;
步骤S45,客户端感知并接收服务器的应答通知。
进一步地,在上述步骤S24、S33和S44中,当执行执行客户端请求读或写文件数据操作时,采用异步多页传输方法,其具体包括如下步骤:
步骤S51,初始化RDMA操作之前,服务器和客户端首先确定输入/输出区域的客户端和服务器的内存地址及长度;
步骤S52,客户端通过注册接口将多个内存区域注册,注册后这些内存段被映射到InfiniBand主机通道适配器上虚拟连续,注册后得到导向标志;
步骤S53,客户端将导向标志、目的内存地址和长度编码到请求消息中,发送到服务器;
步骤S54,服务器解码请求消息,将客户端请求读或写的文件数据区域注册;
步骤S55,服务器根据客户端发来请求消息的内容,将本地离散内存区域的数据提交发送,并等待RDMA操作的完成。
步骤S56,当客户端请求读文件数据时,服务器用RDMA Write操作从服务器内存地址直接拷贝文件数据到客户端内存地址;当客户端请求写文件数据时,服务器用RDMA Read操作从客户端内存地址直接拷贝文件数据到服务器内存地址;。
步骤S57,RDMA操作的完成后,将通知文件系统层。
进一步地,步骤S11和S12分别还包括在服务器和客户端采用预注册方法来注册消息发送或接收缓冲区;所述预注册方法是指在执行网络通信操作之前预先分配缓存区并注册。
进一步地,所述步骤S22还包括:服务器和客户端采用快速内存注册方法、全局导向标志注册方法或缓存注册表来注册文件数据缓冲区;其中
所述快速内存注册方法是指在创建通信上下文的时候就分配InfiniBand主机通道适配器上转换保护表的入口以及导向标志,在转换保护表缓存池中分配到入口之后被映射到一个虚拟内存区域;
所述全局导向标志注册方法是指在文件系统处于核心态时,允许通信操作使用一个特定的远程导向标志,通信过程使用物理地址,在通信开始前钉住内存,获得虚拟到物理地址的地址映射;
所述缓存注册表方法是指记录在通信过程中已注册好的内存区域,并延迟注销该内存区域,以实现缓存重用。
本发明所产生的有益效果包括:
高效性:这有两个方面,一是将文件系统的上层操作和InfiniBand通信操作相匹配,最大化利用高速网络特性;二是针对高速网络的消息传输特征,利用性能优化技术,使得文件系统的性能大大提高。
透明性:本发明的消息传输框架在消息传输层面支持高速网络,对上层文件系统保持透明,保证了文件系统的独立性,使其能够专注于本身工作。
适应性:无论文件系统组件是用户态与用户态通信,或是核心态与核心态通信,还是用户态与核心态通信,本发明都能够为其提供高性能支持。
移植性:本发明的消息传输框架建立在高速网络底层的网络协议之上,通过消息传输框架的网络协议封装层搭建,因而可以方便地移植到其他高速网络协议上。
附图说明
图1是本发明的针对文件系统的基于高速网络的消息传输框架结构图;
图2是本发明的针对文件系统的基于高速网络的普通元数据访问时消息传输流程图;
图3是本发明的针对文件系统的基于高速网络的读目录访问时消息传输流程图;
图4是本发明的针对文件系统的基于高速网络的写文件数据访问时消息传输流程图;
图5是本发明的针对文件系统的基于高速网络的读文件数据访问时消息传输流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的针对文件系统的基于高速网络的消息传输框架和方法进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的针对文件系统的基于高速网络的消息传输框架1,位于文件系统层10之下、网络协议层20之上并与所述文件系统层10及网络协议层20通信,本实施的文件系统层10以分布式文件系统层10为例,也可以是其它类型的文件系统。分布式文件系统层10、消息传输框架1和网络协议层20紧密结合,共同构成文件系统对于高速网络的应用框架。该针对文件系统的基于高速网络的消息传输框架1包括文件系统接口层11、文件操作处理层12及网络协议封装层13,其中:
文件系统接口层11,用于向文件系统层10提供创建通信上下文的接口、建立连接通道的接口、创建操作上下文的接口及网络传输的接口。文件系统层10发出的文件操作通过文件系统接口层11传递到文件操作处理层12。
文件操作处理层12,其分别与文件系统接口层11和网络协议封装层13通信,用于处理文件系统层10通过文件系统接口层11提交的操作上下文,并提交网络通信操作给网络协议封装层13;
网络协议封装层13,其与网络协议层20通信,将文件操作处理层12提交的网络通信操作进行封装后通过网络协议层20执行消息传输。
较佳地,在所述文件系统接口层11中,所述网络传输的接口包括异步消息传输接口和同步消息传输接口。所述网络传输包括有同步和异步两种传输方式,当文件系统层10读写文件时调用异步消息传输接口,实现数据的并发传输,保证较高的聚合I/O带宽;当文件系统层10进行元数据访问时调用同步消息传输接口,保证元数据操作的低延迟。
较佳地,所述文件操作处理层12包括通信方式选择单元(未示出),用于将文件系统层10通过所述文件系统接口层11提交的文件操作与网络通信操作相匹配,使得不同类型的文件操作遵循不同网络传输方式。从而,能够使得高速网络利用率最大化。具体来说,文件系统中的普通元数据操作采用Send/Receive的通信方式,读目录元数据操作采用Send/Receive加RDMAWrite的通信方式,写文件数据操作采用Send/Receive加RDMA Read的通信方式,读文件数据操作采用Send/Receive加RDMA Write的通信方式。
较佳地,所述网络协议封装层13,包括通信方式管理单元131、通信模型管理单元132和通信缓存管理单元133;其中:
通信方式管理单元131,用于调用网络协议层20的操作,对网络协议层20的接口进行封装,该通信方式管理单元131包括创建连接接口、中断连接接口、发送消息接口、接收消息接口等;
通信模型管理单元132,用于为文件操作处理层12提交的网络通信操作选择网络协议。
通信缓存管理单元133:用于管理网络协议的消息传输中涉及的消息缓存。
本发明的针对文件系统的基于高速网络的消息传输方法,包括:
通过Send/Receive操作进行普通元数据访问(除读目录之外)的消息传输步骤,和/或通过Send/Receive加RDMA Write操作进行读目录元数据访问的消息传输步骤,和/或通过Send/Receive加RDMA Write操作进行读文件数据访问的消息传输步骤,和/或通过Send/Receive加RDMA Read操作进行写文件数据访问的消息传输步骤。
如图2所示,所述普通元数据访问的消息传输步骤,在该步骤中,采用客户端/服务器的通信模型,具体包括以下步骤:
步骤S11,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S12,客户端通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S13,客户端提交元数据访问请求消息给InfiniBand工作队列发送;
较佳地,所述步骤S13具体包括如下步骤:
步骤S13a,客户端从内部消息缓冲池中获得一个发送缓冲区,将消息从文件系统层缓冲区拷贝其中;
步骤S13b,客户端通过Receive操作先将请求对应的应答缓冲区提交到InfiniBand的工作队列等待接收应答消息,然后通过Send操作将请求消息提交到InfiniBand的工作队列发送。
较佳地,在上述步骤S11中还包括:客户端和服务器建立连接通道;和连接通道建立时内部消息缓冲池在连接两端建立,注册发送缓冲区和接收缓冲区。
步骤S14,服务器感知消息到达,执行本地元数据操作,并通过Send操作提交元数据结果给InfiniBand队列发送。
较佳地,上述步骤S14具体包括如下步骤:
步骤S14a,服务器通过完成机制接收客户端发来的请求消息;
步骤S14b,服务器解析请求消息,并依据解析结果执行本地文件系统元数据操作,同时将保存请求消息的消息缓冲区重新提交到工作队列上,等待接收客户端的请求消息;服务器的本地元数据操作执行完成后,将应答消息拷贝到发送消息缓冲区;
步骤S14c,服务器通过Send操作将应答消息提交到InfiniBand的工作队列发送;
较佳地,上述步骤S14还包括:
步骤S14d,当服务器完成机制感知到应答消息发送操作完成后,释放发送应答占用的消息缓冲区。
步骤S15,客户端感知并接收应答消息。
较佳地,步骤S15中还包括:当客户端通过完成机制感知事先提交的接收缓冲区接收到应答消息后,释放发送请求占用的消息缓冲区和接收应答占用的消息缓冲区到内部缓冲池。
如图3所示,所述读目录访问的消息传输步骤,在该步骤中,采用客户端/服务器的通信模型,具体包括如下步骤:
步骤S21,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S22,客户端通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S23,客户端提交读目录元数据访问请求消息给InfiniBand工作队列发送;
步骤S24,服务器感知消息到达,解析消息,执行本地读目录元数据操作,通过RDMA Write操作将结果数据写到客户端的数据缓冲区中,然后通过Send操作提交应答通知给InfiniBand队列发送;
步骤S25,客户端感知并接收服务器的应答通知。
如图4所示,所述写文件数据访问的消息传输步骤,在该步骤中,采用客户端/服务器的通信模型,具体包括如下步骤:
步骤S31,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S32,客户端注册文件数据的缓冲区,并通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
较佳地,所述步骤S32,具体包括如下步骤:
步骤S32a,客户端将所要传输的文件数据缓冲区进行注册;
步骤S32b,客户端从内部消息缓冲池中获得发送缓冲,先将请求消息编码,增加文件数据区域的注册信息,将编码后的消息拷贝到发送缓冲区;
步骤S32c,客户端通过Receive操作先将请求对应的应答缓冲区提交到InfiniBand的工作队列等待接收应答消息,然后通过Send操作将请求消息提交到InfiniBand的工作队列发送;
步骤S33,服务器感知客户端请求消息到达,解析消息,根据消息内容分配并注册本地数据缓冲区,然后通过RDMA Read操作将客户端数据缓冲区的文件数据读到本地数据缓冲区中,接着执行本地文件操作,将本地数据缓冲区数据写到磁盘,最后通过Send操作提交应答通知给InfiniBand队列发送;
较佳地,上述步骤S33,具体包括如下步骤:
步骤S33a,服务器通过完成机制感知事先提交的接收缓冲区接收到请求消息,将收到的消息解码获得客户端数据缓冲区的地址信息和传输方向;
步骤S33b,服务器根据客户端的数据大小分配内存空间并进行注册;
步骤S33c,服务器通过RDMA Read操作从客户端数据缓冲区中读取数据到本地缓冲区,完成机制捕获RDMA Read操作完成时将数据缓冲区注销;
步骤S33d,服务器执行本地文件数据操作,将获得的数据写入磁盘;
步骤S33e,服务器向客户端发送应答消息,并感知应答消息发送完成;
步骤S34,客户端收到服务器的应答消息。
较佳地,在上述步骤S34中,还包括收到应答消息之后,将本地数据缓冲区注销。
如图5所示,所述读文件数据访问的消息传输步骤,在该步骤中,采用客户端/服务器的通信模型,具体包括如下步骤:
步骤S41,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S42,客户端注册存放文件数据的缓冲区,并通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S43,客户端提交读文件数据访问请求消息给InfiniBand工作队列发送;
步骤S44,服务器感知客户端请求消息到达,解析消息,接着执行本地文件操作,将文件数据从磁盘读读到本地数据缓冲区中,并注册该数据缓冲区,然后通过RDMA Write操作将本地数据缓冲区的文件数据写到客户端注册的数据缓冲区中,最后通过Send操作提交完成应答消息通知给InfiniBand队列发送;
步骤S45,客户端感知并接收服务器的应答通知。
较佳地,在上述步骤S24、S33和S44中,执行客户端请求读或写文件数据时,采用异步多页传输方法,具体包括如下步骤:
步骤S51,初始化RDMA操作之前,服务器和客户端首先确定I/O(输入/输出)区域的源和目的内存地址及长度;
步骤S52,目的内存端(客户端)通过注册接口将多个内存区域(页)注册,注册后这些内存段被映射到InfiniBand主机通道适配器(HCA)上虚拟连续,注册后得到导向标志。
步骤S53,客户端将导向标志、目的内存地址和长度编码到请求消息中,发送到源内存端(服务器)。
步骤S54,服务器解码请求消息,将客户端请求读或写的文件数据区域注册;
步骤S55,服务器根据客户端发来请求消息的内容,将本地离散内存区域的数据提交发送,并等待RDMA操作的完成。
步骤S56,当客户端请求读文件数据时,服务器用RDMA Write操作从服务器内存地址直接拷贝文件数据到客户端内存地址;当客户端请求写文件数据时,服务器用RDMA Read操作从客户端内存地址直接拷贝文件数据到服务器内存地址。
步骤S57,RDMA操作的完成后,将通知文件系统层。
较佳地,步骤S11和S12分别还包括在服务器和客户端采用预注册方法注册消息发送或接收缓冲区;所述预注册方法是指在执行网络通信操作之前预先分配缓存区并注册。这样做的好处在于,传输消息时不必注册,当文件较大时,拷贝开销会很大。
较佳地,步骤S22、S32和S42分别还包括服务器和客户端采用快速内存注册方法、全局导向标志注册方法或缓存注册表来注册文件数据缓冲区。
所述快速内存注册方法是在创建通信上下文的时候就分配InfiniBand主机通道适配器(HCA)上转换保护表(translation and protection table,TPT)的入口以及导向标志,在TPT缓存池中分配到入口之后被映射到一个虚拟内存区域。这种方法不依赖于HCA分配和更新TPT入口的响应时间,能够比通常的注册调用快。
所述全局导向标志注册方法是文件系统处于核心态时,允许通信操作使用一个特定的远程导向标志,通信过程使用物理地址,在通信开始前钉住内存,获得虚拟到物理地址的地址映射。此方法免去注册该映射到HCA的开销。
所述缓存注册表方法是记录在通信过程中已注册好的内存区域,并延迟注销该内存区域。此方法可实现缓存重用,减小注册开销。
通过上述具体实施方式的描述,可本发明所产生的有益效果:
高效性:这有两个方面,一是将文件系统的上层操作和InfiniBand通信操作相匹配,最大化利用高速网络特性,适合于大规模的科学运算;二是针对高速网络的消息传输特征,利用性能优化技术,使得文件系统的性能大大提高。
透明性:本发明的消息传输框架在消息传输层面支持高速网络,对上层文件系统保持透明,保证了文件系统的独立性,使其能够专注于本身工作。
适应性:无论文件系统组件是用户态与用户态通信,或是核心态与核心态通信,还是用户态与核心态通信,本发明都能够为其提供高性能支持。
移植性:本发明的消息传输框架建立在高速网络底层的网络协议之上,通过消息传输框架的网络协议封装层搭建,因而可以方便地移植到其他高速网络协议上。
以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。

Claims (21)

1、一种针对文件系统的基于高速网络的消息传输框架,其位于文件系统层之下、网络协议层之上并与所述文件系统层及网络协议层通信,其特征是,该消息传输框架包括:文件系统接口层、文件操作处理层及网络协议封装层;
文件系统接口层,用于向文件系统层提供创建通信上下文的接口、建立连接通道的接口、创建操作上下文的接口及网络传输的接口;
文件操作处理层,其分别与文件系统接口层和网络协议封装层通信,用于处理文件系统层通过文件系统接口层提交的操作上下文,并提交网络通信操作给网络协议封装层;
网络协议封装层,其与网络协议层通信,将文件操作处理层提交的网络通信操作进行封装后通过网络协议层执行消息传输。
2、根据权利要求1所述的针对文件系统的基于高速网络的消息传输框架,其特征是,所述网络传输的接口为异步消息传输接口和/或同步消息传输接口。
3、根据权利要求1所述的针对文件系统的基于高速网络的消息传输框架,其特征是,所述文件操作处理层包括通信方式选择单元,用于将所述文件系统层通过所述文件系统接口层提交的文件操作与网络通信操作相匹配,使得不同类型的文件操作遵循不同网络传输方式。
4、根据权利要求3所述的针对文件系统的基于高速网络的消息传输框架,其特征是,所述的文件操作与网络通信操作相匹配是指:文件系统中的普通元数据操作采用Send/Receive的通信方式,读目录元数据操作采用Send/Receive加RDMA Write的通信方式,写文件数据操作采用Send/Receive加RDMA Read的通信方式,读文件数据操作采用Send/Receive加RDMA Write的通信方式。
5、根据权利要求1所述的针对文件系统的基于高速网络的消息传输框架,其特征是,所述网络协议封装层包括:
通信模型管理单元,用于为文件操作处理层提交的网络通信操作选择网络协议;
通信方式管理单元,用于调用网络协议层进行网络通信操作,对网络协议层的接口进行封装,该通信方式管理单元包括创建连接接口、中断连接接口、发送消息接口、接收消息接口;
通信缓存管理单元,用于管理网络协议的消息传输中涉及的消息缓存。
6、一种针对文件系统的基于高速网络的消息传输方法,其应用于文件系统层、针对文件系统的基于高速网络的消息传输框架和网络协议层结合构成文件系统对于高速网络的应用框架,其特征是,该方法包括:
通过Send/Receive操作进行普通元数据访问的消息传输步骤;和/或
通过Send/Receive加RDMA Write操作进行读目录元数据访问的消息传输步骤;和/或
通过Send/Receive加RDMA Write操作进行读文件数据访问的消息传输步骤;和/或
通过Send/Receive加RDMA Read操作进行写文件数据访问的消息传输步骤。
7、根据权利要求6所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述普通元数据访问的消息传输步骤采用客户端/服务器的通信模型,具体包括以下步骤:
步骤S11,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S12,客户端通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S13,客户端提交元数据访问请求消息给InfiniBand工作队列发送;
步骤S14,服务器感知消息到达,执行本地元数据操作,并通过Send操作提交元数据结果给InfiniBand队列发送;
步骤S15,客户端感知并接收应答消息。
8、根据权利要求7所述的针对文件系统的基于高速网络的消息传输方法,其特征是,在上述步骤S11中还包括:客户端和服务器建立连接通道;和连接通道建立时内部消息缓冲池在连接两端建立,并注册发送缓冲区和接收缓冲区。
9、根据权利要求8所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述步骤S13具体包括如下步骤:
步骤S13a,客户端从内部消息缓冲池中获得一个发送缓冲区,将消息从文件系统层缓冲区拷贝其中;
步骤S13b,客户端通过Receive操作先将请求对应的应答缓冲区提交到InfiniBand的工作队列等待接收应答消息,然后通过Send操作将请求消息提交到InfiniBand的工作队列发送。
10、根据权利要求7所述的针对文件系统的基于高速网络的消息传输方法,其特征是,上述步骤S14具体包括如下步骤:
步骤S14a,服务器通过完成机制接收客户端发来的请求消息;
步骤S14b,服务器解析请求消息,并依据解析结果执行本地文件系统元数据操作,同时将保存请求消息的消息缓冲区重新提交到工作队列上,等待接收客户端的请求消息;服务器的本地元数据操作执行完成后,将应答消息拷贝到发送消息缓冲区;
步骤S14c,服务器通过Send操作将应答消息提交到InfiniBand的工作队列发送;
11、根据权利要求10所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述步骤S14还包括:
步骤S14d,当服务器完成机制感知到应答消息发送操作完成后,释放发送应答占用的消息缓冲区。
12、根据权利要求7所述的针对文件系统的基于高速网络的消息传输方法,其特征是,步骤S15中还包括:当客户端通过完成机制感知事先提交的接收缓冲区接收到应答消息后,释放发送请求占用的消息缓冲区和接收应答占用的消息缓冲区到内部缓冲池。
13、根据权利要求6所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述读目录访问的消息传输步骤采用客户端/服务器的通信模型,其包括如下步骤:
步骤S21,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S22,客户端通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S23,客户端提交读目录元数据访问请求消息给InfiniBand工作队列发送;
步骤S24,服务器感知消息到达,解析消息,执行本地读目录元数据操作,通过RDMA Write操作将结果数据写到客户端的数据缓冲区中,然后通过Send操作提交应答通知给InfiniBand队列发送;
步骤S25,客户端感知并接收服务器的应答通知。
14、根据权利要求6所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述写文件数据访问的消息传输步骤采用客户端/服务器的通信模型,其包括如下步骤:
步骤S31,服务器通过Rece ive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S32,客户端注册文件数据的缓冲区,并通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S33,服务器感知客户端请求消息到达,解析消息,根据消息内容分配并注册本地数据缓冲区,然后通过RDMA Read操作将客户端数据缓冲区的文件数据读到本地数据缓冲区中,接着执行本地文件操作,将本地数据缓冲区数据写到磁盘,最后通过Send操作提交应答通知给InfiniBand队列发送;
步骤S34,客户端收到服务器的应答消息。
15、根据权利要求14所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述步骤S32具体包括如下步骤:
步骤S32a,客户端将所要传输的文件数据缓冲区进行注册;
步骤S32b,客户端从内部消息缓冲池中获得发送缓冲,先将请求消息编码,增加文件数据区域的注册信息,将编码后的消息拷贝到发送缓冲区;
步骤S32c,客户端通过Receive操作先将请求对应的应答缓冲区提交到InfiniBand的工作队列等待接收应答消息,然后通过Send操作将请求消息提交到InfiniBand的工作队列发送。
16、根据权利要求14所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述步骤S33具体包括如下步骤:
步骤S33a,服务器通过完成机制感知事先提交的接收缓冲区接收到请求消息,将收到的消息解码获得客户端数据缓冲区的地址信息和传输方向;
步骤S33b,服务器根据客户端的数据大小分配内存空间并进行注册;
步骤S33c,服务器通过RDMA Read操作从客户端数据缓冲区中读取数据到本地缓冲区,完成机制捕获RDMA Read操作完成时将数据缓冲区注销;
步骤S33d,服务器执行本地文件数据操作,将获得的数据写入磁盘;
步骤S33e,服务器向客户端发送应答消息,并感知应答消息发送完成。
17、根据权利要求14所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述步骤S34还包括:收到应答消息之后,将本地数据缓冲区注销。
18、根据权利要求6所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述读文件数据访问的消息传输步骤采用客户端/服务器的通信模型,其包括如下步骤:
步骤S41,服务器通过Receive操作提交接收缓冲区到InfiniBand接收工作队列,等待接收消息;
步骤S42,客户端注册存放文件数据的缓冲区,并通过Receive操作提交接收缓冲区和数据缓冲区到InfiniBand接收工作队列,等待接收应答消息和应答数据;
步骤S43,客户端提交读文件数据访问请求消息给InfiniBand工作队列发送;
步骤S44,服务器感知客户端请求消息到达,解析消息,接着执行本地文件操作,将文件数据从磁盘读读到本地数据缓冲区中,并注册该数据缓冲区,然后通过RDMA Write操作将本地数据缓冲区的文件数据写到客户端注册的数据缓冲区中,最后通过Send操作提交完成应答消息通知给InfiniBand队列发送;
步骤S45,客户端感知并接收服务器的应答通知。
19、根据权利要求13、14或18所述的针对文件系统的基于高速网络的消息传输方法,其特征是,当执行客户端请求读或写文件数据操作时,采用异步多页传输方法,其具体包括如下步骤:
步骤S51,初始化RDMA操作之前,服务器和客户端首先确定输入/输出区域的客户端和服务器的内存地址及长度;
步骤S52,客户端通过注册接口将多个内存区域注册,注册后这些内存段被映射到InfiniBand主机通道适配器上虚拟连续,注册后得到导向标志;
步骤S53,客户端将导向标志、目的内存地址和长度编码到请求消息中,发送到服务器;
步骤S54,服务器解码请求消息,将客户端请求读或写的文件数据区域注册;
步骤S55,服务器根据客户端发来请求消息的内容,将本地离散内存区域的数据提交发送,并等待RDMA操作的完成;
步骤S56,当客户端请求读文件数据时,服务器用RDMA Write操作从服务器内存地址直接拷贝文件数据到客户端内存地址;当客户端请求写文件数据时,服务器用RDMA Read操作从客户端内存地址直接拷贝文件数据到服务器内存地址;
步骤S57,RDMA操作的完成后,将通知文件系统层。
20、根据权利要求7所述的针对文件系统的基于高速网络的消息传输方法,其特征是,步骤S11和S12分别还包括在服务器和客户端采用预注册方法来注册消息发送或接收缓冲区;所述预注册方法是指在执行网络通信操作之前预先分配缓存区并注册。
21、根据权利要求13所述的针对文件系统的基于高速网络的消息传输方法,其特征是,所述步骤S22还包括:服务器和客户端采用快速内存注册方法、全局导向标志注册方法或缓存注册表来注册文件数据缓冲区;其中
所述快速内存注册方法是指在创建通信上下文的时候就分配InfiniBand主机通道适配器上转换保护表的入口以及导向标志,在转换保护表缓存池中分配到入口之后被映射到一个虚拟内存区域;
所述全局导向标志注册方法是指在文件系统处于核心态时,允许通信操作使用一个特定的远程导向标志,通信过程使用物理地址,在通信开始前钉住内存,获得虚拟到物理地址的地址映射;
所述缓存注册表方法是指记录在通信过程中已注册好的内存区域,并延迟注销该内存区域,以实现缓存重用。
CN2008102474628A 2008-12-31 2008-12-31 针对文件系统的基于高速网络的消息传输框架和方法 Expired - Fee Related CN101459676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102474628A CN101459676B (zh) 2008-12-31 2008-12-31 针对文件系统的基于高速网络的消息传输框架和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102474628A CN101459676B (zh) 2008-12-31 2008-12-31 针对文件系统的基于高速网络的消息传输框架和方法

Publications (2)

Publication Number Publication Date
CN101459676A true CN101459676A (zh) 2009-06-17
CN101459676B CN101459676B (zh) 2012-01-04

Family

ID=40770303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102474628A Expired - Fee Related CN101459676B (zh) 2008-12-31 2008-12-31 针对文件系统的基于高速网络的消息传输框架和方法

Country Status (1)

Country Link
CN (1) CN101459676B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073593A (zh) * 2010-11-15 2011-05-25 浪潮(北京)电子信息产业有限公司 内存中数据块的发送、接收方法和装置及传输系统
CN102404398A (zh) * 2011-11-17 2012-04-04 曙光信息产业(北京)有限公司 一种支持多客户端的rdma消息发送方法
CN102446073A (zh) * 2010-08-30 2012-05-09 国际商业机器公司 延迟对操作的确认直至操作完成的方法和系统
CN103347077A (zh) * 2013-07-03 2013-10-09 曙光信息产业(北京)有限公司 分布式文件系统的数据传输方法和装置
CN103645994A (zh) * 2013-11-05 2014-03-19 华为技术有限公司 一种数据处理方法及设备
CN103929415A (zh) * 2014-03-21 2014-07-16 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统
CN106210101A (zh) * 2016-07-20 2016-12-07 上海携程商务有限公司 消息管理系统及消息管理方法
CN106557375A (zh) * 2016-11-21 2017-04-05 桂林远望智能通信科技有限公司 一种封装类之间通讯系统及方法
CN106776968A (zh) * 2016-12-05 2017-05-31 广州谷得网络科技有限公司 一种通用的游戏数据接口层
CN107241404A (zh) * 2017-05-31 2017-10-10 郑州云海信息技术有限公司 一种消息收发的方法、装置及系统
CN108984122A (zh) * 2018-07-05 2018-12-11 柏建民 映射式远程存储操作技术
CN111857661A (zh) * 2020-07-15 2020-10-30 北京无线电测量研究所 机载雷达主控软件框架设计方法、机载雷达、计算机设备
CN112532728A (zh) * 2020-11-30 2021-03-19 中国航空工业集团公司西安航空计算技术研究所 一种确定性的机载高性能文件传输方法和系统
CN114401262A (zh) * 2022-01-17 2022-04-26 东云睿连(武汉)计算技术有限公司 基于rdma的大数据传输系统、方法、装置、设备及存储介质
CN115328408A (zh) * 2022-10-14 2022-11-11 联想凌拓科技有限公司 用于数据处理的方法、装置、设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7668984B2 (en) * 2007-01-10 2010-02-23 International Business Machines Corporation Low latency send queues in I/O adapter hardware
CN101018205A (zh) * 2007-02-14 2007-08-15 杭州华为三康技术有限公司 一种流量控制方法及通信设备

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446073A (zh) * 2010-08-30 2012-05-09 国际商业机器公司 延迟对操作的确认直至操作完成的方法和系统
CN102446073B (zh) * 2010-08-30 2014-10-01 国际商业机器公司 延迟对操作的确认直至操作完成的方法和系统
CN102073593B (zh) * 2010-11-15 2013-01-23 浪潮(北京)电子信息产业有限公司 内存中数据块的发送、接收方法和装置及传输系统
CN102073593A (zh) * 2010-11-15 2011-05-25 浪潮(北京)电子信息产业有限公司 内存中数据块的发送、接收方法和装置及传输系统
CN102404398A (zh) * 2011-11-17 2012-04-04 曙光信息产业(北京)有限公司 一种支持多客户端的rdma消息发送方法
CN103347077A (zh) * 2013-07-03 2013-10-09 曙光信息产业(北京)有限公司 分布式文件系统的数据传输方法和装置
CN103645994A (zh) * 2013-11-05 2014-03-19 华为技术有限公司 一种数据处理方法及设备
CN103929415B (zh) * 2014-03-21 2018-03-06 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统
CN103929415A (zh) * 2014-03-21 2014-07-16 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统
CN106210101A (zh) * 2016-07-20 2016-12-07 上海携程商务有限公司 消息管理系统及消息管理方法
CN106210101B (zh) * 2016-07-20 2019-06-18 上海携程商务有限公司 消息管理系统及消息管理方法
CN106557375B (zh) * 2016-11-21 2020-05-12 桂林远望智能通信科技有限公司 一种封装类之间通讯系统及方法
CN106557375A (zh) * 2016-11-21 2017-04-05 桂林远望智能通信科技有限公司 一种封装类之间通讯系统及方法
CN106776968A (zh) * 2016-12-05 2017-05-31 广州谷得网络科技有限公司 一种通用的游戏数据接口层
CN106776968B (zh) * 2016-12-05 2020-10-23 广州谷得网络科技有限公司 一种通用的游戏数据接口层
CN107241404A (zh) * 2017-05-31 2017-10-10 郑州云海信息技术有限公司 一种消息收发的方法、装置及系统
CN107241404B (zh) * 2017-05-31 2020-05-29 郑州云海信息技术有限公司 一种消息收发的方法、装置及系统
CN108984122A (zh) * 2018-07-05 2018-12-11 柏建民 映射式远程存储操作技术
CN111857661A (zh) * 2020-07-15 2020-10-30 北京无线电测量研究所 机载雷达主控软件框架设计方法、机载雷达、计算机设备
CN111857661B (zh) * 2020-07-15 2023-08-04 北京无线电测量研究所 机载雷达主控软件框架设计方法、机载雷达、计算机设备
CN112532728A (zh) * 2020-11-30 2021-03-19 中国航空工业集团公司西安航空计算技术研究所 一种确定性的机载高性能文件传输方法和系统
CN114401262A (zh) * 2022-01-17 2022-04-26 东云睿连(武汉)计算技术有限公司 基于rdma的大数据传输系统、方法、装置、设备及存储介质
CN115328408A (zh) * 2022-10-14 2022-11-11 联想凌拓科技有限公司 用于数据处理的方法、装置、设备及介质

Also Published As

Publication number Publication date
CN101459676B (zh) 2012-01-04

Similar Documents

Publication Publication Date Title
CN101459676B (zh) 针对文件系统的基于高速网络的消息传输框架和方法
Liu et al. Design and Implementation of MPICH2 over InfiniBand with RDMA Support
US6421742B1 (en) Method and apparatus for emulating an input/output unit when transferring data over a network
US7320041B2 (en) Controlling flow of data between data processing systems via a memory
US20090210646A1 (en) Cross Adapter Shared Address Translation Tables
CN107203411B (zh) 一种基于远程ssd的虚拟机内存扩展方法及系统
CN101150488B (zh) 一种零拷贝网络报文接收方法
CN101430674B (zh) 一种分布式虚拟机监控器内连通信方法
US20040054837A1 (en) Controlling flow of data between data processing systems via a memory
JPH05242055A (ja) マルチプロセッサ・システム
US20040252709A1 (en) System having a plurality of threads being allocatable to a send or receive queue
WO2024082944A1 (zh) 一种多处理器数据交互方法、装置、设备及存储介质
CN101997854A (zh) 一种提供数据服务的处理系统及方法
RU2004115612A (ru) Выравнивание данных между собственными и несобственными совместно используемыми структурами данных
CN101866326B (zh) 一种消息传递接口支持总线通信框架
CN102291298B (zh) 一种高效的面向长消息的计算机网络通信方法
US20170338999A1 (en) System and method for memory access in server communications
CN102567226A (zh) 数据访问的实现方法和装置
CN101576912A (zh) 实现分布式文件系统异步输入输出接口的系统及读写方法
CN109117386A (zh) 一种网络远程读写二级存储的系统及方法
CN101826031A (zh) 基于Linux系统的PCM流捕获的实现方法
CN102843435A (zh) 一种在集群系统中存储介质的访问、响应方法和系统
Tianhua et al. The design and implementation of zero-copy for linux
JP2003114823A (ja) 高性能記憶装置アクセス環境
Li et al. LyraNET: a zero-copy TCP/IP protocol stack for embedded operating systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120104

Termination date: 20201231

CF01 Termination of patent right due to non-payment of annual fee