CN107818111B - 一种缓存文件数据的方法、服务器及终端 - Google Patents

一种缓存文件数据的方法、服务器及终端 Download PDF

Info

Publication number
CN107818111B
CN107818111B CN201610822617.0A CN201610822617A CN107818111B CN 107818111 B CN107818111 B CN 107818111B CN 201610822617 A CN201610822617 A CN 201610822617A CN 107818111 B CN107818111 B CN 107818111B
Authority
CN
China
Prior art keywords
file data
access request
server
file
cache
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
Application number
CN201610822617.0A
Other languages
English (en)
Other versions
CN107818111A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610822617.0A priority Critical patent/CN107818111B/zh
Publication of CN107818111A publication Critical patent/CN107818111A/zh
Application granted granted Critical
Publication of CN107818111B publication Critical patent/CN107818111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Abstract

本发明公开了一种缓存文件数据的方法、服务器及终端,包括:接收到终端发送的文件数据访问请求时,从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,向所述终端发送所述缓存设备中的文件数据;当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,向所述终端发送所述存储设备中的文件数据,并将所述文件数据存入所述缓存设备中。

Description

一种缓存文件数据的方法、服务器及终端
技术领域
本发明涉及云领域中的数据缓存技术,尤其涉及一种缓存文件数据的方法、服务器及终端。
背景技术
服务器存储了海量的数据,当用户想要获取数据时,可以通过终端向服务器请求数据,这时,服务器从数据库中查找到数据后便会将数据返回给终端,然而,当终端再次请求同样的数据时,需要重新向服务器请求数据,浪费了网络流量且请求数据的速度较慢。为此,服务器会对终端最近一段时间内请求的数据进行缓存,当终端再次请求同样的数据时,则服务器直接从缓存中获取数据返回给终端。目前,对数据进行缓存的设备具有如下缺点:1)不支持持久化,即缓存的数据会随着操作系统的重启而丢失。2)不支持文件数据的存储,即缓存设备因自身的存储约束只支持键-值(key-value)数据类型的存储。
发明内容
为解决上述技术问题,本发明实施例提供了一种缓存文件数据的方法、服务器及终端。
本发明实施例提供的缓存文件数据的方法,包括:
接收到终端发送的文件数据访问请求时,从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;
当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,向所述终端发送所述缓存设备中的文件数据;
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,向所述终端发送所述存储设备中的文件数据,并将所述文件数据存入所述缓存设备中。
本发明实施例中,所述方法还包括:
从存储设备中查找与所述文件数据访问请求相应的文件数据时,还查找与所述文件数据访问请求相关的关联文件数据;
将与所述文件数据访问请求相应的文件数据存入所述缓存设备中时,还将与所述文件数据访问请求相关的关联文件数据存入所述缓存设备中。
本发明实施例中,所述当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,包括:
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述文件数据访问请求中获取文件路径信息,并将所述文件路径信息转化为物理位置信息;
根据所述物理位置信息,从存储设备中查找与所述文件数据访问请求相应的文件数据。
本发明另一实施例提供的缓存文件数据的方法,包括:
向服务器发送文件数据访问请求;
当所述服务器从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的所述缓存设备中的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的从存储设备中查找到的文件数据。
本发明实施例中,所述向服务器发送文件数据访问请求,包括:
通过应用获得访问操作时,生成文件数据访问请求,将所述文件数据访问请求通过虚拟文件系统(VFS,Virtual File System)传递给内核文件系统(KFS,Kernel FileSystem);
通过所述KFS将所述文件数据访问请求传递给守护进程,通过所述守护进程将所述文件数据访问请求发送给服务器。
本发明实施例中,接收所述服务器发送的文件数据,包括:
通过守护进程接收所述服务器发送的文件数据,将所述文件数据通过内核管道传递给KFS;
通过所述KFS将所述文件数据传递给VFS,所述VFS将所述文件数据传递给应用。
本发明实施例提供的服务器,包括:
接收单元,用于接收终端发送的文件数据访问请求;
第一查找单元,用于从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;
发送单元,用于当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,向所述终端发送所述缓存设备中的文件数据;
第二查找单元,用于当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据;
所述发送单元,还用于向所述终端发送所述存储设备中的文件数据;
存储单元,用于将所述文件数据存入所述缓存设备中。
本发明实施例中,所述第二查找单元,还用于从存储设备中查找与所述文件数据访问请求相应的文件数据时,还查找与所述文件数据访问请求相关的关联文件数据;
所述存储单元,还用于将与所述文件数据访问请求相应的文件数据存入所述缓存设备中时,还将与所述文件数据访问请求相关的关联文件数据存入所述缓存设备中。
本发明实施例中,所述第二查找单元,还用于当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述文件数据访问请求中获取文件路径信息,并将所述文件路径信息转化为物理位置信息;根据所述物理位置信息,从存储设备中查找与所述文件数据访问请求相应的文件数据。
本发明实施例提供的终端,包括:
发送单元,用于向服务器发送文件数据访问请求;
接收单元,用于当所述服务器从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的所述缓存设备中的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的从存储设备中查找到的文件数据。
本发明实施例中,所述终端还包括:应用单元、VFS单元、KFS单元;其中,
所述应用单元,用于获得访问操作时,生成文件数据访问请求;将所述文件数据访问请求通过VFS单元传递给KFS单元;
所述KFS单元,用于将所述文件数据访问请求传递给守护进程,通过所述守护进程将所述文件数据访问请求发送给服务器。
本发明实施例中,所述终端还包括:应用单元、VFS单元、KFS单元;其中,
所述KFS单元,用于通过内核管道接收守护进程传递的由服务器发送的文件数据;将所述文件数据传递给VFS单元;
所述VFS单元,用于将所述文件数据传递给应用单元。
本发明实施例的技术方案中,接收到终端发送的文件数据访问请求时,从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,向所述终端发送所述缓存设备中的文件数据;当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,向所述终端发送所述存储设备中的文件数据,并将所述文件数据存入所述缓存设备中。本发明实施例的缓存设备支持持久化,即缓存的数据不会随着操作系统的重启而丢失。此外,本发明实施例的缓存设备支持文件数据的存储。
附图说明
图1为本发明实施例中进行信息交互的各方硬件实体的示意图;
图2为本发明实施例的服务器的系统架构图;
图3为本发明实施例的缓存文件数据的方法的流程示意图一;
图4为本发明实施例的缓存文件数据的方法的流程示意图二;
图5为本发明实施例的CFS架构示意图;
图6为本发明实施例的服务器的结构组成示意图;
图7为本发明实施例的终端的结构组成示意图。
具体实施方式
以下为与本发明实施例相关的关键术语的解释说明:
Memcached:一个高性能的分布式内存对象缓存系统,应用于动态网页(Web)应用,以减轻数据库负载。通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态数据库驱动网站的速度。
Redis:一个开源的使用ANSI C语言编写的、支持网络的、可基于内存亦可持久化的日志型的Key-Value数据库,并提供多种语言的应用程序编程接口(API,ApplicationProgramming Interface)。
DCache:全称为分布式Memcache(Distributed Memcache),一个分布式数据存储服务,提供多种海量数据高性能存储访问解决方案,基于TAF框架开发的内存型数据存储系统。
TAF:全称为全应用框架(Total Application Framework),一个集成可扩展编解码协议的、面向对象远程调用的、同步/异步网络框架的、业务应用开发框架的、运维统一管理为一体的高性能、强容错、高可扩展和强运营的逻辑层分布式平台框架。TAF的最大优势在于对运营的帮助,TAF会展现整个系统的实时运行全貌,并对服务进行准实时监控和管理(具体到服务的进程级别),大大提高了运营效率,这使得开发更懂得运营,运营变得更加简单。
为了快速响应终端的请求,服务器会对终端最近一段时间内请求的数据进行缓存,当终端再次请求同样的数据时,则服务器直接从缓存中获取数据返回给终端。服务器侧对应的缓存有以下几种方案:
1)Memcached通过在内存中缓存数据和对象来减少读取数据库的次数。Memcached基于一个存储Key-Value的哈希图(hashmap)。其守护进程(daemon)是用C编写的,但是终端上的应用(APP)可以用任何语言来编写,并通过Memcached协议与守护进程通信。
为了提高性能,Memcached中保存的数据都存储在Memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启Memcached或者重启操作系统都会导致缓存的全部数据丢失。此外,Memcached尽管是分布式缓存服务器,但服务器端并没有分布式功能。各个Memcached不会互相通信以共享信息。
2)Redis支持主从同步。数据可以从主服务器向任意数量的从服务器同步。由于完全实现了发布/订阅机制,使得从服务器在任何地方同步时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。目前通过两种方式实现持久化:1、使用快照,不时的将数据集以异步方式从内存写入硬盘。2、版本开始使用更安全的AOF格式替代,一种只能追加的日志类型。将数据集修改操作记录起来,Redis能够在后台对只可追加的记录作修改来避免无限增长的日志。
Redis虽然支持持久化的存储也支持主从部署和同步,但是Redis集群在业界的方案还不是太成熟,技术支持效果较差。
3)DCache接入简单,后端故障切换及变更时可以做到业务无感知。既能当数据库(DB,Database)使用,又能当临时缓存(cache)使用,成本与性能能够灵活控制。此外,DCache还能够实现一键式无损快速扩容、无容量及性能限制、全面的云运维服务支持等。
但是DCache的API对Key-Value的数据类型支持较好,对于文件类型的缓存来说,API操作非常不方便,Memcached和Redis也同样具有这个问题。
基于此,本发明实施例提供了一种缓存文件数据的方法,服务器侧的缓存设备支持非易失性,也即能够持久化存储数据;缓存设备支持标准的可移植操作系统接口(POSIX,Portable Operating System Interface)接口,从而支持文件类型数据的存取操作。
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
图1为本发明实施例中进行信息交互的各方硬件实体的示意图,图1中包括:终端11、服务器12。其中,终端11通过有线网络或者无线网络与服务器12进行信息交互。终端11所指的设备包括手机、台式机、PC机、一体机等类型。服务器12则可以为提供各种类型服务的服务器,例如Web服务器,云文件系统服务器等等。终端11可以访问服务器12来获取服务器侧的数据。
上述图1的例子只是实现本发明实施例的一个系统架构实例,本发明实施例并不限于上述图1所述的系统结构,基于该系统架构,提出本发明各个实施例。
对于企业级用户而言,服务器侧的缓存有助于优化业务的性能和节省宽带。如果服务器侧选择了正确的缓存方案,则缓存可以随着企业网络的增长而扩大,而无需进行昂贵且耗时的集群重建。
理论上,超高带宽的因特网(Internet)连接会使缓存毫无用处,但是结果并非如此。即使最高速率达到30-45Mbps的光纤Internet连接,和速率在100Mbps-1Gbps的局域网相比仍然很慢,所以缓存性能依旧备受关注。除此之外,缓存提高了可用性,因为即使托管的服务器停机或者由于网络问题而不可达时,缓存中的数据仍然可以被终端访问。如果企业根据流量付费,缓存还可以降低Internet连通性的费用,好的缓存方案将随着企业级别而升级。
本发明实施例中的服务器支持文件数据的缓存,以文件数据为音频文件为例,本发明实施例采用了一种支持分布式部署的云文件系统来缓存音频文件,服务器支持标准的POSIX操作,这样,用户在终端上对服务器侧的音频文件的操作就像在本地操作一样。
图2为本发明实施例的服务器的系统架构图,系统架构分为三个部分:接入层、逻辑层和和存储层。其中,接入层包括:接入(Access)集群。逻辑层包括:元数据管理中心、业务策略、页高速缓存存储器(page-cache)、旁路备份、数据迁移。存储层包括:存储节点集群。
最底层的存储节点集群:是实际的存储设备,可以是普通的硬盘、固态硬盘(SSD,Solid State Drives)或者是计算机内存。
元数据管理中心:管理维护整个文件系统的目录结构,完成由文件路径到物理存储位置的转换。
业务策略:负责控制客户端的访问权限管理。
page-cache:是文件数据的缓存设备,最近访问的文件数据会保存在page-cache的内存中,下一次访问相同文件时,直接从内存读取即可,从而减少对后端存储设备的访问,提高了访问性能。除了缓存功能,page-cache还引入了文件预读功能,更大幅度提升文件访问性能。
旁路备份:用在对数据可靠性要求较高的场景,主要是对文件数据进行额外的备份。他会定期的扫描存储设备,如果发现有新文件数据上传至存储设备,则从相应的存储节点中下载新文件数据,保存到另外一个备份系统中。这样即使所有存储节点不可服务或者损坏,文件数据依然安然无恙。
数据迁移:用于不同数据集群、不同用户、不同目录之间的大数据量拷贝操作,主要用来做数据迁移使用。
Access集群:是最外层的接入层,主要负责客户端的接入,读写流程控制及容灾的读取。
图3为本发明实施例的缓存文件数据的方法的流程示意图一,本示例中的缓存文件数据的方法应用于服务器侧,如图3所示,所述缓存文件数据的方法包括以下步骤:
步骤301:接收到终端发送的文件数据访问请求时,从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性。
本发明实施例中,用户在终端侧对处于服务器(也即云端)侧的文件数据进行访问时,需要在终端侧实施访问操作,例如打开文件夹操作、打开文件夹中的某个音频文件的操作,然后,终端根据接收到的访问操作,生成文件数据访问请求,将该文件数据访问请求发生给服务器。
本发明实施例中,服务器侧具有缓存设备和存储设备,其中,缓存设备的作用是用来缓存历史访问的文件数据,而存储设备的作用是用来存储全部上载至云端的文件数据。这里,缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性。可以通过磁盘等非易失性的存储器来实现缓存设备,缓存设备具有标准的POSIX接口,支持标准的POSIX操作,因而用户可以在终端侧像操作本地文件数据一样的体验来操作服务器侧的文件数据。
本发明实施例中,服务器接收到终端发送的文件数据访问请求时,首先从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,这是因为缓存设备的数据读取速率要高于存储设备的数据读取速率,如果在缓存设备中查找到所述文件数据访问请求相应的文件数据,则可以直接读取文件数据返回给终端,提高了访问效率。
步骤302:当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,向所述终端发送所述缓存设备中的文件数据。
步骤303:当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,向所述终端发送所述存储设备中的文件数据,并将所述文件数据存入所述缓存设备中。
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,向所述终端发送所述存储设备中的文件数据,并将所述文件数据存入所述缓存设备中。这样,用户可以在下次访问同样的文件数据时,直接从缓存设备中获取,提高访问速率,节省访问流量。
本发明实施例中,从存储设备中查找与所述文件数据访问请求相应的文件数据时,还查找与所述文件数据访问请求相关的关联文件数据;将与所述文件数据访问请求相应的文件数据存入所述缓存设备中时,还将与所述文件数据访问请求相关的关联文件数据存入所述缓存设备中。
这里,可以根据用户的历史访问请求,为用户提供文件预读功能,具体地,当用户发起一个文件数据的访问请求时,服务器侧不仅查找与该访问请求相应的文件数据,还查找与该访问请求相关的关联文件数据,关联文件数据可以与当前所查找的文件数据具有相同的关键词、或者相同的文件类型、或者相同的发布者等等,这样,可以预估出用户可能会访问的文件数据,然后,将该文件数据一并存入缓存设备中,当用户真正访问关联文件数据时,便可以直接从缓存设备中直接读取返回给用户。
本发明实施例中,当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述文件数据访问请求中获取文件路径信息,并将所述文件路径信息转化为物理位置信息;根据所述物理位置信息,从存储设备中查找与所述文件数据访问请求相应的文件数据。这里,文件路径信息是指文件的目录,例如/cfs/test.txt。物理位置信息直至文件在存储设备中的存储地址。
图4为本发明实施例的缓存文件数据的方法的流程示意图二,本示例中的缓存文件数据的方法应用于终端侧,如图4所示,所述缓存文件数据的方法包括以下步骤:
步骤401:向服务器发送文件数据访问请求。
本发明实施例中,用户在终端侧对处于服务器(也即云端)侧的文件数据进行访问时,需要在终端侧实施访问操作,例如打开文件夹操作、打开文件夹中的某个音频文件的操作,然后,终端根据接收到的访问操作,生成文件数据访问请求,将该文件数据访问请求发生给服务器。
本发明实施例中,终端侧安装有应用(APP)、VFS、KFS、云文件系统驱动(Cfsd),其中,应用为用户提供了UI界面,使得用户可以通过应用来操作云端的文件系统。VFS为虚拟文件系统;KFS为内核文件系统;Cfsd提供了CFS服务,它是应用的守护进程,Cfsd正确启动后,说明根目录下边的目录/cfs已经成功加载到系统(服务器侧)的目录/cfs下面了,接下来用户可以直接对/cfs目录进行操作。
基于此,向服务器发送文件数据访问请求的过程具体包括:通过应用获得访问操作时,生成文件数据访问请求,将所述文件数据访问请求通过VFS传递给KFS;通过所述KFS将所述文件数据访问请求传递给守护进程,通过所述守护进程将所述文件数据访问请求发送给服务器。
本发明实施例中,服务器接收到终端发送的文件数据访问请求时,首先从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,这是因为缓存设备的数据读取速率要高于存储设备的数据读取速率,如果在缓存设备中查找到所述文件数据访问请求相应的文件数据,则可以直接读取文件数据返回给终端,提高了访问效率。
步骤402:当所述服务器从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的所述缓存设备中的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性。
本发明实施例中,服务器侧具有缓存设备和存储设备,其中,缓存设备的作用是用来缓存历史访问的文件数据,而存储设备的作用是用来存储全部上载至云端的文件数据。这里,缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性。可以通过磁盘等非易失性的存储器来实现缓存设备,缓存设备具有标准的POSIX接口,支持标准的POSIX操作,因而用户可以在终端侧像操作本地文件数据一样的体验来操作服务器侧的文件数据。
步骤403:当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的从存储设备中查找到的文件数据。
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据,向所述终端发送所述存储设备中的文件数据,并将所述文件数据存入所述缓存设备中。这样,用户可以在下次访问同样的文件数据时,直接从缓存设备中获取,提高访问速率,节省访问流量。
接收所述服务器发送的从存储设备中查找到的文件数据的过程具体包括:
通过守护进程接收所述服务器发送的文件数据,将所述文件数据通过内核管道传递给KFS;
通过所述KFS将所述文件数据传递给VFS,所述VFS将所述文件数据传递给应用。
图5为本发明实施例的CFS架构示意图,如图5所示,APP、VFS、KFS和Cfsd为终端侧,access0、access1等设备为服务器侧的access集群,基于业务策略决定终端的访问权限;cache0、chache1等设备为服务器侧的缓存设备;中间数据服务(MDS,Middle Data Server)为服务器侧的元数据管理中心;存储节点0、存储节点1、存储节点2、存储节点3等设备为服务器侧的存储设备。
Cfsd内置安装了内核模块——KFS,Cfsd提供了CFS服务,他是APP守护进程。Cfsd在终端侧正确启动后,说明根目录下边的目录/cfs已经成功加载到系统的目录/cfs下面了,接下来直接对/cfs目录下进行操作即可。以终端的APP发起一个文件读为例阐述整个交互流程。
如果APP要读取/cfs/test.txt这个目录下的文件内容,首先调用打开(open)操作,VFS发现是/cfs的文件,它将访问请求交给内核模块KFS。KFS接收到访问请求后,生成一个打开文件的请求,通过内核管道的方式传递给守护进程,守护进程则将访问请求通过网络传递给服务器侧的接入层(如图5中的access0)。接入层收到访问请求后,查询MDS中是否有该文件,如果该文件确实存在,则接入层向守护进程返回open成功。守护进程收到接入层的回包之后,生成一个回包,通过内核管道传递给KFS,KFS再将回包转给VFS,VFS最终将结果值返回给APP,至此整个open过程完成。
然后,APP发起读(read)操作,与open操作类似,访问请求沿着APP->VFS->KFS->Cfsd->Access0路线到达接入层,然后,接入层将访问请求转发给缓存节点(如图5中的cache1)。缓存节点先查询内存是否存在所请求的文件数据,如果存在,则直接将文件数据返回给接入层,否则,缓存节点先访问MDS,得到文件数据的物理位置信息,然后缓存节点根据物理位置信息请求对应的存储节点(如图5中的存储节点1),得到所要的文件数据。为了让下一次访问更快,缓存节点会将新访问的文件数据保存在内存中,然后缓存节点将文件数据返回给接入层。最后,文件数据沿着Access0->Cfsd->KFS->VFS->APP的顺序返回给用户,至此整个read过程完成。
本发明实施例的技术方案中,服务器侧对于用户的文件数据,例如文本到语音(tts,Text To Speech)音频文件做了缓存,这样,可以实现不同地区不同终端对相同资源的访问,一方终端只需要访问一次文件数据并缓存就可以实现其他多方终端共同使用该缓存的文件数据。
图6为本发明实施例的服务器的结构组成示意图,如图6所示,所述服务器包括:
接收单元61,用于接收终端发送的文件数据访问请求;
第一查找单元62,用于从缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;
发送单元63,用于当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,向所述终端发送所述缓存设备中的文件数据;
第二查找单元64,用于当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从存储设备中查找与所述文件数据访问请求相应的文件数据;
所述发送单元63,还用于向所述终端发送所述存储设备中的文件数据;
存储单元65,用于将所述文件数据存入所述缓存设备中。
本发明实施例中,所述第二查找单元64,还用于从存储设备中查找与所述文件数据访问请求相应的文件数据时,还查找与所述文件数据访问请求相关的关联文件数据;
所述存储单元65还用于将与所述文件数据访问请求相应的文件数据存入所述缓存设备中时,还将与所述文件数据访问请求相关的关联文件数据存入所述缓存设备中。
本发明实施例中,所述第二查找单元64,还用于当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述文件数据访问请求中获取文件路径信息,并将所述文件路径信息转化为物理位置信息;根据所述物理位置信息,从存储设备中查找与所述文件数据访问请求相应的文件数据。
本领域技术人员应当理解,图6所示的服务器中的各单元的实现功能可参照前述缓存文件数据的方法的相关描述而理解。
图7为本发明实施例的终端的结构组成示意图,如图7所示,所述终端包括:
发送单元71,用于向服务器发送文件数据访问请求;
接收单元72,用于当所述服务器从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的所述缓存设备中的文件数据,其中,所述缓存设备支持文件类型数据的存取,且所述缓存设备支持非易失性;当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的从存储设备中查找到的文件数据。
本发明实施例中,所述终端还包括:应用单元73、VFS单元74、KFS单元75;其中,
所述应用单元73,用于获得访问操作时,生成文件数据访问请求;将所述文件数据访问请求通过VFS单元74传递给KFS单元75;
所述KFS单元75,用于将所述文件数据访问请求传递给守护进程,通过所述守护进程将所述文件数据访问请求发送给服务器。
本发明实施例中,所述KFS单元75,用于通过内核管道接收守护进程传递的由服务器发送的文件数据;将所述文件数据传递给VFS单元74;
所述VFS单元74,用于将所述文件数据传递给应用单元73。
本领域技术人员应当理解,图7所示的终端中的各单元的实现功能可参照前述缓存文件数据的方法的相关描述而理解。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种缓存文件数据的方法,其特征在于,所述方法包括:
接收到终端发送的文件数据访问请求时,从服务器的缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备用于缓存多个终端的历史访问的文件数据,具有可移植操作系统接口POSIX,同时支持文件类型数据的存取,且所述缓存设备支持非易失性;
其中,所述文件数据访问请求,根据用户在所述终端对处于所述服务器的文件数据所实施的POSIX操作所生成;
当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,直接从所述缓存设备中读取所述文件数据,并向所述终端发送所述缓存设备中的文件数据;
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述服务器的存储设备中查找与所述文件数据访问请求相应的文件数据、以及与所述文件数据访问请求相关的关联文件数据,所述关联文件数据具有与当前所查找的文件数据相同的关键词、或者相同的文件类型、或者相同的发布者中至少之一的信息;
其中,所述存储设备用于存储全部上载至所述服务器的文件数据,所述缓存设备的读取速率高于所述存储设备的数据读取速率;
向所述终端发送所述存储设备中的所述相应的文件数据,并将所述相应的文件数据以及所述关联文件数据存入所述缓存设备中,当接收到所述终端发送的针对所述关联文件数据的文件数据访问请求时,直接从所述缓存设备中读取所述关联文件数据并返回;当接收到其它终端发送的针对所述文件数据的文件数据访问请求时,直接从所述缓存设备中读取所述文件数据并返回。
2.根据权利要求1所述的缓存文件数据的方法,其特征在于,所述当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述服务器的存储设备中查找与所述文件数据访问请求相应的文件数据、以及与所述文件数据访问请求相关的关联文件数据,包括:
当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述文件数据访问请求中获取文件路径信息,并将所述文件路径信息转化为物理位置信息;
根据所述物理位置信息,从存储设备中查找与所述文件数据访问请求相应的文件数据。
3.一种缓存文件数据的方法,其特征在于,所述方法包括:
向服务器发送文件数据访问请求;其中,所述文件数据访问请求,根据用户在终端对处于所述服务器的文件数据所实施的POSIX操作所生成;
当所述服务器从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的所述缓存设备中的文件数据,其中,所述缓存设备用于缓存多个终端的历史访问的文件数据,具有可移植操作系统接口POSIX,同时支持文件类型数据的存取,且所述缓存设备支持非易失性;
当所述服务器从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的从存储设备中查找到的文件数据;
其中,所述存储设备用于存储全部上载至所述服务器的文件数据,所述缓存设备的读取速率高于所述存储设备的数据读取速率;
发送针对关联文件数据的文件数据访问请求,所述关联文件数据具有与所述文件数据相同的关键词、或者相同的文件类型、或者相同的发布者中至少之一的信息;
接收所述服务器直接从所述缓存设备中读取并返回的所述关联文件数据,所述缓存设备中的所述关联文件数据为,所述服务器在所述缓存设备中未查找到所述文件数据时所存入。
4.根据权利要求3所述的缓存文件数据的方法,其特征在于,所述向服务器发送文件数据访问请求,包括:
通过应用获得访问操作时,生成文件数据访问请求,将所述文件数据访问请求通过虚拟文件系统VFS传递给内核文件系统KFS;
通过所述KFS将所述文件数据访问请求传递给守护进程,通过所述守护进程将所述文件数据访问请求发送给服务器。
5.根据权利要求3所述的缓存文件数据的方法,其特征在于,接收所述服务器发送的文件数据,包括:
通过守护进程接收所述服务器发送的文件数据,将所述文件数据通过内核管道传递给KFS;
通过所述KFS将所述文件数据传递给VFS,所述VFS将所述文件数据传递给应用。
6.一种服务器,其特征在于,所述服务器包括:
接收单元,用于接收终端发送的文件数据访问请求;其中,所述文件数据访问请求,根据用户在所述终端对处于所述服务器的文件数据所实施的POSIX操作所生成;
第一查找单元,用于从服务器的缓存设备中查找是否存在与所述文件数据访问请求相应的文件数据,其中,所述缓存设备用于缓存多个终端的历史访问的文件数据,具有可移植操作系统接口POSIX,同时支持文件类型数据的存取,且所述缓存设备支持非易失性;
发送单元,用于当从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,直接从所述缓存设备中读取所述文件数据,并向所述终端发送所述缓存设备中的文件数据;
第二查找单元,用于当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述服务器的存储设备中查找与所述文件数据访问请求相应的文件数据以及与所述文件数据访问请求相关的关联文件数据,所述关联文件数据具有与当前所查找的文件数据相同的关键词、或者相同的文件类型、或者相同的发布者中至少之一的信息;其中,所述存储设备用于存储全部上载至所述服务器的文件数据,所述缓存设备的读取速率高于所述存储设备的数据读取速率;
所述发送单元,还用于向所述终端发送所述存储设备中的所述相应的文件数据;
存储单元,用于将所述相应的文件数据以及所述关联文件数据存入所述缓存设备中,当接收到所述终端发送的针对所述关联文件数据的文件数据访问请求时,直接从所述缓存设备中读取所述关联文件数据并返回;当接收到其它终端发送的针对所述文件数据的文件数据访问请求时,直接从所述缓存设备中读取所述文件数据并返回。
7.根据权利要求6所述的服务器,其特征在于,所述第二查找单元,还用于当从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,从所述文件数据访问请求中获取文件路径信息,并将所述文件路径信息转化为物理位置信息;根据所述物理位置信息,从存储设备中查找与所述文件数据访问请求相应的文件数据。
8.一种终端,其特征在于,所述终端包括:
发送单元,用于向服务器发送文件数据访问请求;其中,所述文件数据访问请求,根据用户在所述终端对处于所述服务器的文件数据所实施的POSIX操作所生成;
接收单元,用于当所述服务器从缓存设备中查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的所述缓存设备中的文件数据,其中,所述缓存设备用于缓存多个终端的历史访问的文件数据,具有可移植操作系统接口POSIX,同时支持文件类型数据的存取,且所述缓存设备支持非易失性;当所述服务器从缓存设备中未查找到与所述文件数据访问请求相应的文件数据时,接收所述服务器发送的从存储设备中查找到的文件数据;其中,所述存储设备用于存储全部上载至所述服务器的文件数据,所述缓存设备的读取速率高于所述存储设备的数据读取速率;
所述发送单元,还用于发送针对关联文件数据的文件数据访问请求,所述关联文件数据具有与所述文件数据相同的关键词、或者相同的文件类型、或者相同的发布者中至少之一的信息;
所述接收单元,还用于接收所述服务器直接从所述缓存设备中读取并返回的所述关联文件数据,所述缓存设备中的所述关联文件数据为,所述服务器在所述缓存设备中未查找到所述文件数据时所存入。
9.根据权利要求8所述的终端,其特征在于,所述终端还包括:应用单元、VFS单元、KFS单元;其中,
所述应用单元,用于获得访问操作时,生成文件数据访问请求;将所述文件数据访问请求通过VFS单元传递给KFS单元;
所述KFS单元,用于将所述文件数据访问请求传递给守护进程,通过所述守护进程将所述文件数据访问请求发送给服务器。
10.根据权利要求8所述的终端,其特征在于,所述终端还包括:应用单元、VFS单元、KFS单元;其中,
所述KFS单元,用于通过内核管道接收守护进程传递的由服务器发送的文件数据;将所述文件数据传递给VFS单元;
所述VFS单元,用于将所述文件数据传递给应用单元。
CN201610822617.0A 2016-09-13 2016-09-13 一种缓存文件数据的方法、服务器及终端 Active CN107818111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610822617.0A CN107818111B (zh) 2016-09-13 2016-09-13 一种缓存文件数据的方法、服务器及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610822617.0A CN107818111B (zh) 2016-09-13 2016-09-13 一种缓存文件数据的方法、服务器及终端

