CN110764688B - 对数据进行处理的方法和装置 - Google Patents
对数据进行处理的方法和装置 Download PDFInfo
- Publication number
- CN110764688B CN110764688B CN201810847621.1A CN201810847621A CN110764688B CN 110764688 B CN110764688 B CN 110764688B CN 201810847621 A CN201810847621 A CN 201810847621A CN 110764688 B CN110764688 B CN 110764688B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- address
- storage
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对数据进行处理的方法和装置,属于网络存储技术领域。所述方法包括:通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求;通过中央处理器CPU,获取所述目标数据在服务器中的存储地址;通过所述NIC,向所述客户端发送所述存储地址,接收所述客户端发送的携带有所述存储地址的数据处理请求,根据所述存储地址,对所述目标数据进行处理。采用本发明,可以减轻服务器的CPU负担。
Description
技术领域
本发明涉及网络存储技术领域,特别涉及一种对数据进行处理的方法和装置。
背景技术
分布式存储系统是一种将数据分散存储在多个服务器中的文件存储系统。该系统可以包括多个客户端和多个服务器,服务器用于存储数据,客户端用于向用户提供服务,并通过与服务器之间的通讯传输来执行用户对数据的处理,如读取数据、写入数据等处理。
以读取数据为例,当分布式存储系统中的客户端向服务器读取数据时,客户端向服务器发送数据读取请求,服务器的NIC(Network Interface Card,内置网卡)接收到数据读取请求后,将数据读取请求传送给CPU(Central Processing Unit,中央处理器)进行分析处理,触发CPU查询数据在内存中的存储地址,并根据查询到的存储地址从内存中读取数据,然后CPU将读取到的数据通过NIC发送给客户端。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在上述客户端读取数据的过程中,处理数据读取请求和控制NIC向客户端发送数据的操作步骤都由服务器的CPU执行处理,当分布式文件系统中的多个客户端获取大量的数据时,会占用大量的CPU资源,使得服务器的CPU负载加重。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种对数据进行处理的方法和装置。所述技术方案如下:
第一方面,提供了一种对数据进行处理的方法,所述方法应用于分布式存储系统中的服务器,所述方法包括:
通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求;
通过中央处理器CPU,获取所述目标数据在所述服务器中的存储地址;
通过所述NIC,向所述客户端发送所述存储地址,接收所述客户端发送的携带有所述存储地址的数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选地,所述存储地址获取请求中携带有所述客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
所述通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求,包括:
通过内置网卡NIC,根据所述服务器的交互地址信息,接收并存储客户端发送的目标数据的存储地址获取请求;
所述通过所述NIC,向所述客户端发送所述存储地址,包括:
通过所述NIC,向所述客户端发送所述存储地址以及所述客户端的交互地址信息,使得所述客户端根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中。
可选地,所述通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求之后,还包括:
通过内置网卡NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述存储地址获取请求对应的处理部件为CPU,通过所述CPU执行所述存储地址获取请求对应的操作指令;
通过所述NIC,根据所述存储地址,对所述目标数据进行处理,包括:
通过所述NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述数据处理请求对应的处理部件为存储器,指示所述存储器,根据所述存储地址,对所述目标数据进行处理。
可选地,所述数据处理请求中携带有目标操作信息;
通过所述NIC,指示所述存储器,根据所述存储地址,对所述目标数据进行处理,包括:
通过所述NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定所述目标操作信息对应的目标执行指令,向所述存储器发送携带有所述存储地址的所述目标执行指令。
可选地,所述数据处理请求包括数据读取请求或数据写入请求。
第二方面,提供了一种对数据进行处理的方法,所述方法应用于分布式存储系统中的客户端,所述方法包括:
向目标数据所在的服务器发送所述目标数据的存储地址获取请求;
接收所述服务器发送的所述目标数据在所述服务器中的存储地址;
向所述服务器发送携带有所述存储地址的数据处理请求,以使所述服务器通过NIC,根据所述存储地址,对所述目标数据进行读写处理。
可选地,所述存储地址获取请求中携带有客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
所述接收所述服务器发送的所述目标数据在所述服务器中的存储地址,包括:
接收所述服务器发送的所述目标数据在所述服务器中的存储地址以及客户端的交互地址信息;根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中;
所述向所述服务器发送携带有所述存储地址的数据处理请求,包括:
向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,使得所述服务器接收携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,存储所述数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选地,所述向目标数据所在的服务器发送所述目标数据的存储地址获取请求,包括:
获取目标数据的数据标识,确定所述数据标识的哈希值;
根据预先存储的哈希值区间与设备标识的对应关系,确定所述哈希值所属的哈希值区间对应的目标设备标识;
向所述目标设备标识对应服务器发送所述目标数据的存储地址获取请求。
可选地,所述数据处理请求包括数据读取请求或数据写入请求。
第三方面,提供了一种对数据进行处理的装置,所述装置为分布式存储系统中的服务器,所述装置包括:
接收模块,用于通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求;
获取模块,用于通过中央处理器CPU,获取所述目标数据在服务器中的存储地址;
发送模块,用于通过所述NIC,向所述客户端发送所述存储地址,接收所述客户端发送的携带有所述存储地址的数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选地,所述存储地址获取请求中携带有客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
所述接收模块,用于:
通过内置网卡NIC,根据所述服务器的交互地址信息,接收并存储客户端发送的目标数据的存储地址获取请求
所述发送模块,用于:
通过所述NIC,向所述客户端发送所述存储地址以及所述客户端的交互地址信息,使得所述客户端根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中。
可选地,所述装置还包括:
确定模块,用于通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求之后,通过内置网卡NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述存储地址获取请求对应的处理部件为CPU,通过所述CPU执行所述存储地址获取请求对应的操作指令;
所述处理模块,用于:
通过所述NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述数据处理请求对应的处理部件为存储器,指示所述存储器,根据所述存储地址,对所述目标数据进行处理。
可选地,所述数据处理请求中携带有目标操作信息;
发送模块,还用于:
通过所述NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定所述目标操作信息对应的目标执行指令,向所述存储器发送携带有所述存储地址的所述目标执行指令。
可选地,所述数据处理请求包括目标数据读取请求或目标数据写入请求。
第四方面,提供了一种对数据进行处理的装置,所述装置应用于分布式存储系统中的客户端,所述装置包括:
发送模块,用于向目标数据所在的服务器发送所述目标数据的存储地址获取请求;
接收模块,用于接收所述服务器发送的所述目标数据在所述服务器中的存储地址;
发送模块,还用于向所述服务器发送携带有所述存储地址的数据处理请求,以使所述服务器通过NIC,根据所述存储地址,对所述目标数据进行读写处理。
可选地,所述存储地址获取请求中携带有客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
所述接收模块,用于:
接收所述服务器发送的所述目标数据在所述服务器中的存储地址以及客户端的交互地址信息;根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中;
所述发送模块,用于:
向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,使得所述服务器接收携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,存储所述数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选地,所述发送模块,用于:
获取目标数据的数据标识,确定所述数据标识的哈希值;
根据预先存储的哈希值区间与设备标识的对应关系,确定所述哈希值所属的哈希值区间对应的目标设备标识;
向所述目标设备标识对应服务器发送所述目标数据的存储地址获取请求。
可选地,所述数据处理请求包括数据读取请求或数据写入请求。
第五方面,提供了一种对数据进行处理的系统,所述系统包括分布式存储系统中的客户端和服务器,其中:
所述服务器,用于执行第一方面所述的方法;
所述客户端,用于执行第二方面所述的方法。
第六方面,一种计算机设备,其特征在于,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现如上述第一方面或第二方面所述的方法步骤。
第七方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述第一方面或第二方面所述的对数据进行处理的方法。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例中,客户端向服务器获取目标数据在服务器中的存储地址,然后通过存储地址,客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,减少占用CPU资源,减轻服务器的CPU负载。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种对数据进行处理的方法的流程图;
图2是本发明实施例提供的一种对数据进行处理的方法的流程图;
图3是本发明实施例提供的一种对数据进行处理的方法的流程图;
图4是本发明实施例提供的一种对数据进行处理的方法的流程示意图;
图5是本发明实施例提供的一种对数据进行处理的方法的链路示意图;
图6是本发明实施例提供的一种对数据进行处理的装置的结构示意图;
图7是本发明实施例提供的一种对数据进行处理的装置的结构示意图;
图8是本发明实施例提供的一种对数据进行处理的装置的结构示意图;
图9是本发明实施例提供的一种服务器结构示意图;
图10是本发明实施例提供的一种客户端结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种对数据进行处理的方法,该方法可以由客户端和服务器共同实现。其中,客户端和服务器为同一分布式文件系统中的客户端和服务器。
服务器可以包括处理器、存储器、内置网卡等部件。处理器,可以为CPU(CentralProcessing Unit,中央处理单元)等。存储器,可以为NVM(Non-Volatile Memory,非易失性内存)等,该存储器称为持久内存,以内存的方式进行访问但具备易失性,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如目标数据、目标数据的存储地址、数据处理请求、内存地址属性信息等。内置网卡,需要支持RDMA(远程直接内存访问)技术的网卡,可以用于与客户端或其它服务器进行高效率数据传输,例如,向客户端发送目标数据的存储地址,接收客户端发送的数据处理请求。
客户端可以包括处理器、存储器、屏幕、收发器、RDMA网卡等部件。处理器,可以为CPU(Central Processing Unit,中央处理单元)等。存储器,可以为RAM(Random AccessMemory,随机存取存储器),Flash(闪存),NVM(Non-Volatile Memory,非易失性内存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如存储地址获取请求、存储地址、数据处理请求、内存地址属性信息等。屏幕可以用于显示目标数据的元数据信息以及操作界面等。收发器,可以用于与其它设备进行数据传输,例如,接收服务器发送的目标数据的存储地址,可以包括天线、匹配电路、调制解调器等。RDMA网卡是支持RDMA技术的网卡,可以用于与客户端或其它服务器进行高效率数据传输。终端还可以包括图像检测部件、音频输出部件和音频输入部件等。图像检测部件可以是摄像头等。音频输出部件可以是音箱、耳机等。音频输入部件可以是麦克风等。
本发明实施例提供了一种对数据进行处理的方法,该方法应用于分布式存储系统中的服务器,如图1所示,该方法的处理流程可以包括如下的步骤:
在步骤101中,通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求。
在步骤102中,通过中央处理器CPU,获取目标数据在服务器中的存储地址。
在步骤103中,通过NIC,向客户端发送存储地址,接收客户端发送的携带有存储地址的数据处理请求,根据存储地址,对目标数据进行处理。
本发明实施例中,当客户端对存储在服务器中的目标数据进行处理时,服务器将目标数据存储在服务器中的存储地址发送给客户端,使得客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,减少占用CPU资源,减轻服务器的CPU负载。
本发明实施例提供了一种对数据进行处理的方法,该方法应用于分布式存储系统中的客户端,如图2所示,该方法的处理流程可以包括如下的步骤:
在步骤201中,向目标数据所在的服务器发送目标数据的存储地址获取请求。
在步骤202中,接收服务器发送的目标数据在服务器中的存储地址。
在步骤203中,向服务器发送携带有存储地址的数据处理请求,以使服务器通过NIC,根据存储地址,对目标数据进行读写处理。
本发明实施例中,客户端向服务器获取目标数据在服务器中的存储地址,然后通过存储地址,客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,不经过操作系统内核,减少占用CPU资源,减轻服务器的CPU负载,进而减少服务器的CPU带来的延时,因此可以提高客户端对目标数据的处理效率。
本发明实施例提供了一种对数据进行处理的方法,该方法应用于同一分布式存储系统中的客户端和服务器,如图3所示,该方法的处理流程可以包括如下的步骤:
在步骤301中,客户端向目标数据所在的服务器发送目标数据的存储地址获取请求。
其中,目标数据的存储地址为目标数据在服务器的内存中的存储地址。
一个可能的实施例中,分布式存储系统是一种将数据分散存储在多个服务器中的文件存储系统。该系统可以包括多个客户端和多个服务器,服务器用于存储数据,客户端用于向用户提供服务并执行用户对数据的处理,如读取数据、写入数据等处理。当用户想要对某个数据(即为目标数据)进行处理时,可以在客户端的界面中进行相应操作,客户端检测到用户的操作指令后,先确定目标数据所在的服务器,然后通过网络接口向该服务器发送目标数据的存储地址获取请求,该存储地址获取请求中可以携带有目标数据的数据标识。
可选地,为了能够快速定位客户端和服务端交互内存的位置,上述存储地址获取请求中还可以携带有客户端的交互地址信息和服务器的交互地址信息。其中,服务器的交互地址信息包括服务器的存储器中的存储区编号或服务器的存储器的偏移地址,客户端的交互地址信息包括客户端的存储器中的存储区编号或客户端的存储器的偏移地址。
可选地,可以通过目标数据的数据标识,来确定目标数据所在的服务器,相应的处理步骤可以如下:获取目标数据的数据标识,确定数据标识的哈希值;根据预先存储的哈希值区间与设备标识的对应关系,确定哈希值所属的哈希值区间对应的目标设备标识;向目标设备标识对应服务器发送目标数据的存储地址获取请求。
其中,数据标识可以用于表征唯一的数据,可以存储于客户端的内存中。优选地,数据标识可以是带路径数据名称,其形式可以是字符串的形式,如“/home/b”。
一个可能的实施例中,在用户查询目标数据之前,在存储目标数据时,可以依据一致性哈希算法进行存储。相应的步骤可以是:客户端可以先确定分布式文件系统中所有可用的服务器的设备标识,然后根据一致性哈希算法,计算每个服务器的设备标识的哈希值,将得到的至少一个哈希值配置到0~232的圆上。然后,根据同样的一致性哈希算法,计算目标数据的数据标识的哈希值,并将该哈希值映射到配置了服务器的设备标识的哈希值的圆上,即落在服务器的设备标识的哈希值的区间中。然后,从目标数据的哈希值映射到的位置开始顺时针查找,将目标数据保存到找到的第一个服务器上。
根据上述的数据存储方式,在查询目标数据所在的服务器时,可以采用一致性哈希算法来查询,如图4所示,这种查询方式中,一致性哈希映射算法的键是数据标识,值为服务器的设备标识。
客户端先获取目标数据的数据标识,通过一致性哈希算法,计算数据标识的哈希值。然后,将该哈希值映射到预先存储的配置了服务器的设备标识的哈希值的圆上,然后,从目标数据的哈希值映射到的位置开始顺时针查找,找到的第一个服务器即为存储目标数据的服务器,确定该服务器的设备标识。
客户端根据预先存储的服务器的设备标识与服务器的接收端口的对应关系,确定目标数据所在的服务器的接收端口,然后通过网络接口,向该接收端口发送存储地址获取请求。
在步骤302中,基于服务器的内置网卡NIC,服务器接收客户端发送的目标数据的存储地址获取请求。
一个可能的实施例中,客户端将存储地址获取请求通过网络接口发送至服务器的NIC(Network Interface Card,内置网卡),NIC接收到该存储地址获取请求后,对该存储地址获取请求进行解析。然后NIC将解析后的存储地址获取请求送交至服务器的CPU(CentralProcessing Unit,中央处理器),由CPU执行处理。
需要说明的是,NIC将解析后的存储地址获取请求送交至CPU的缓存区域,等待CPU对存储地址获取请求的响应。
可选地,由于客户端发送的目标数据的存储地址获取请求中可以携带有客户端的交互地址信息和服务器的交互地址信息,这样,服务器在接收客户端的发送的目标数据的存储地址获取请求时,相应的处理步骤可以如下:通过内置网卡NIC,根据服务器的交互地址信息,接收并存储客户端发送的目标数据的存储地址获取请求。
一个可能的实施例中,客户端将存储地址获取请求通过网络接口发送至服务器的NIC,NIC接收到该存储地址获取请求后,对该存储地址获取请求进行解析,获取到其中携带的服务器的交互地址信息,服务器的交互地址信息可以是服务器的存储器中的存储区编号或服务器的存储器的偏移地址,这样,服务器可以根据该交互地址信息,直接将存储地址获取请求存储到交互地址信息对应的存储区中。这样,可以避免临时为存储地址获取请求分配存储空间,使得客户端与服务器之间可以进行快速地数据交互。
可选地,服务器接收存储地址获取请求之后,可以根据接收到的存储地址获取请求,判断对该存储地址获取请求进行处理的处理部件,相应的处理步骤可以如下:通过内置网卡NIC,服务器根据预先存储的请求消息类型与处理部件的对应关系,确定存储地址获取请求对应的处理部件为CPU,服务器通过CPU执行存储地址获取请求对应的操作指令。
一个可能的实施例中,服务器接收并存储该存储地址获取请求后,判断该存储地址获取请求的请求消息类型,然后获取预先存储的请求消息类型与处理部件的对应关系,该对应关系可以是以对应关系表的形式进行存储。然后,在该对应关系表中查询存储地址获取请求的请求消息类型对应的处理部件,可以确定存储地址获取请求的请求消息类型对应的处理部件为CPU,也就是说,处理该存储地址获取请求的处理部件为CPU。然后服务器通过CPU执行该存储地址获取请求对应的操作指令。
需要说明的是,上述存储地址获取请求的请求消息类型由客户端采用的数据通讯协议决定的,一般来说,通用的传输协议,如TCP/IP协议,一般对应的处理部件均为CPU。
在步骤303中,基于服务器的中央处理器CPU,服务器根据存储地址获取请求,获取目标数据的存储地址。
一个可能的实施例中,服务器的CPU接收到NIC送交的解析后的存储地址获取请求后,对该存储地址获取请求进一步解析,得到存储地址获取请求中携带的目标数据的数据标识。然后,根据该数据标识,在预先存储在内存中的数据标识与存储地址的对应关系表中,查询目标数据的数据标识对应的存储地址。优选地,服务器的内存可以是NVM(Non-Volatile Memory,非易失性内存),具有非易失、存储密度高、低耗能、读写性能高的特点。
需要说明的是,上述客户端发送存储地址获取请求的同时,还可以获取除了存储地址之外的目标数据的其它相关信息,这种情况下,在多个对应关系表中分别获取不同的信息。例如,客户端可以同时请求获取目标数据在服务器中的存储地址以及目标数据的元数据信息,这种情况下,可以通过两个对应关系表分别获取信息,一个为数据标识与数据在服务器中的存储地址的对应关系表,另一个为数据标识与元数据信息的对应关系表,根据目标数据的数据标识,分别在两个对应关系表中查询目标数据在服务器中的存储地址以及目标数据的元数据信息。
在步骤304中,基于服务器的NIC,服务器向客户端发送目标数据的存储地址。
一个可能的实施例中,服务器的CPU查询到目标数据的存储地址后,CPU将存储地址送交至服务器的NIC中,由服务器的NIC通过网络接口向客户端的NIC发送目标数据的存储地址。
可选地,为了减轻服务器的CPU负担,存储地址获取请求中可以携带有客户端的交互地址信息和服务器的交互地址信息。这样,服务器向客户端发送存储地址时,同时发送客户端的交互地址信息,使得客户端根据客户端的交互地址信息,将存储地址存储在客户端的内存中。
一个可能的实施例中,如果存储地址获取请求中不携带有客户端的内存地址属性信息,则服务器向客户端发送存储地址时,服务器的CPU需要先根据客户端的设备标识,在预先存储的客户端的设备标识与客户端的内存地址属性信息的对应关系表中,查询客户端的设备标识对应的内存地址属性信息,然后CPU将属性信息和客户端的内存地址属性信息送交至NIC,由NIC根据客户端的内存地址属性信息,将存储地址发送给客户端。这样,每当服务器向客户端进行数据传输时,都需要临时查询客户端的内存地址属性信息,增大了CPU的负载,也增加了通信延迟。
为了降低CPU负载,可以采用优化的自适应远程调用方法,即客户端在向服务器发送存储地址获取请求时,在存储地址获取请求中添加客户端的交互地址信息等属性信息,交互地址信息包括标识和交互内存偏移地址。这样,服务器获取存储地址后,根据接收到的存储地址获取请求中的客户端的内存地址属性信息,直接将存储地址发送到客户端的内存中,无需再查询客户端的内存地址属性信息,降低了CPU负载,也降低了通信延迟。
需要说明的是,上述客户端的内存存储属性信息可以是客户端的内存偏移地址,或是客户端与服务器的交互标识。通过客户端的内存偏移地址可以实现对客户端内存的随机访问。客户端与服务器的交互标识为客户端首次登陆服务器时,服务器与客户端约定的内存块编号,该内存块标号用于表示该服务器与该客户端进行数据交互时客户端接收数据的内存块。然后,服务器与客户端各自生成一个交互标识对应的配置文件,服务器的配置文件中包括客户端的内存地址,客户端的配置文件中包括服务器的内存地址,这样,客户端与服务器之间进行通讯,且发送的请求中携带有交互标识时,客户端或服务器就可以直接获取交互标识对应的配置文件,根据配置文件中的内存地址,直接将数据发送至接收方的内存中。
另外,客户端在向服务器发送属性信息获取请求时,还可以指定一个队列偶,即指定客户端的缓存区域和服务器的缓存区域,这样,当客户端向服务器发送属性信息获取请求以及后续的通讯消息交互时,客户端发送的通讯消息直接存储到服务器中指定的缓存区域,这样服务器可以立即响应该通讯消息,并且直接定位到该通讯消息的存储位置,无需在所有缓存区域中进行全扫描,减少了CPU的负载。
在步骤305中,客户端接收服务器发送的目标数据的存储地址。
一个可能的实施例中,通过上述步骤服务器将存储地址发送给客户端后,客户端接收服务器发送的存储地址,将存储地址临时存储在缓存中。
可选地,为了实现客户端与服务器之间快速的交互,服务器在向客户端发送目标数据的存储地址时,可以一起发送客户端的交互地址,客户端的处理步骤可以如下:接收服务器发送的目标数据在服务器中的存储地址以及客户端的交互地址信息;根据客户端的交互地址信息,将存储地址存储在客户端的内存中。这样,无需客户端临时为目标数据的存储地址分配存储空间,而是直接将存储地址存储在指示的存储区即可,减少了处理时间,提高了处理效率。
在步骤306中,客户端向服务器发送数据处理请求。
其中,数据处理请求中携带有目标数据在服务器中的存储地址以及客户端的交互地址信息。
一个可能的实施例中,客户端接收到服务器发送的存储地址后,生成目标数据的数据处理请求,将该数据处理请求发送至服务器,该数据处理请求中携带有目标数据在服务器中的存储地址以及客户端的交互地址信息。
可选地,数据处理请求包括数据读取请求或数据写入请求。
一个可能的实施例中,根据用户通过客户端触发的操作指令,上述客户端向服务器发送的数据处理请求可以是数据读取请求或数据写入请求。数据读取请求可以用于将目标数据显示给用户进行查看,数据写入请求可以用于对目标数据进行修改。
可选地,数据处理请求基于RDMA(Remote Direct Memory Access,远程直接数据存取)进行传输。
一种可能的实施例中,RDMA是一种可以通过网络将数据从一个设备的内存中快速移动到另一个设备的内存中的技术。不采用RDMA技术对通讯消息进行传输时,如图5的链路①所示,通讯消息的传输链路为“客户端的NIC→服务器的NIC→服务器的CPU→服务器的内存”,而本发明基于RDMA技术对数据处理请求进行传输,如图5的链路②所示,决定了数据处理请求的传输链路为“客户端的NIC→服务器的NIC→服务器的内存”,实现客户端主动读写服务器的内存地址,无需服务器的CPU进行资源占用,大大降低了服务器CPU的负载。
这种情况下,要求服务器的NIC支持RDMA技术,这样当服务器的NIC接收到基于RDMA技术传输的数据处理请求时,NIC对数据处理请求进行解析,并将解析后的数据处理请求送交至服务器的内存,直接对内存中的目标数据进行处理。
在步骤307中,基于服务器的NIC,服务器接收客户端发送的数据处理请求。
在步骤308中,基于服务器的NIC,根据存储地址,服务器对目标数据进行处理。
其中,数据处理请求中携带有目标数据的存储地址以及客户端的内存地址属性信息。
一个可能的实施例中,客户端向服务器发送数据处理请求后,服务器的NIC接收客户端发送的数据处理请求。由于该数据处理请求基于RDMA进行传输,NIC接收到数据处理请求后,对该数据处理请求进行解析,得到目标数据在服务器内存中的存储地址。然后,根据该存储地址,NIC将解析后的数据处理请求直接送交至服务器的内存中,使得服务器的内存根据解析后的数据处理请求,对目标数据进行相应的处理。
可选地,上述服务器接收数据处理请求后,可以根据数据处理请求确定对该数据处理请求进行处理的处理部件,然后根据该处理部件对数据处理请求进行处理,相应的处理步骤可以如下:通过NIC,根据预先存储的请求消息类型与处理部件的对应关系,服务器确定数据处理请求对应的处理部件为存储器,指示存储器,根据存储地址,对目标数据进行处理。
一个可能的实施例中,服务器接收并存储客户端发送的数据处理请求后,获取数据处理请求的请求消息类型,并获取预先存储的请求消息类型与处理部件的对应关系,在该对应关系中查询数据处理请求的请求消息类型对应的处理部件。
RDMA技术是实现设备之间避开CPU处理带来的延迟数据实现数据直接读取的技术,因此,基于RDMA协议进行传输的请求消息的请求消息类型对应的处理部件均为存储器。由于上述数据处理请求是基于RDMA协议进行传输的,因此,在根据对应关系查询数据处理请求的请求消息类型对应的处理部件时,可以确定该数据处理请求的请求消息类型对应的处理部件为存储器。然后,服务器指示存储器,根据上述存储地址对目标数据进行处理。
可选地,除了上述确定请求消息的处理方式之外,还可以有其它的确定的方式,相应的处理步骤可以如下:通过NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定目标操作信息对应的目标执行指令,向存储器发送携带有存储地址的目标执行指令。
一个可能的实施例中,客户端在向服务器发送数据处理请求之前,在生成数据处理请求时,根据采用的通信传输协议,在数据处理请求中添加操作信息,该操作信息可以由通信传输协议决定,用于指示采用何种执行指令执行处理。
通过NIC,服务器获取数据处理请求中包含的操作信息,然后根据预先存储的操作信息与存储器的执行指令之间的对应关系,查询数据处理请求中的操作信息对应的存储器的执行指令(即为目标执行指令),确定该目标执行指令是由存储器执行的执行指令,然后,向存储器发送携带有存储地址的目标执行指令,使存储器执行该目标执行指令,即执行对目标数据的读或写的操作。
处理完成后,服务器的内存会生成处理完成消息,通过服务器的NIC发送给客户端,客户端接收到处理完成消息后,向服务器发送关闭数据消息。服务器接收到关闭数据消息后,执行数据关闭操作,然后,服务器向客户端发送关闭成功通知,客户端接收到关闭成功通知时,向用户显示数据处理成功的提示消息。
需要说明的是,上述目标数据的属性信息还包括目标数据的元数据信息。当数据处理请求为数据写入请求时,根据数据写入请求,对元数据信息进行更新。
其中,元数据信息可以是数据的创建时间、修改时间、数据大小、数据名称等信息。
一个可能的实施例中,客户端获取的目标数据的属性信息除了包括目标数据在服务器中的存储地址之外,还可以包括目标数据的元数据信息。客户端接收到服务器发送的目标数据的元数据信息后,将元数据信息存储在客户端的内存中。
当用户想要查看目标数据时,即用户触发客户端发送的数据处理请求为数据读取请求时,客户端接收到服务器发送的关闭成功通知时,即确定读取数据成功时,客户端可以按照预设的显示方式,向用户显示目标数据的元数据信息,如显示目标数据的数据大小、修改时间、作者等信息,使用户可以简便的了解目标数据的相关信息。
当用户想对目标数据进行增、删、或修改时,即用户触发客户端发送的数据处理请求为数据写入请求时,目标数据的元数据信息会发生改变,如元数据信息中的修改时间、数据大小等信息会发生改变,这种情况下,服务器的内存直接对存储在内存中的目标数据的元数据信息进行修改,然后,服务器的内存将修改后的元数据信息通过NIC发送给客户端,使得客户端向用户显示修改后的元数据信息,使得用户及时了解目标数据的相关信息。
本发明实施例中,客户端向服务器获取目标数据在服务器中的存储地址,然后通过存储地址,客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,减少占用CPU资源,减轻服务器的CPU负载。
基于相同的技术构思,本发明实施例还提供了一种对数据进行处理的装置,该装置可以为上述实施例中的服务器,如图6所示,该装置包括:接收模块610、获取模块620和发送模块630。
该接收模块610,被配置为通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求;
该获取模块620,被配置为通过中央处理器CPU,获取所述目标数据在服务器中的存储地址;
该发送模块630,还被配置为通过所述NIC,向所述客户端发送所述存储地址,接收所述客户端发送的携带有所述存储地址的数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选地,所述存储地址获取请求中携带有客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
所述接收模块610,被配置为:
通过内置网卡NIC,根据所述服务器的交互地址信息,接收并存储客户端发送的目标数据的存储地址获取请求
所述发送模块630,被配置为:
通过所述NIC,向所述客户端发送所述存储地址以及所述客户端的交互地址信息,使得所述客户端根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中。
可选地,如图7所示,所述装置还包括:
确定模块640,被配置为通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求之后,通过内置网卡NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述存储地址获取请求对应的处理部件为CPU,通过所述CPU执行所述存储地址获取请求对应的操作指令;
处理模块650,被配置为通过所述NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述数据处理请求对应的处理部件为存储器,指示所述存储器,根据所述存储地址,对所述目标数据进行处理。
可选地,所述数据处理请求中携带有目标操作信息;
发送模块630,还被配置为:
通过所述NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定所述目标操作信息对应的目标执行指令,向所述存储器发送携带有所述存储地址的所述目标执行指令。
可选地,所述数据处理请求包括目标数据读取请求或目标数据写入请求。
本发明实施例中,当客户端对存储在服务器中的目标数据进行处理时,服务器将目标数据存储在服务器中的存储地址发送给客户端,使得客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,减少占用CPU资源,减轻服务器的CPU负载。
基于相同的技术构思,本发明实施例还提供了一种对数据进行处理的装置,该装置可以为上述实施例中的客户端,如图8所示,该装置包括:发送模块810和接收模块820。
发送模块810,被配置为向目标数据所在的服务器发送所述目标数据的存储地址获取请求;
接收模块820,被配置为接收所述服务器发送的所述目标数据在所述服务器中的存储地址;
发送模块810,还被配置为向所述服务器发送携带有所述存储地址的数据处理请求,以使所述服务器通过NIC,根据所述存储地址,对所述目标数据进行读写处理。
可选地,所述存储地址获取请求中携带有客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
所述接收模块820,被配置为:
接收所述服务器发送的所述目标数据在所述服务器中的存储地址以及客户端的交互地址信息;根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中;
所述发送模块810,被配置为:
向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,使得所述服务器接收携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,存储所述数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选地,所述发送模块810,被配置为:
获取目标数据的数据标识,确定所述数据标识的哈希值;
根据预先存储的哈希值区间与设备标识的对应关系,确定所述哈希值所属的哈希值区间对应的目标设备标识;
向所述目标设备标识对应服务器发送所述目标数据的存储地址获取请求。
可选地,所述数据处理请求包括数据读取请求或数据写入请求。
本发明实施例中,客户端向服务器获取目标数据在服务器中的存储地址,然后通过存储地址,客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,不经过操作系统内核,减少占用CPU资源,减轻服务器的CPU负载,进而减少服务器的CPU带来的延时,因此可以提高客户端对目标数据的处理效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的对数据进行处理的装置在对数据进行处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对数据进行处理的装置与对数据进行处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述实施例中的服务器,该计算机设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)901和一个或一个以上的存储器902,其中,所述存储器902中存储有至少一条指令,所述至少一条指令由所述处理器901加载并执行以实现下述对数据进行处理的方法步骤:
通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求;
通过中央处理器CPU,获取所述目标数据在服务器中的存储地址;
通过所述NIC,向所述客户端发送所述存储地址,接收所述客户端发送的携带有所述存储地址的数据处理请求,根据所述存储地址,对所述目标数据进行处理。
可选的,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
通过内置网卡NIC,根据所述服务器的交互地址信息,接收并存储客户端发送的目标数据的存储地址获取请求;
通过所述NIC,向所述客户端发送所述存储地址以及所述客户端的交互地址信息,使得所述客户端根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中。
可选的,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
通过内置网卡NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述存储地址获取请求对应的处理部件为CPU,通过所述CPU执行所述存储地址获取请求对应的操作指令;
通过所述NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述数据处理请求对应的处理部件为存储器,指示所述存储器,根据所述存储地址,对所述目标数据进行处理。
可选的,所述至少一条指令由所述处理器901加载并执行以实现下述方法步骤:
通过所述NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定所述目标操作信息对应的目标执行指令,向所述存储器发送携带有所述存储地址的所述目标执行指令。
本发明实施例中,当客户端对存储在服务器中的目标数据进行处理时,服务器将目标数据存储在服务器中的存储地址发送给客户端,使得客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,减少占用CPU资源,减轻服务器的CPU负载。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述实施例中的识别动作类别的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图10是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述实施例中的客户端,该计算机设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条指令,所述至少一条指令由所述处理器1001加载并执行以实现下述对数据进行处理的方法步骤:
向目标数据所在的服务器发送所述目标数据的存储地址获取请求;
接收所述服务器发送的所述目标数据在所述服务器中的存储地址;
向所述服务器发送携带有所述存储地址的数据处理请求,以使所述服务器通过NIC,根据所述存储地址,对所述目标数据进行读写处理。
可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
接收所述服务器发送的所述目标数据在所述服务器中的存储地址以及客户端的交互地址信息;根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的内存中;
向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求;
可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
获取目标数据的数据标识,确定所述数据标识的哈希值;
根据预先存储的哈希值区间与设备标识的对应关系,确定所述哈希值所属的哈希值区间对应的目标设备标识;
向所述目标设备标识对应服务器发送所述目标数据的存储地址获取请求。
本发明实施例中,客户端向服务器获取目标数据在服务器中的存储地址,然后通过存储地址,客户端直接对服务器的内存中的目标数据进行处理,无需服务器的CPU拷贝数据和发送数据,不经过操作系统内核,减少占用CPU资源,减轻服务器的CPU负载,进而减少服务器的CPU带来的延时,因此可以提高客户端对目标数据的处理效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种对数据进行处理的方法,其特征在于,所述方法应用于分布式存储系统中的服务器,所述方法包括:
通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求,所述存储地址获取请求中携带有所述目标数据的数据标识、所述客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;
通过所述NIC,对所述存储地址获取请求进行解析,获取所述存储地址获取请求中携带的所述服务器的交互地址信息,根据所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中;
通过中央处理器CPU,获取所述存储地址获取请求中携带的所述目标数据的数据标识,在预先存储在内存中的数据标识和存储地址的对应关系中,查询所述目标数据的数据标识对应的存储地址,作为所述目标数据在所述服务器中的存储地址;
通过所述NIC,向所述客户端发送所述存储地址和所述客户端的交互地址信息,使得所述客户端根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的交互地址所指示的内存中,接收所述客户端发送的携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中,根据所述存储地址,对所述目标数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求之后,还包括:
通过内置网卡NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述存储地址获取请求对应的处理部件为CPU,通过所述CPU执行所述存储地址获取请求对应的操作指令;
通过所述NIC,根据所述存储地址,对所述目标数据进行处理,包括:
通过所述NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述数据处理请求对应的处理部件为存储器,指示所述存储器,根据所述存储地址,对所述目标数据进行处理。
3.根据权利要求2所述的方法,其特征在于,所述数据处理请求中携带有目标操作信息;
通过所述NIC,指示所述存储器,根据所述存储地址,对所述目标数据进行处理,包括:
通过所述NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定所述目标操作信息对应的目标执行指令,向所述存储器发送携带有所述存储地址的所述目标执行指令。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述数据处理请求包括数据读取请求或数据写入请求。
5.一种对数据进行处理的方法,其特征在于,所述方法应用于分布式存储系统中的客户端,所述方法包括:
向目标数据所在的服务器发送所述目标数据的存储地址获取请求,所述存储地址获取请求中携带有所述客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址,使得所述服务器的内置网卡NIC,对所述存储地址获取请求进行解析,获取所述存储地址获取请求中携带的所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中,所述服务器的中央处理器CPU获取所述目标数据在所述服务器中的存储地址,所述NIC向所述客户端发送所述存储地址和所述客户端的交互地址信息;
接收所述服务器发送的所述目标数据在所述服务器中的存储地址和所述客户端的交互地址信息,根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的交互地址所指示的内存中;
向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,使得所述NIC接收携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,存储所述数据处理请求,根据所述存储地址,对所述目标数据进行处理。
6.根据权利要求5所述的方法,其特征在于,所述向目标数据所在的服务器发送所述目标数据的存储地址获取请求,包括:
获取目标数据的数据标识,确定所述数据标识的哈希值;
根据预先存储的哈希值区间与设备标识的对应关系,确定所述哈希值所属的哈希值区间对应的目标设备标识;
向所述目标设备标识对应服务器发送所述目标数据的存储地址获取请求。
7.根据权利要求5或6所述的方法,其特征在于,所述数据处理请求包括数据读取请求或数据写入请求。
8.一种对数据进行处理的装置,其特征在于,所述装置为分布式存储系统中的服务器,所述装置包括:
接收模块,用于通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求,所述存储地址获取请求中携带有所述目标数据的数据标识、所述客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;通过所述NIC,对所述存储地址获取请求进行解析,获取所述存储地址获取请求中携带的所述服务器的交互地址信息,根据所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中;
获取模块,用于通过中央处理器CPU,获取所述存储地址获取请求中携带的所述目标数据的数据标识,在预先存储在内存中的数据标识和存储地址的对应关系中,查询所述目标数据的数据标识对应的存储地址,作为所述目标数据在服务器中的存储地址;
发送模块,用于通过所述NIC,向所述客户端发送所述存储地址和所述客户端的交互地址信息,使得所述客户端根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的交互地址所指示的内存中,接收所述客户端发送的携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中,根据所述存储地址,对所述目标数据进行处理。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
确定模块,用于通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求之后,通过内置网卡NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述存储地址获取请求对应的处理部件为CPU,通过所述CPU执行所述存储地址获取请求对应的操作指令;
处理模块,用于通过所述NIC,根据预先存储的请求消息类型与处理部件的对应关系,确定所述数据处理请求对应的处理部件为存储器,指示所述存储器,根据所述存储地址,对所述目标数据进行处理。
10.根据权利要求9所述的装置,其特征在于,所述数据处理请求中携带有目标操作信息;
发送模块,还用于:
通过所述NIC,根据预先存储的操作信息与存储器的执行指令之间的对应关系,确定所述目标操作信息对应的目标执行指令,向所述存储器发送携带有所述存储地址的所述目标执行指令。
11.根据权利要求8至10中任一所述的装置,其特征在于,所述数据处理请求包括目标数据读取请求或目标数据写入请求。
12.一种对数据进行处理的装置,其特征在于,所述装置应用于分布式存储系统中的客户端,所述装置包括:
发送模块,用于向目标数据所在的服务器发送所述目标数据的存储地址获取请求,所述存储地址获取请求中携带有所述目标数据的数据标识、所述客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址,使得所述服务器的内置网卡NIC,对所述存储地址获取请求进行解析,获取所述存储地址获取请求中携带的所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中,所述服务器的中央处理器CPU获取所述存储地址获取请求中携带的所述目标数据的数据标识,在预先存储在内存中的数据标识和存储地址的对应关系中,查询所述目标数据的数据标识对应的存储地址,作为所述目标数据在所述服务器中的存储地址,所述NIC向所述客户端发送所述存储地址和所述客户端的交互地址信息;
接收模块,用于接收所述服务器发送的所述目标数据在所述服务器中的存储地址和所述客户端的交互地址信息,根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的交互地址所指示的内存中;
发送模块,还用于向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,使得所述服务器接收携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,存储所述数据处理请求,根据所述存储地址,对所述目标数据进行处理。
13.根据权利要求12所述的装置,其特征在于,所述发送模块,用于:
获取目标数据的数据标识,确定所述数据标识的哈希值;
根据预先存储的哈希值区间与设备标识的对应关系,确定所述哈希值所属的哈希值区间对应的目标设备标识;
向所述目标设备标识对应服务器发送所述目标数据的存储地址获取请求。
14.根据权利要求12或13所述的装置,其特征在于,所述数据处理请求包括数据读取请求或数据写入请求。
15.一种对数据进行处理的系统,其特征在于,所述系统包括分布式存储系统中的客户端和服务器,其中:
所述服务器,用于通过内置网卡NIC,接收客户端发送的目标数据的存储地址获取请求,所述存储地址获取请求中携带有所述客户端的交互地址信息和所述服务器的交互地址信息,其中,所述服务器的交互地址信息包括所述服务器的存储器中的存储区编号或所述服务器的存储器的偏移地址,所述客户端的交互地址信息包括所述客户端的存储器中的存储区编号或所述客户端的存储器的偏移地址;通过所述NIC,对所述存储地址获取请求进行解析,获取所述存储地址获取请求中携带的所述服务器的交互地址信息,根据所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中;通过中央处理器CPU,获取所述目标数据在服务器中的存储地址;通过所述NIC,向所述客户端发送所述存储地址和所述客户端的交互地址信息,接收所述客户端发送的携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,将所述存储地址获取请求存储至所述服务器的交互地址信息对应的存储区中,根据所述存储地址,对所述目标数据进行处理;
所述客户端,用于向目标数据所在的服务器发送所述目标数据的存储地址获取请求;接收所述服务器发送的所述目标数据在所述服务器中的存储地址和所述客户端的交互地址信息,根据所述客户端的交互地址信息,将所述存储地址存储在所述客户端的交互地址所指示的内存中;向所述服务器发送携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,使得所述NIC接收携带有所述存储地址和所述服务器的交互地址信息的数据处理请求,根据所述服务器的交互地址信息,存储所述数据处理请求,根据所述存储地址,对所述目标数据进行处理。
16.一种计算机设备,其特征在于,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现权利要求1-7任一所述的方法步骤。
17.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的对数据进行处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810847621.1A CN110764688B (zh) | 2018-07-27 | 2018-07-27 | 对数据进行处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810847621.1A CN110764688B (zh) | 2018-07-27 | 2018-07-27 | 对数据进行处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110764688A CN110764688A (zh) | 2020-02-07 |
CN110764688B true CN110764688B (zh) | 2023-09-05 |
Family
ID=69328393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810847621.1A Active CN110764688B (zh) | 2018-07-27 | 2018-07-27 | 对数据进行处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110764688B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610678A (zh) * | 2020-12-08 | 2022-06-10 | 华为技术有限公司 | 一种文件访问方法、存储节点以及网卡 |
CN115242813A (zh) * | 2021-04-23 | 2022-10-25 | 华为技术有限公司 | 一种文件访问方法、网卡以及计算设备 |
CN114302394B (zh) * | 2021-11-19 | 2023-11-03 | 深圳震有科技股份有限公司 | 一种5g upf下网络直接内存访问方法及系统 |
CN115933973B (zh) * | 2022-11-25 | 2023-09-29 | 中国科学技术大学 | 远程更新数据的方法、rdma系统及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394403A (zh) * | 2007-09-20 | 2009-03-25 | 柯尼卡美能达商用科技株式会社 | 数据传输设备、数据传输系统和地址注册方法 |
WO2013107029A1 (zh) * | 2012-01-19 | 2013-07-25 | 华为技术有限公司 | 一种基于块存储的数据处理方法、装置及系统 |
US9049265B1 (en) * | 2012-12-26 | 2015-06-02 | Google Inc. | Serving remote access to storage resources |
CN105933376A (zh) * | 2016-03-31 | 2016-09-07 | 华为技术有限公司 | 一种数据操作方法,服务器及存储系统 |
CN106210041A (zh) * | 2016-07-05 | 2016-12-07 | 杭州华为数字技术有限公司 | 一种数据写入方法及服务器端网卡 |
CN106933775A (zh) * | 2013-10-29 | 2017-07-07 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
WO2017133496A1 (zh) * | 2016-02-02 | 2017-08-10 | 华为技术有限公司 | 一种资源获取的方法及相关设备 |
CN107124483A (zh) * | 2017-06-26 | 2017-09-01 | 广州市百果园信息技术有限公司 | 域名解析方法及服务器 |
WO2018059238A1 (zh) * | 2016-09-30 | 2018-04-05 | 杭州海康威视数字技术股份有限公司 | 基于云存储的数据处理方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4677340B2 (ja) * | 2005-12-21 | 2011-04-27 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム、及び記憶媒体 |
US20170013046A1 (en) * | 2014-11-18 | 2017-01-12 | Primarydata, Inc. | Data-centric data storage |
US10257273B2 (en) * | 2015-07-31 | 2019-04-09 | Netapp, Inc. | Systems, methods and devices for RDMA read/write operations |
-
2018
- 2018-07-27 CN CN201810847621.1A patent/CN110764688B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394403A (zh) * | 2007-09-20 | 2009-03-25 | 柯尼卡美能达商用科技株式会社 | 数据传输设备、数据传输系统和地址注册方法 |
WO2013107029A1 (zh) * | 2012-01-19 | 2013-07-25 | 华为技术有限公司 | 一种基于块存储的数据处理方法、装置及系统 |
US9049265B1 (en) * | 2012-12-26 | 2015-06-02 | Google Inc. | Serving remote access to storage resources |
CN106933775A (zh) * | 2013-10-29 | 2017-07-07 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
WO2017133496A1 (zh) * | 2016-02-02 | 2017-08-10 | 华为技术有限公司 | 一种资源获取的方法及相关设备 |
CN105933376A (zh) * | 2016-03-31 | 2016-09-07 | 华为技术有限公司 | 一种数据操作方法,服务器及存储系统 |
WO2017167171A1 (zh) * | 2016-03-31 | 2017-10-05 | 华为技术有限公司 | 一种数据操作方法,服务器及存储系统 |
CN106210041A (zh) * | 2016-07-05 | 2016-12-07 | 杭州华为数字技术有限公司 | 一种数据写入方法及服务器端网卡 |
WO2018059238A1 (zh) * | 2016-09-30 | 2018-04-05 | 杭州海康威视数字技术股份有限公司 | 基于云存储的数据处理方法及系统 |
CN107124483A (zh) * | 2017-06-26 | 2017-09-01 | 广州市百果园信息技术有限公司 | 域名解析方法及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN110764688A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764688B (zh) | 对数据进行处理的方法和装置 | |
US10187445B2 (en) | System, method and browser client for enabling browser data synchronization | |
WO2017114206A1 (zh) | 短链接处理方法、装置及短链接服务器 | |
CN110557284B (zh) | 基于客户端网关的数据聚合方法及装置 | |
CN109067936B (zh) | 一种域名解析的方法及装置 | |
CN109167840B (zh) | 一种任务推送方法、节点自治服务器及边缘缓存服务器 | |
RU2642833C2 (ru) | Способ и устройство для обеспечения медиаресурса | |
CN105608159A (zh) | 数据缓存的方法和装置 | |
CN109871354B (zh) | 一种文件处理的方法及装置 | |
CN104618388B (zh) | 快速注册登录方法及对应的重置服务器、信息服务器 | |
CN111803917B (zh) | 资源的处理方法和装置 | |
US20090157896A1 (en) | Tcp offload engine apparatus and method for system call processing for static file transmission | |
WO2019196225A1 (zh) | 一种反馈资源文件的方法和装置 | |
CN114218165A (zh) | 文件下载方法、装置、计算机设备及介质 | |
CN107241446B (zh) | 应用程序的文件传输方法、装置和终端设备及存储介质 | |
CN110858201A (zh) | 数据处理方法及系统、处理器、存储介质 | |
CN114301872B (zh) | 基于域名的访问方法及装置、电子设备、存储介质 | |
CN112040023B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
CN114510486A (zh) | 维度表数据处理方法、装置、电子设备及存储介质 | |
CN111104528B (zh) | 图片获取方法、装置及客户端 | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
CN113032820A (zh) | 文件存储方法、访问方法、装置、设备及存储介质 | |
CN113242307B (zh) | 服务请求处理方法、装置、服务器及存储介质 | |
CN113342837B (zh) | 数据发送方法、装置、电子设备和计算机可读介质 | |
CN117883789B (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 |