一种查询系统及装置的制作方法

文档序号:32611654发布日期:2022-12-20 20:09阅读:30来源:国知局
一种查询系统及装置的制作方法
一种查询系统及装置
1.相关申请的交叉引用
2.本技术要求在2021年06月18日提交印度专利局、申请号为20213102723.4、申请名称为“一种针对分布式文件系统的目录查询方法”的印度专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
3.本技术涉及计算机技术领域,尤其涉及一种查询系统及装置。


背景技术:

4.分布式或共享存储系统(例如,网络附加存储(network-attached storage,nas)系统或丛集)通常包含多个nas装置,其将基于文件的数据存储服务提供到网络中的其它装置(客户端,例如应用程序服务器)。一般来说,nas装置是用于存储并为文件服务的专用计算机系统。因此,nas装置相较于应用程序服务器等通用计算机系统具有较低能力。举例来说,nas装置可具有更简单的操作系统和不那么强大的处理器,且还可以缺乏键盘和显示器等其它组件。
5.应用程序服务器可以使用网络文件系统(network file system,nfs)或通用internet文件系统(common internet file system,cifs)等数据共享或文件共享协议经由网络检索由nas系统存储的数据。在检索数据之后,应用程序服务器可以如上文所提及分析所述数据。
6.举例来说,nas客户端可以访问nas装置上的文件系统,如访问指定路径下的目录条目,nas客户端还可以对这些目录条目执行一些操作,如基于文件属性对条目进行过滤等。现有,可能需要nas客户端和nas装置之间通过多次往返来实现上述目的,如当目录条目较大时,nas装置每次只能返回部分条目至客户端,nas客户端获取nas装置返回的条目后,再从nas装置一一获取这些条目的文件属性等。
7.综上,现有方式会消耗相对较大量的带宽,并且时延也比较高。


技术实现要素:

8.本技术提供一种查询系统及装置,用于提高文件查询效率,降低网络延迟。
9.第一方面,本技术实施例提供了一种查询系统,该查询系统包括客户端和存储设备,其中,所述客户端用于向所述存储设备发送查询请求,所述查询请求用于请求查询目标路径下满足查询条件的目标条目;所述存储设备用于响应所述查询请求,获取所述目标路径所对应的目录条目,并确定目标条目,所述目标条目为所述目录条目下任一满足所述查询条件的条目;还用于将所述目标条目发送给所述客户端;所述客户端用于接收所述存储设备发送的目标条目。
10.上述方式,存储设备可以基于查询条件对目录条目进行过滤,由于过滤后得的目标条目的数量小于完整目录条目的数量,因此会显著减少数据传输量,从而提升网络带宽
的利用率。同时还可以减少cpu开销,以及磁盘i/o,降低时延,提高cpu和内存利用率。
11.在一种可能的实施方式中,所述查询条件包括下列中的一项或多项:指定文件名称、指定文件属性;
12.所述文件属性包括:文件大小、创建时间、最近修改时间、文件类型、访问权限。
13.在一种可能的实施方式中,所述客户端还用于侦测用户输入的查询信息,所述查询信息包括用于指示所述目标路径的信息和用于指示所述查询条件的信息;基于所述查询信息生成所述查询请求。
14.上述方式,可以将本技术技术方案应用于其他查询机制中,例如现有的find应用程序触发的查询命令,使得本方案具有更好的移植性和兼容性。
15.第二方面,本技术实施例提供了另一种查询系统,该查询系统包括客户端和存储设备,其中,所述客户端用于向所述存储设备发送查询请求,所述查询请求用于请求查询目标路径下满足查询条件的目标条目,以及对所述目标条目执行指定操作;所述存储设备用于响应所述查询请求,获取所述目标路径所对应的目录条目,并确定目标条目,所述目标条目为所述目录条目下任一满足所述查询条件的条目;对所述目标条目执行所述指定操作;所述存储设备还用于将查询响应发送给所述客户端,所述查询响应用于指示操作结果;所述客户端还用于接收所述存储设备发送的所述查询响应。
16.上述方式,存储设备返回的查询响应用于指示指定操作是否成功的操作结果,由于不需要传输目标条目,因此会显著减少数据传输量,从而提升网络带宽的利用率。同时还可以减少cpu开销,以及磁盘i/o,降低时延,提高cpu和内存利用率。
17.在一种可能的实施方式中,所述指定操作包括下列中的一项或多项:删除操作、重命名操作、修改访问权限。
18.第三方面,本技术实施例还提供了一种存储装置,该装置具有实现上述第一方面的所示出的系统中存储设备行为的功能,有益效果可以参见第一方面的描述此处不再赘述。或实现上述第二方面的所示出的系统中存储设备行为的功能,有益效果可以参见第二方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括接收模块、处理模块和发送模块。这些模块可以执行上述第一方面或第二方面中的系统示例中存储设备的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
19.第四方面,本技术还提供了另一种存储设备,所述存储设备包括处理器和存储器,还可以包括通信接口,所述处理器执行所述存储器中的程序指令执行上述第一方面或第一方面任一可能的实现方式提供的存储设备执行的操作,或执行上述第二方面或第二方面任一可能的实现方式提供的存储设备执行的操作。该存储设备可以为服务器等设备。所述存储器与所述处理器耦合,其保存查询过程中必要的程序指令和数据。所述通信接口,用于与其他设备进行通信。
20.第五方面,本技术提供了一种计算机可读存储介质,所述计算书可读存储介质被存储设备执行时,所述存储设备执行前述第一方面或第一方面的任意可能的实现方式中提供的存储设备执行的操作,或执行前述第二方面或第二方面的任意可能的实现方式中提供的存储设备执行的操作。该存储介质中存储了程序。该存储介质包括但不限于易失性存储
器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,hdd)、固态硬盘(solid state drive,ssd)。
21.第六方面,本技术提供了一种计算设备程序产品,所述计算设备程序产品包括计算机指令,在被计算机执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的存储设备的操作,或执行前述第二方面或第二方面的任意可能的实现方式中提供的存储设备执行的操作。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第二方面的任意可能的实现方式中提供的存储设备的功能的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
22.第七方面,本技术还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实现方式中存储设备的操作,或执行上述第二方面以及第二方面的各个可能的实现方式中存储设备的操作。
23.上述第三方面至第七方面实现的有益效果,请参考第一方面或第二方面关于存储系统的有益效果的描述,此处不再赘述。
附图说明
24.图1a为本技术实施例提供的一种系统架构示意图;
25.图1b为本技术实施例提供的一种nas装置上文件系统示意图;
26.图2为本技术实施例提供的一种nas客户端和nas装置的交互示意图;
27.图3为本技术实施例提供的一种查询方法的流程示意图;
28.图4a为本技术实施例提供的一种查询请求的格式示意图;
29.图4b为本技术实施例提供的另一种查询请求的格式示意图;
30.图5为本技术实施例提供的一种查询流程示意图;
31.图6为本技术实施例提供的另一种查询流程示意图;
32.图7为本技术实施例提供的一种nas装置的结构示意图;
33.图8为本技术实施例提供的另一种nas装置的结构示意图。
具体实施方式
34.图1a为本技术实施例提供的另一种系统架构示意图。该系统包括nas客户端10和nas集群。其中,nas集群通常包括多个nas装置20(图1a中示出了三个nas装置20,但不限于nas装置20)。
35.其中,nas客户端10为用户侧的一种计算设备,nas客户端10可以是物理机,也可以是虚拟机。物理机包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。nas客户端10可以通过网络与nas集群内的任一nas装置20通信,网络通常表示任何电信或计算机网络,包含例如企业内部网、广域网(wide area network,wan)、局域网(local area network,lan)、个域网(personal area network,pan)或因特网。
36.在硬件层面,nas客户端10中设置有处理器、内存和硬盘(图1a中未示出硬件组件)。在软件层面,nas客户端10上运行有操作系统(图1a中未示出)、应用程序(application)101(简称应用)和客户端程序102(简称客户端)。其中,操作系统包括unix、
linux、windows、鸿蒙系统(harmonyos)等。应用101是对用户呈现的各种应用程序的统称,例如,可以是查询应用程序(find)。客户端102,用于接收由应用101触发的数据访问请求,并且与nas装置20交互,向nas装置20发送该数据访问请求。客户端102还用于接收来自nas装置20的数据,并向应用101转发该数据。可以理解的是,当客户端102是软件程序时,客户端102的功能由nas客户端10所包含的处理器运行内存中的程序来实现。客户端102也可以由位于nas客户端10内部的硬件组件如网卡来实现。需要说明的是,图1a仅示出1个客户端102,实际应用中,客户端102可以有多个,例如包括fs客户端和rpc客户端。
37.nas装置20,可以指连接在网络上的具备数据存储功能的设备。nas集群中的各个nas装置20之间可以相互通信。nas装置20上部署有文件系统,nas客户端10可以通过各种协议访问nas装置20的文件系统。
38.图1b为nas装置20内的文件系统示意图。
39.其中,文件系统是一个结构化的数据文件存储和组织形式。我们知道,计算机中所有的数据都是0和1,存储在硬件介质上的一连串的01组合对我们来说完全无法去分辨以及管理。因此我们用“文件”这个概念对这些数据进行组织,用于同一用途的数据,按照不同应用程序要求的结构方式组成不同类型的文件。通常用不同的后缀来指代不同的类型,然后我们给每个文件起一个方便理解记忆的名字。而当文件很多的时候,我们按照某种划分方式给这些文件分组,每一组文件放在同一个目录(或者叫文件夹)里面。而且目录下面除了文件还可以有下一级目录(称之为子目录或者子文件夹),所有的文件、目录形成一个树状结构。这个树状结构有一个专用的名字:文件系统(file system)。文件系统有很多类型,常见的有windows的fat/fat32/ntfs,linux的ext2/ext3/ext4/xfs/btrfs等。为了方便查找,从根节点开始逐级目录往下,一直到文件本身,把这些目录、子目录、文件的名字用特殊的字符(例如windows/dos用“\”,类unix系统用“/”)拼接起来,这样的一串字符称之为文件路径,例如linux中的“/etc/systemd/system.conf”或者windows中的“c:\windows\system32\taskmgr.exe”。路径是访问某个具体的文件的唯一标识。例如,windows下的d:\data\file.exe就是一个文件的路径,它表示d分区下的data目录下的file.exe文件。
40.文件系统是建立在块设备上面的,文件系统不但记录文件路径,还记录哪些块组成一个文件,哪些块记录的是目录/子目录信息。不同的文件系统有不同的组织结构。为了方便管理,硬盘这样的块设备通常可以划分为多个逻辑块设备,也就是硬盘分区(partition)。反过来,单个介质的容量、性能有限,可以通过某些技术手段把多个物理块设备组合成一个逻辑块设备,例如各种级别的raid,jbod等。文件系统也可以建立在这些逻辑块设备之上。无论如何,应用服务器应用并不需要关心所要访问的文件位于底层的块设备的具体位置,只需要该文件的文件名/id发送给文件系统,由文件系统根据所述文件名/id查询出文件路径即可。
41.nas客户端10可以使用文件访问协议经由网络访问由nas装置20的文件系统。比较常见的文件访问协议是nfs、cifs或者smb等,本实施例不对此进行任何限定。以nfs为例,nfs既是一种分布式文件系统,也是一种网络协议,用于在同一局域网上的设备之间访问和共享文件。该系统及其协议通常用于支持网络连接存储(network attached storage,nas)。网络文件系统是一种低成本的网络文件共享选项,它使用户和应用程序能够访问、存储和更新远程计算机上的文件,就像使用直接连接存储一样。nfs使用远程过程调用(rpc)
协议在nas客户端10和nas装置20之间路由请求。nfs使用远程过程调用(rpc)协议在nas客户端10和nas装置20之间路由请求。
42.图2示出了nas客户端10访问nas装置20的流程示意图。nas客户端10可以调用rpc发送指令(如nfs请求)到nas装置20上,以对nas装置20上文件系统进行操作,例如访问共享目录、打开文件、读写文件等。
43.为便于理解,通过下述的应用场景进行说明。
44.以图1a中的应用101为find应用程序为例,find应用程序是unix和类似unix的操作系统中的一种应用程序,它可以根据用户输入的指定条件在本地或远端的文件系统中查找文件,还可以对这些匹配指定条件的每一项条目应用一些请求的操作。本技术关注于远端文件系统的查询方法,如下以nas客户端10和nas装置20为例,对该查询流程进行介绍:
45.find应用程序可以为用户提供查询界面,用户可以在查询界面中输入find命令,以执行某种条件的查询。例如,用户输入的该find命令为查询目标路径下的目录条目。又例如,用户输入的find命令1为查询目标路径下指定名称的条目。又例如,该find命令2为用于查询目标路径下指定名称的文件,再例如,该find命令3为用于查找目标路径下指定文件名称,以及指定文件属性的文件。其中文件属性如文件大小、上次修改时间等,例如,指定文件属性为匹配给定大小的所有文件和/或比某些时间戳早的所有文件。
46.以find命令3为例,在目前的一种查询方式中,该find命令3的查询过程包括:首先,“find”命令使用readdir()posix api读取目标路径下的目录条目,假设该目标路径在nas装置20中,那么find应用程序会首先调用一个prc,将于读取目标路径所包含目录的指令(或请求)210发送至nas装置20。对应的,nas装置20响应于指令210,获取目标路径下的目录条目(如称为目标目录条目),之后nas装置将目标目录条目经返回给nas客户端10。
47.nas客户端10可能会迭代地调用读取调用,调用次数取决于目标目录条目的大小以及nfs配置。例如,目标目录条目包括1000条,nfs配置为每次返回100条,则针对nas客户端10的第一个读取调用,nas装置首先向nas客户端10返回该1000条目录条目中的第1-100条目录条目,接着,nas客户端10会发送第二个读取调用。nas装置20响应于该第二个读取调用,向nas客户端10返回第101-200条目录条目,依此类推。
48.find应用程序在获得目标目录条目的完整列表后,应用一些过滤器来选择其中一些满足用户指定条件的条目。其中,过滤器是一种功能模块,用于基于用户的指定条件执行过滤,得到满足过滤条件的对象,如获取指定名称的条目,通常采用正则表达式(正则表达式/regex)模式来过滤。
49.过滤过程包括:(1)nas客户端10生成用于获取文件名称的指令211,并将该指令211发送至nas装置20,来一一获取每个目标目录条目的名称,应注意,nas客户端10会为每个目标目录条目发送一个读指令211,来获取该条目的文件名称。因此,该过程可能需要nas客户端10和nas装置20之间的多次往返来实现。(2)在获取目标目录中每个条目的文件名称后,nas客户端10使用过滤器对完整的目标目录条目进行过滤,得到文件名称匹配于用户指定名称的条目(如称为第一条目)。(3)之后,nas客户端10生成用于获取文件属性的指令212,再从nas装置一一获取每个匹配于指定名称的条目的文件属性。应注意,这也需要每个条目执行一次往返。
50.另一种实现方式为,nfsv3提供了一个对标准readdir api的扩展,称为
readdirplus,基于readdirplus调用,nas装置20在返回目标目录条目时,会主动将目标目录条目的属性也返回至nas客户端10。这种方式可以优化往返时间,但事实上,readdirplus的性能甚至可能比readdir性能还差,因为nas客户端10可能仅需要为匹配于指定名称的条目加载文件属性,但readdirplus会将所有条目的文件属性都获取到nas客户端10,而有些文件属性可能是不需要的。
51.有时,用户还会对匹配于指定文件的条目执行一些操作,如删除等。例如find命令为查找目标路径下指定文件名称,以及指定文件属性的文件,并对这些文件执行删除操作。那么在得到匹配于指定名称、指定属性的条目(如称为目标条目)后,针对每一个第二条目,nas客户端10会向nas装置20发送用于执行删除操作的指令213,nas装置20响应于该指令213对该目标条目执行删除操作,这也需要每个条目执行一次往返。
52.上述查询方式,应用于本地文件系统中是可以被接受的,然后在远程文件系统中,可能会产生频繁的调用、往返,数据传输量大,网络延迟高。
53.为此,本技术实施例提供了一种查询方法,该方法通过将查找符合用户指定条件的文件的操作,从nas客户端转移到nas装置,从而减少整体网络往返,该方法可以显著降低网络延迟。
54.下面结合图3,以本技术实施例提供的查询方法应用于图1a所示的系统架构中为例进行说明。该方法中所提及的nas客户端可以是图1a中的nas客户端10(或nas客户端10的组件如处理器),nas装置可以是nas装置20(或nas装置20的组件如处理器)。
55.图3为本技术实施例提供的一种查询方法所对应的流程示意图。如图3所示,该方法包括如下步骤:
56.步骤301,nas客户端向nas装置发送目录路径名称。对应的,nas装置接收nas客户端发送的目录路径名称。
57.示例性地,该目录路径名称可以是基于用户输入的find命令得到的。
58.步骤302,nas装置将目标目录对象的文件句柄发送给nas客户端。对应的,nas客户端接收nas装置发送的文件句柄。
59.这里的目标目录对象是指nas客户端发送的目录路径所指示的目录对象,也即待查询的目录对象。
60.本领域技术人员可以知道,在nfs协议中,计算机设备是经由不透明文件句柄寻址文件或目录对象。在文件系统中,每个文件或每个目录对象均具有各自的文件句柄,文件句柄对于文件或目录对象是唯一的识别依据。
61.实际上,nas客户端基于find命令,会首先在本地的缓存中查询,若本地缓存中未命中,则将该目录路径发送至nas装置。nas装置搜索该目录路径对应的文件句柄,并将其返回给nas客户端。步骤303,nas客户端向nas装置发送查询请求。对应的,nas装置接收nas客户端发送的查询请求。
62.本技术实施例中,查询请求包括过滤条件,该过滤条件可以是基于用户输入的如find命令得到的,用于对目标目录对象中的条目进行过滤。具体的,该过滤条件包括但不限于:支持正则表达式的过滤条件、文件属性过滤条件,还可以包括操作链。所谓操作链是指对过滤后的目标条目所需执行的一个或多个操作,如该一个或多个操作包括:删除、修改访问权项、重命名。其中,正则表达式如用于过滤文件名称的正则表达式。文件属性如文件大
小、创建时间、最近修改时间、文件类型等。
63.举例来说,以find命令为例,如用户输入的find命令为查找路径a下的目录对象中,名称为abc,且文件大小大于10kb的文件。基于该find命令,查询请求可以包括如下过滤条件:(1)名称为abc,该过滤条件支持以正则表达式模式来表示。(2)文件大小大于10kb,这是一条属性过滤条件。
64.再例如,find命令为查找路径a下的目录对象中,名称为abc,且文件大小大于10kb的文件,并对匹配于过滤条件的目录条目执行删除操作。针对该find命令的查询请求除包括前述的过滤条件之外,还可以包括用户指定的操作,即删除操作。
65.参见图4a,图4a为本技术实施例提供的一种查询请求的帧结构示意图。
66.该帧结构包括头部和数据部分。其中,头部用于放置一些关于过滤该查询请求的描述信息,数据部分用于存放过滤条件、操作链等信息。
67.如下对该帧结构中的每一项进行具体介绍:
68.一、头部;
69.1,版本:是nas装置的一个输入参数,表示nas客户端上所应用的过滤器的版本。其中,过滤器可以是一种功能模块如应用程序或插件,其可以在nas客户端和nas装置上安装,用于基于用户指定的过滤条件对目录条目进行过滤。
70.nas装置基于该参数确定自身所使用的过滤器是否兼容nas客户端所使用的过滤器,如果nas装置不支持nas客户端正在使用的过滤器的版本,则nas装置将向nas客户端返回一个错误指示,以指示兼容性问题。
71.2,存储区域的大小:是nas装置的一个输入参数,用于表示nas客户端为本次读取调用分配的存储区域的大小。nas装置根据该存储区域的大小返回相应的数据量,例如,nas客户端分配的存储区域的大小为8kb,则nas装置返回不大于8k的数据给nas客户端。
72.这里的存储区域可以是指缓冲区(buffer),在后面的描述中,将以缓冲区为例进行说明。
73.3,数据偏移:是nas装置的一个输入参数,用于指示缓冲区内,nas装置可以在缓冲区内该参数所指示的偏移量处开始填写目标目录对象的目录条目。例如,如图4a所示,该数据偏移可以是查询请求的起始位置至条目列表的起始位置之间的偏移量。nas装置将该数据查询请求放置在自身的缓冲区后,基于该参数所指示的缓冲区位置开始填写读取到的目录条目。
74.4,cookie:既是nas装置的输入参数也是nas装置的输出参数。cookie对于nas客户端而言是不透明的数据,不需要nas客户端对其进行解析,nas客户端也不关心其中的内容,它用于,在nas装置无法通过一次返回目标目录对象的完整目录条目时,对已返回的目录条目的位置做一个标记,通常cookie包含已返回的目录条目的下一个目录条目的起始地址(如该起始地址的偏移量信息),nas客户端接收到cookie后会原封不动再返回给nas装置,由nas装置来解析,用于指示nas装置下一次从哪里开始读取。
75.nas客户端可以使用cookie迭代的调用查询请求,以获取完整目录条目。举例来说,目录条目包括1000个条目,nas装置每次返回100个条目,nas装置首先将该目录条目中的第1~100个条目发送给nas客户端,并携带一个cookie,该cookie用于指示第101个条目的起始地址。之后,nas客户端再次调用查询请求(携带nas装置返回的该cookie)至nas装
置,nas装置基于该cookie去读取第101个条目,并向nas客户端返回第101~200个条目以及一个新的cookie(该新的cookie用于指示第201个条目的起始地址)给nas客户端,依此类推。应理解,nas客户端发送的首个查询请求是不包括cookie的或者说cookie为空。
76.5,结尾标志:是nas装置的输出参数,用于指示目标目录对象的目录条目是否完全返回。当nas装置完成目录条目的读取,将目标目录对象的目录条目全部发送给nas客户端时,会设置此字段,该结尾标志的字段可以包括1个比特,该比特的不同值表示是否返回的目录条目是否到达目录条目的结尾,例如,该值为0时,表示未到达,该值为1时,表示已到达目录条目的结尾。
77.可以理解,通常nas装置会在返回目标目录条目的最后一个条目的查询响应中设置该字段。nas客户端接收到该查询响应后,不会再向nas装置发起同一目录对象的读取调用。
78.6,有效数据长度:是nas装置的输出参数,指具有有效数据的长度,在查询目录条目时,该有效数据是指nas装置返回的目录条目。
79.7,条目数:是nas装置的输出参数,用于指示有效数据所包含的目录条目的数量,即条目数。
80.需要说明的是,上述列举的各参数仅为举例,本技术实施例并不限定于这些参数,这些参数是可选的,例如查询请求中可以不携带版本、存储区域大小等,或者,这些参数可以通过其他方式配置,并非查询请求中必须携带的。
81.二、过滤器;
82.1,正则表达式过滤器:包括正则表达式模式的过滤条件,是nas装置的输入参数,用于nas装置基于设置的正则表达式模式的过滤条件对目标目录对象的条目进行过滤,正则表达式模式的过滤条件包括但不限于名称的正则表达式。
83.2,属性过滤器:包括属性过滤条件,是nas装置的输入参数,用于nas装置基于设置的属性过滤条件对目标目录对象的条目进行过滤。文件的属性包括但不限于:文件大小、创建时间、最近修改时间、文件类型、用户组、访问权限、可读/可写等。
84.示例性地,如图4a所示出的属性过滤列表,该列表中的每一行为一个属性过滤条件,每个属性过滤条件包括属性类型、属性值和操作码,例如,属性过滤条件为文件大小(属性类型)大于(操作码)10kb(属性值)。又例如,属性过滤条件为创建时间(属性类型)早于(操作码,即小于)1991.01.01(属性值),等等。示例性地,属性过滤列表的最后一行可以为空null,用于标记属性过滤列表的终止点。
85.由于无法穷举,上文列出了部分支持正则表达式模式的查询条件和部分文件属性,本技术实施例对此均不做限定,任何可以使用正则表达式以及文件属性的查询条件均适用于本技术实施例。
86.应注意,虽然该帧结构示出了正则表达式过滤器和属性过滤器,但在实际应用中,查询请求可以同时包括两者,也可以仅包含正则表达式过滤器或仅包含属性过滤器。
87.三、操作列表:是nas装置的可选的输入参数,操作列表可以包括用于指示指定操作的命令,可选的还可以包括操作相应的参数以及参数长度等。可执行的操作包括但不限于:删除、拷贝、查看属性、统计等等。其中,参数用于指示指定操作的执行方式,例如,指定操作为删除,删除方式包括强制删除、演示删除等。
88.可选的,该查询请求还可以包括操作条目数,操作条目数用于指示操作列表中包括的操作的个数,以便nas装置在解析操作列表时确定操作列表的结尾位置。
89.四、条目列表:nas装置输出的有效数据部分,基于该查询请求是否包含用户指定的操作,条目列表中的数据可能是不同的,例如,如果查询请求中不包含指定的操作,则nas装置会将目标目录对象中与过滤器匹配的条目存放到条目列表中,也即该条目列表包括过滤后得到的条目名称。或者,如果查询请求中包含用户指定的操作,则nas装置会对过滤后的条目执行该指示的操作,并返回操作状态,如操作成功或不成功。
90.值得注意的是,指定操作可能是一个或多个,例如,对文件进行重命名及修改访问权限等等。对应的,nas装置需要对过滤后的每个条目所对应的文件执行该一个或多个操作。如果指定的操作有多个,则执行顺序可以按操作列表中命令的排列顺序执行。
91.上述帧格式,由于输入参数和输出参数在同一消息中,也就是,查询请求和查询响应是相同的格式,其中,输入参数可以是nas客户端填写的或转发的,输出参数可以是nas装置填写的,nas客户端生成查询请求时会为输出参数预留字段。nas装置填写输出参数后,连同输入参数一起返回给nas客户端,方便nas客户端重复调用查询请求。
92.本技术中,查询请求和查询响应也可以是两种不同的帧格式,请参见图4b。图4b为本技术实施例提供的另一种查询请求和查询响应的帧结构示意图。图4b与图4a的区别在于,在图4a中,nas客户端发送的查询请求和nas装置发送的查询响应是同一格式,即图4a所示出的帧结构。在图4b中,由图4b的(a)所示,nas客户端发送的查询请求仅包括属于nas装置的输入参数(包含既属于输入参数又属于输出参数)的各项。参见图4b的(b)所示,nas装置发送的查询响应仅包括属于nas装置的输出参数的各项。至于图4b中所示出的各项参数的含义和功能,请参见对图4a中的各项参数的介绍,此处不再赘述。
93.然而,上述两种帧结构均是举例,本技术实施例对查询请求和查询响应的格式不做限定。
94.nas客户端生成查询请求之后,将查询请求和目标目录对象的文件句柄一起发送给nas装置。
95.步骤304,nas装置响应于该查询请求对目标目录的条目进行过滤,得到目标条目。
96.nas装置接收到查询请求和目标目录对象的文件句柄后,根据该文件句柄定位到目标目录,实际上是定位到目标目录的列表,该列表包括目标目录下的每个条目的名称。nas装置得到该列表后,开始逐一遍历目标目录中的条目。
97.在遍历的过程中,nas装置对每一个条目应用过滤器,以得到匹配于过滤器的条目(如下将匹配于过滤器的条目称为目标条目)。这里的过滤器可以包括正则表达式过滤器和/或属性过滤器,具体包括哪些类型的过滤器根据查询请求确定,即由客户端指定。
98.在一种场景中,查询请求包括用于过滤文件名称的正则表达式过滤器和属性过滤器。该场景中的一种过滤方式为:在遍历目标目录过程中,nas装置可以首先使用正则表达式过滤器对每个目录条目进行过滤,得到文件名称匹配于正则表达式过滤器的一个或多个条目(为与下文的匹配于属性过滤器的条目区分,这里将匹配于正则表达式过滤器的条目称均称为第一条目)。之后,nas装置获取每个第一条目的属性,并使用属性过滤器逐一对每个第一条目进行过滤,得到文件属性匹配于属性过滤器的一个或多个条目,即目标条目。
99.通常,条目的文件属性这些信息会被写入磁盘中进行持久化存储,当nas装置需要
使用条目的文件属性时,再将其从磁盘迁移到内存中。示例性地,迁移过程可以包括:nas装置内,处理器向磁盘发送一个用于读取文件属性的读i/o,磁盘执行该读i/o以获取条目的文件属性,并将该条目的文件属性迁移到内存中。由于是磁盘执行,这里读i/o也可以称为磁盘i/o。
100.举例来说,查询请求中包括正则表达式过滤器(过滤条件为名称为ab*),以及属性过滤器(过滤条件1为文件大小大于10kb;过滤条件2为最近修改时间在指定时间,如2021.06.26.11:59之后)。nas装置基于该查询请求的过滤过程可以包括:遍历目标目录对象中的条目,使用正则表达式过滤器对目标目录中的每一个条目执行过滤,得到名称为以ab开头的条目,之后加载这些名称以ab开头的条目的文件属性,使用属性过滤器对名称以ab开头的条目进行过滤,进一步得到文件大小大于10kb,且最近修改时间在2021.06.26.11:59之后的条目。
101.上述过滤方式,nas装置只需要为匹配于正则表达式的条目加载文件属性,可以显著减少用于读取文件属性的磁盘i/o,减少量取决于与正则表达式过滤器相匹配的条目所占的百分比。
102.在另一种场景中,查询请求仅包括属性过滤器,那么nas装置便需要加载目标目录的所有条目的文件属性,然后nas装置使用属性过滤器逐一对目标目录的每一条目进行过滤,得到匹配于属性过滤器的条目,也即是目标条目。
103.这种过滤方式,由于不需要执行正则表达式的匹配,因此会减少cpu开销,但这需要从磁盘加载所有目录条目的文件属性,相对于前述的过滤方式会产生较多的磁盘i/o。
104.为此,本技术实施例提供了几种文件属性的管理策略:一种管理策略为,nas装置基于预取算法确定待预取的文件属性,并提前从磁盘中将这些文件属性迁移到内存中。例如,nas装置正在获取目录1的条目的文件属性,那么接下来很可能获取目录1的下一级目录的条目的文件属性。本技术实施例不限定预取算法。另一种管理策略为,nas装置基于神经网络模型确定待预取的文件属性,该神经网络模型可以基于文件属性在一段连续时间维度上的读取记录来预测未来一段时间内可能要读取的文件属性。这两种预取方式均可以在需要加载大量条目的文件属性时缩短加载时间,降低响应延迟。第三种管理策略为,nas装置基于各文件属性的热度值,将热度值高的文件属性缓存在内存中,类似的,也可以基于条目的热度值,将热度值高的条目的文件属性缓存在内存中,以提高内存命中率,降低延迟。其中,文件属性的热度值可以是该文件属性的访问次数,还可以根据文件属性的被访问时间和访问次数确定其热度值,任何确定热度值的方式均适用于本技术实施例。
105.为了进一步提高查询效率,本技术实施例还提供了一种文件管理策略。例如,nas装置针对文件系统维护一些基于文件名称或文件属性的数据结构,这些数据结构可以使遍历目录条目或过滤目录条目时提前终止,以此提高查询效率。
106.举例来说,首先列举一种数据结构,如lru列表,该lru列表包括条目名称和条目的时间参数(如最近修改时间或创建时间等),基于各条目的时间参数,在lru列表中,各条目按照时间顺序降序或升序排列,例如,参见以下的列表1所示。
107.表1
108.最近修改时间条目名称2019.02.01 08:03a
2019.02.01 08:19b2019.02.01 08:29c2019.02.01 09:15de2019.02.01 09:20df
…………
109.以上表1可以是同一个目录的条目,表1中的各条目按照参数—最近修改时间降序排列。上述表1示出的条目名称仅为示意以保持简洁,不作为本技术对实际应用的限定。
110.nas装置在基于时间参数过滤条目时,可以应用此表以提高效率。例如,客户端指定的属性过滤条件为“最近修改时间”在指定时间戳如2019.02.01 08:10之后,则nas装置在遍历目录条目的过程中,当遍历到首个“最近修改时间”在指定时间戳2019.02.01 08:10之后的条目,既可停止遍历。如表1中,当nas装置遍历至条目b之后便可以停止遍历,条目b及条目b之后的条目均匹配于该属性过滤条件。
111.上述方式,在客户端是无法实现的,在本技术提供的查询方法的基础上才可以在nas装置侧实现并应用,它可以帮助nas装置在读取整个目录条目之前就停止遍历,以此提高查询效率,同时由于提前停止遍历,后续的条目不需要再执行文件属性的匹配,这样也就减少了nas装置的cpu开销和磁盘i/o。
112.由上可知,如果查询请求包含正则表达式过滤器和属性过滤器,则目标条目为目标目录中既匹配于正则表达式过滤器,也匹配于属性过滤器的条目。同理,如果查询请求仅包含正则表达式过滤器,则目标条目为匹配于正则表达式过滤器的条目。如果查询请求仅包含属性过滤器,则目标条目为匹配于属性过滤器的条目。
113.步骤305a,nas装置将查询响应发送给客户端,该查询响应包括目标条目。对应的,客户端接收nas装置发送的查询响应。
114.如上介绍了得到目标条目的过程,进一步地,如果客户端未指定任何操作,即查询请求中未携带操作,则nas装置可以直接将目标条目封装成查询响应发送给客户端(参见图5中的示例一)。
115.步骤305b,nas装置对目标条目执行一个或多个指定操作。
116.步骤306b,nas装置将查询响应发送给客户端,该查询响应包括该一个或多个指定操作的操作结果。对应的,客户端接收nas装置发送的查询响应。
117.如果查询请求中携带了指定的操作,则nas装置还要对目标条目执行指定的操作,并将操作状态封装为查询响应发送给客户端(参见图5中的示例二)。
118.如前所述,操作状态用于指示对目标条目执行指定操作是否成功。由于指定操作可以有多个,则操作状态也可以有一个或多个,操作状态与指定操作一一对应。或者,指定操作都成功或都失败的话,操作状态也可以返回一个,用于指示指定操作都执行成功了或都执行失败了,等等。如果指定操作执行失败,则客户端可能还会发起新的查询请求,这里不再赘述。
119.至此,完成了nas客户端发起的一次文件查询。
120.上述方式,在示例一中,nas装置可以对目标目录的条目进行过滤,由于过滤后得的目标条目的数量小于完整目录条目的数量,因此会显著减少数据传输量,从而提升网络带宽的利用率。同时还可以减少nas装置、客户端的cpu开销,以及磁盘i/o,降低时延,提高
nas装置和客户端的cpu和内存利用率。在示例二中,由于nas装置不需要将任何条目返回给客户端,因此,可以在示例一的基础上进一步减少数据传输量。
121.本领域技术人员通过实验,可以得到,在一个小规模的系统集群中,应用模拟代码来运行本技术实施例提供的查询方法,可以实现相比于背景技术中介绍的查询方式提升近1000倍的性能。随着集群越大时,性能提升也就越高。
122.上述以unix和类似unix的操作系统中的find应用程序为例,对本技术实施例提供的查询方法进行了介绍,通过上述设计可以显著提高了unix和类似unix的操作系统中目录查询的性能。当然,本技术实施例也可以应用到其他操作系统中,例如windows系统、linux系统、android系统、ios系统、鸿蒙系统(harmonyos)、以及未来可能的操作系统等等,任何可以提供目录或文件查询功能的应用程序及其运行的操作系统均适用于本技术实施例。
123.为实现上述技术方案,本技术可以使用文件系统提供的ioctl接口。ioctl接口是许多文件系统提供的用于实现一些自定义行为的接口。
124.以find应用程序为例,find应用程序触发open()系统调用,来读取用户指定的路径名称的目录条目,nas装置响应该open()系统调用向nas客户端返回文件句柄。fs客户端为该返回的文件句柄生成一个文件描述符,并保持该文件句柄和每个进程的文件描述符之间的对应关系,之后将该文件句柄对应的文件描述符返回至应用程序。之后,nas客户端发出ioctl()系统调用以进行目录查询,该ioctl系统调用携带用户指定的查询条件,还可以携带用户输入的指定操作。之后,通过vfs接口将该ioctl系统调用与之前fs客户端返回的文件描述符一起返回至fs客户端,fs客户端基于之前生成的文件句柄和文件描述符的对应关系检索到对应的文件句柄,并将文件句柄和ioctl消息一起发送至nas装置。
125.如图5所示,find应用程序可以在nas客户端10上运行一个或多个实例,find应用程序通过内核提供的vfs接口与nas客户端10本地的文件系统通信,该vfs接口提供一个可以与通用文件系统交互的接口。find应用程序触发ioctl系统调用,vfs响应该ioctl系统调用,并将其转换为fs客户端中的文件系统对应格式的ioctl命令,然后fs客户端与rpc客户端通信,rpc客户端与远程服务器节点上运行的rpc服务器通信,从而将该ioctl命令发送至nas装置20。nas装置20的远程服务器节点上的rpc服务器与fs服务器通信,fs服务器具有执行用户指定的ioctl命令的实现。这个ioctl命令即为上文中的查询请求。nas装置20基于ioctl命令执行的查询流程参见上文相关描述,此处不再赘述。
126.为了使本技术技术方案具有更好的兼容性和可移植性,本技术实施例可以将find应用程序触发的常规命令转换为特定ioctl命令(包括查询条件,还可以包括指定操作),例如将readdir和所有类似api的标准libc实现来覆盖readdir posix接口的现有行为。在一种实施方式中,nas客户端10可以侦测这些应用程序触发的指令,并基于该这些指令生成上述的ioctl命令。
127.由于大多数现有应用程序都使用某些posix接口,如readdir()来读取目录条目,因此需要拦截这些接口。为了从应用程序的参数中构建过滤器,还需要通过本技术实施例提供的一个新库(如图6中libhook)拦截__libc_start_main()函数,该函数是任何应用程序的通用入口点。在libc_start_main()中,可以将用户传递的命令行参数复制到全局缓冲区,或者从命令行输入中构建过滤器,并维护全局引用,以便可以从拦截库内部访问该全局引用。当应用程序稍后调用readdir()api时,拦截该readdir()api,将过滤器复制到其
缓冲区中,并触发ioctl系统调用以传递从用户获得的缓冲区readdir()。之后的流程可以参见上文图5的相关介绍,此处不再赘述。
128.上述方式中,如果nas客户端10的本地文件系统不具有实现特定ioctl命令的功能,那么fs客户端会返回一个错误代码,指示在文件系统中未实现特定的ioctl命令,那么将返回到基于api的libc库的常规实现方式中来实现目录查询。
129.上文以nas客户端与一个nas装置交互为例,示出了本技术实施例的查询方法,然而针对分布式nas集群,本技术实施例还提供了一种应用于nas客户端与多个nas装置的查询方法。
130.以图1a为例,该查询方法中,每个目录对应一个主节点,不同目录对应的主节点可以不同,也可以相同,主节点用于记录目录的元数据以及分片信息等。主节点为nas集群中的nas装置20。
131.其中,分片信息包括目录的分片和分片所在nas装置20的映射关系。例如,该映射关系包括目标的标识如文件句柄、分片标识、分片所在的nas装置20的标识。其中,每个分片的大小可以是相同的,分别包括该目录下的部分条目,如分片可以包括图1b中目录的一个或数据块,还可以是其他粒度,本技术对此不做限定。另外,分片里还可以包括一些校验信息等。
132.示例性地,一个目录所包括的全部分片可以存储至多个nas装置,每个nas装置存储的该目录的分片数量可以相同也可以不同,本技术对此不作限定。
133.在这种情况下,该查询流程可以包括:nas客户端将路径名称发送至该路径名称所指示的目标路径的主节点。其中,nas客户端和nas装置可以基于相同的一致性hash算法确定目录的主节点。该方式只是一种举例,本技术实施例并不限定于确定主节点的方法,例如还可以是指定的,或者是通过向与nas集群内的nas装置询问来确定的。
134.在一种实施方式中,主节点查询该路径名称所指示的目标目录的文件句柄,并将该目标目录的文件句柄发送给nas客户端。主节点还可以确定目标目录的分片所在的多个nas装置(如称为分片节点),并将这些分片节点的信息一起发送给nas客户端。之后,nas客户端将查询请求和文件句柄发给多个分片节点,每个分片节点并行执行后续的查询流程,参见步骤304至步骤307。
135.在另一种实施方式中,主节点可以仅将文件句柄发送给nas客户端,nas客户端再将查询请求和文件句柄发送给主节点,由主节点将查询请求分发到不同的分片节点。
136.上述方式,可以在图3所示的查询方法的基础上,进一步提高查询效率。
137.本技术实施例还提供另一种数据查询方法。以图1a为例,在该方法中,nas集群包括管理节点,管理节点用于创建以及管理该nas集群的所有目录的分片信息,也即在上述方法中,所有目录对应的主节点均是同一个,这个节点可以称为管理节点。该管理节点可以是nas集群中的任一nas装置20。
138.在这种情况下,管理节点执行上述主节点执行的操作,具体参见上文的相关描述,此处不再赘述。
139.基于与方法实施例相同的构思,本技术实施例还提供了一种存储装置,该存储装置用于执行上述方法实施例中nas装置所执行的方法。如图7所示,该存储装置700包括接收模块701、处理模块702和发送模块703。具体地,在存储装置700中,各模块之间通过通信通
memory),例如随机存取存储器(random access memory,ram)、动态随机存取存储器(dynamic random access memory,dram)等,也可以包括非易失性存储器(non-volatile memory),例如存储级内存(storage class memory,scm)等,或者易失性存储器与非易失性存储器的组合等。
159.硬盘,硬盘用于提供存储资源,如用于存储数据。与内存不同的是,硬盘读写数据的速度比内存慢,通常用于持久性地存储数据。硬盘可以是磁盘或者其他类型的存储介质,例如固态硬盘(solid-state drive/solid-state disk,ssd)、机械硬盘(hard disk drive,hdd)、叠瓦式磁记录硬盘或者闪存(flash)存储器等。
160.存储器802可以集成在处理器801中,也可以是与处理器801不同的物理实体。
161.作为一种实现方式,通信接口804的功能可以考虑通过收发电路或收发的专用芯片实现。处理器801可以考虑通过专用处理芯片、处理电路、处理器或通用芯片实现。
162.作为另一种实现方式,可以考虑使用计算机的方式,来实现本技术图3所示的实施例中的nas装置的功能。即将实现处理器801和通信接口804功能的程序代码存储在存储器802中,通用处理器可通过执行存储器中的代码来实现处理器801和通信接口804的功能。
163.该装置800所涉及的与本技术提供的技术方案相关的概念、解释和详细说明以及其他步骤,可参见前述方法或其它实施例中关于这些内容的描述,此处不作赘述。
164.在本技术的一示例中,所述装置800可用于执行上述图3所示流程中,nas装置的步骤。比如,通过通信接口804接收客户端发送的查询请求,该查询请求用于请求查询目标路径下满足查询条件的目标条目;处理器801响应所述查询请求,从内存获取所述目标路径所对应的目录条目,并确定目标条目,所述目标条目为所述目录条目下任一满足所述查询条件的条目;之后,通过通信接口804将查询响应发送给所述客户端;查询响应包括目标条目。
165.在比例如,通过通信接口804接收客户端发送的查询请求,该查询请求用于请求查询目标路径下满足查询条件的目标条目,以及对所述目标条目执行指定操作;处理器801响应所述查询请求,从内存获取所述目标路径所对应的目录条目,从目录条目中确定目标条目,并对所述目标条目执行所述指定操作;所述目标条目为所述目录条目下任一满足所述查询条件的条目;之后,通过通信接口804将查询响应发送给所述客户端;查询响应用于指示操作结果,操作结果包括指定操作执行成功或指定操作执行失败。
166.关于处理器801和通信接口804的介绍,可参见上述图3所示流程的介绍,在此不再赘述。
167.在本技术的一示例中,所述装置800可用于执行上述图3所示流程中,nas客户端的步骤。比如,处理器生成查询请求,通过通信接口804将查询请求发送给nas装置。在一种实现方式中,处理器801侦测用户输入的查询信息,查询信息包括用于指示所述目标路径的信息和用于指示所述查询条件的信息;基于查询信息生成所述查询请求。
168.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
169.本技术实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在存储装置上运行时,使得存储装置执行上述相关方法步骤以实现上述实施例中的nas装置所执行的方法,参见图3中步骤303~步骤308b的描述,此处不再赘述,或执行上述相关方法步骤以实现上述实施例中的nas客户端所执行的方法,参见图3中
步骤301~步骤303、步骤307a、步骤308b的描述此处不再赘述。
170.本技术实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的nas装置所执行的方法,参见图3中步骤303~步骤308b的描述,此处不再赘述,或执行上述相关方法步骤以实现上述实施例中的nas客户端所执行的方法,参见图3中步骤301~步骤303、步骤307a、步骤308b的描述此处不再赘述。
171.另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的nas装置所执行的方法,参见图3中步骤303~步骤308b的描述,此处不再赘述,或执行上述相关方法步骤以实现上述实施例中的nas客户端所执行的方法,参见图3中步骤301~步骤303、步骤307a、步骤308b的描述此处不再赘述。
172.其中,本技术实施例提供的存储设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的nas客户端或nas装置对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
173.通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
174.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
175.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
176.另外,在本技术各个实施例中的各功能单元(或模块)可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
177.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
178.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
179.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
180.本技术实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
181.本技术实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中。
182.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
183.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1