Publications (2)

Publication Number Publication Date
CN107818111A CN107818111A (zh) 2018-03-20
CN107818111B true CN107818111B (zh) 2021-10-15

Family

ID=61601249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610822617.0A Active CN107818111B (zh) 2016-09-13 2016-09-13 一种缓存文件数据的方法、服务器及终端

Country Status (1)

Country Link
CN (1) CN107818111B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150998A (zh) * 2018-08-01 2019-01-04 北京奇虎科技有限公司 基于云测试平台的日志文件处理系统及方法
CN109299144B (zh) * 2018-08-22 2021-04-16 北京奇艺世纪科技有限公司 一种数据处理方法、装置、系统及应用服务器
CN109240989B (zh) * 2018-09-07 2020-12-29 深圳市万普拉斯科技有限公司 文件对象查询方法、装置、终端设备及可读存储介质
CN111104388B (zh) * 2018-10-26 2023-09-15 伊姆西Ip控股有限责任公司 访问文件的方法、设备和计算机可读介质
CN110474877A (zh) * 2019-07-16 2019-11-19 盐城师范学院 一种基于大数据技术的数字内容交互方法
CN112241339A (zh) * 2020-10-23 2021-01-19 浪潮云信息技术股份公司 一种基于网络的Redis持久化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576854A (zh) * 2009-04-03 2009-11-11 成都市华为赛门铁克科技有限公司 文件访问的方法、装置及系统
US9143566B2 (en) * 2008-01-16 2015-09-22 Netapp, Inc. Non-disruptive storage caching using spliced cache appliances with packet inspection intelligence
CN105635196A (zh) * 2014-10-27 2016-06-01 中国电信股份有限公司 一种获取文件数据的方法、系统和应用服务器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918013B2 (en) * 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
CN101277211A (zh) * 2008-05-16 2008-10-01 腾讯科技(深圳)有限公司 数据缓存方法及装置
US9215212B2 (en) * 2009-06-22 2015-12-15 Citrix Systems, Inc. Systems and methods for providing a visualizer for rules of an application firewall
CN102035881B (zh) * 2010-11-19 2013-01-16 清华大学 一种云端存储系统的数据缓存方法
CN102355596B (zh) * 2011-10-11 2013-08-28 浪潮电子信息产业股份有限公司 一种适用于视频服务的缓存服务器部署方法
CN102571921B (zh) * 2011-12-09 2015-07-08 广东威创视讯科技股份有限公司 移动设备上网的方法及装置
CN104935636A (zh) * 2015-04-29 2015-09-23 广州杰赛科技股份有限公司 网络通道加速方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9143566B2 (en) * 2008-01-16 2015-09-22 Netapp, Inc. Non-disruptive storage caching using spliced cache appliances with packet inspection intelligence
CN101576854A (zh) * 2009-04-03 2009-11-11 成都市华为赛门铁克科技有限公司 文件访问的方法、装置及系统
CN105635196A (zh) * 2014-10-27 2016-06-01 中国电信股份有限公司 一种获取文件数据的方法、系统和应用服务器

Also Published As

Publication number Publication date
CN107818111A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
CN107818111B (zh) 一种缓存文件数据的方法、服务器及终端
US10579610B2 (en) Replicated database startup for common database storage
US11200332B2 (en) Passive distribution of encryption keys for distributed data stores
CN109783438B (zh) 基于librados的分布式NFS系统及其构建方法
US10387673B2 (en) Fully managed account level blob data encryption in a distributed storage environment
US9983825B2 (en) Efficient data volume replication for block-based storage
US10567500B1 (en) Continuous backup of data in a distributed data store
US10747746B2 (en) Efficient read replicas
US8788628B1 (en) Pre-fetching data for a distributed filesystem
CA2940328C (en) Reducing data volume durability state for block-based storage
US8805968B2 (en) Accessing cached data from a peer cloud controller in a distributed filesystem
US20210124719A1 (en) Local networked storage linked to remote networked storage system
US10783121B2 (en) Techniques for optimizing data flows in hybrid cloud storage systems
CN106775446B (zh) 基于固态硬盘加速的分布式文件系统小文件访问方法
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US20190007208A1 (en) Encrypting existing live unencrypted data using age-based garbage collection
US9817587B1 (en) Memory-based on-demand data page generation
CN103631820A (zh) 分布式文件系统的元数据管理方法及设备
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
US20190065526A1 (en) File consistency in shared storage using partial-edit files
US11144407B1 (en) Synchronous database geo-mirroring using delayed visibility write operations
US9178931B2 (en) Method and system for accessing data by a client from a server
CN116467275A (zh) 共享远程存储方法、装置、系统、电子设备及存储介质
CN111225003B (zh) 一种nfs节点配置方法和装置
CN117591038A (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