一种分布式存储系统中的缓存方法技术方案

技术编号:9697143 阅读:82 留言:0更新日期:2014-02-21 05:55
本发明专利技术涉及一种分布式存储系统中的缓存方法,包括以下步骤:1)客户端上传文件到服务端,1a)先将文件的元数据和数据块写入分布式存储系统;1b)再将文件的元数据写入分布式缓存系统Memcache中;2)客户端从服务端读取文件,2a)判断在Memcache中是否查找到元数据,若为是,将Memcache中的元数据返回给客户端,否则执行步骤2b);2b)分布式存储系统先将查找到的元数据再次写入Memcache中;2c)分布式存储系统再将文件的元数据和数据块组合后返回给客户端。与现有技术相比,本发明专利技术具有加速客户端浏览操作的响应时间,减缓了分布式系统的访问压力,提高访问文件的一致性等优点。

【技术实现步骤摘要】
一种分布式存储系统中的缓存方法
本专利技术涉及一种缓存方法,尤其是涉及一种分布式存储系统中的缓存方法。
技术介绍
随着信息时代的来临,人们产生的数据也正在迅速膨胀并变大,文件数量也随着迅猛增加,传统时代的采用单机系统做文件备份恢复,容易产生容量不易扩展、数据难以迁移,且易出现单点故障等诸多问题,所以越来越多的采用了多节点的分布式存储系统。目前,大部分应用于文件备份恢复的分布式存储系统都是不带有缓存系统的,这样的系统恢复操作会有很大的性能问题和一致性问题。通常分布式存储系统都会保留多个副本,当客户端备份一个文件到分布式系统中的某一个节点上后,如果在该节点上读取该文件,那么服务器端直接读取磁盘上的数据返回,磁盘的IO(读写)相对内存和数据库操作来说是一个比较慢动作,而当磁盘IO达到一定瓶颈,读取操作的性能会急剧下降。如果在另一个节点上访问该文件,此时副本还没有同步完成,有的分布式系统会从其他的节点尝试读取指定的文件,此时跨网络的访问会更加延误本次读取操作的响应,性能非常糟糕;有的分布式系统则是本节点访问不到,直接通知客户端访问的文件不存在,或者通知客户端等多副本同步完成后再去访问,显然这是存在一致性问题的,明明已经备份上去的文件却不能立即读到,对于一些要求实时性比较高的应用系统来说,出现该问题是不能容忍的。有些分布式存储系统是带有本地缓存系统的,一般都是采用本地数据库缓存,虽然解决了一部分的性能问题,但是还是很难解决上述的一致性问题。还有一些分布式存储系统为缓解读取的压力,增加专门用于读取文件的服务器做分布式缓存,需要采购对应的服务器,这样显然增加了极大的成本和资源浪费。而Memcache是一个高性能的分布式的内存对象缓存系统,采用的Key-Value的存储结构。虽然是分布式缓存系统,但是它的服务端不存在多个副本,而分布式是客户端实现的,目前已有成熟的客户端配置分布式的API(ApplicationProgrammingInterface,应用程序编程接口)。同时也提供了增删查改的操作API,使用起来比较方便。通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。但遗憾的是,文件备份领域的分布式存储系统少有采用Memcache做分布式缓存的。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种分布式存储系统中的缓存方法,将分布式存储系统和分布式缓存系统Memcache结合应用,加速客户端浏览操作的响应时间,减缓了分布式系统的访问压力,提高访问文件的一致性。本专利技术的目的可以通过以下技术方案来实现:一种分布式存储系统中的缓存方法,其特征在于,包括以下步骤:1)客户端上传文件到服务端,1a)先将文件的元数据和数据块写入分布式存储系统;1b)再将文件的元数据写入分布式缓存系统Memcache中;2)客户端从服务端读取文件,2a)判断在Memcache中是否查找到元数据,若为是,将Memcache中的元数据返回给客户端,否则执行步骤2b);2b)分布式存储系统先将查找到的元数据再次写入Memcache中;2c)分布式存储系统再将文件的元数据和数据块组合后返回给客户端。所述的步骤1)客户端上传文件到服务端具体为:11)将上传文件拆分为元数据和数据块,其中元数据包括子对象索引、对象信息和数据块索引;12)将子对象索引、对象信息、数据块索引和数据块写入分布式存储系统,写入完成后执行步骤13);13)将子对象索引、对象信息、数据块索引写入Memcache中。所述的步骤2)客户端从服务端读取文件具体为:21)向Memcache中查找子对象索引,并判断是否找到,若为是,执行步骤23),否则,执行步骤22);22)向分布式存储系统中查找子对象索引,找到后将其再次写入Memcache中,并执行步骤23);23)根据找到的子对象索引,查找对象信息,并判断是否找到,若为是,执行步骤25),否则,执行步骤24);24)向分布式存储系统中查找对象信息,找到后将其再次写入Memcache中,并执行步骤25);25)向Memcache中查找数据块索引,并判断是否找到,若为是,执行步骤27),否则,执行步骤26);26)向分布式存储系统中查找数据块索引,找到后将其再次写入Memcache中,并执行步骤27);27)根据找到的数据块索引向分布式存储系统查找数据块,找到后执行步骤28);28)将获取到的对象索引、对象信息、数据块索引和数据块组合后,返回给客户端。与现有技术相比,本专利技术具有以下优点:1)提升了文件的元数据读取速度,内存操作显然比数据库和磁盘操作快很多,而Memcache的数据正是存在内存中的,文件元数据的读取速度提高了,也就提高了文件整体读取的性能。2)缓解分布式存储系统的访问压力,文件的读取操作很大一部分会经过分布式缓存系统后直接返回给客户端,读取操作由于不经过分布式存储系统,因此缓解了分布式存储系统的访问压力。3)由于Memcache的服务端不会存在多个副本,Memcache中存在数据的一定是正确的和完整的,因此解决了访问的一致性问题。附图说明图1为本专利技术的整体结构示意图;图2为文件树状结构图;图3为本专利技术的写入文件过程示意图;图4为本专利技术的读取文件过程示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例1如图1所示,本专利技术分布式存储系统中的缓存方法,包括以下步骤:客户端1上传文件到服务端2,101)先将文件的元数据和数据块写入分布式存储系统22;102)再将文件的元数据写入分布式缓存系统Memcache21中;客户端1从服务端2读取文件,103)判断在Memcache21中是否查找到元数据,若为是,将Memcache21中的元数据返回给客户端1,否则执行步骤102);104)分布式存储系统22先将查找到的元数据再次写入Memcache21中;105)分布式存储系统22再将文件的元数据和数据块组合后返回给客户端1。之所以会出现写入到Memcache中,却查不到的情况,是因为Memcache是内存存储的,内存的存储容量是GB级别,而用户数据很可能是PB(1PB=1024*1024GB)级别或者以上级别。如此大的容量Memcache可能会存储不下。当容量满了之后,会自动删除掉最久未被访问的数据,通常用户的行为习惯是不太经常翻阅很久很久之前的文件,用户的大部分行为是查看近期的使用文档。1、客户端上传文件到服务端具体为:11)将上传文件拆分为元数据和数据块,其中元数据包括子对象索引、对象信息和数据块索引;如图2所示,通常文件树状结构主要包含目录、子目录、目录信息、子文件、文件信息、文件和目录索引、数据块索引以及数据块。根据Memcache的Key-Value存储特征,将这些信息重新整理。由于数据块比其他的信息的所占容量大很多,而Memcache采用内存保存的,内存容量是相对有限的,故数据块不存储在缓存中。将文件和目录统称为对象,每个对象都有一个全局唯一的uuid((UniversallyUniqueIdentifier)表示;文件和目录的信息称为对象信息,包括文件或目录名称,文件或者目录属性,及其他的元本文档来自技高网
...
一种分布式存储系统中的缓存方法

【技术保护点】
一种分布式存储系统中的缓存方法,其特征在于,包括以下步骤:1)客户端上传文件到服务端,1a)先将文件的元数据和数据块写入分布式存储系统;1b)再将文件的元数据写入分布式缓存系统Memcache中;2)客户端从服务端读取文件,2a)判断在Memcache中是否查找到元数据,若为是,将Memcache中的元数据返回给客户端,否则执行步骤2b);2b)分布式存储系统先将查找到的元数据再次写入Memcache中;2c)分布式存储系统再将文件的元数据和数据块组合后返回给客户端。

【技术特征摘要】
1.一种分布式存储系统中的缓存方法,其特征在于,包括以下步骤:1)客户端上传文件到服务端,1a)先将文件的元数据和数据块写入分布式存储系统;1b)再将文件的元数据写入分布式缓存系统Memcache中;2)客户端从服务端读取文件,2a)判断在Memcache中是否查找到元数据,若为是,将Memcache中的元数据返回给客户端,否则执行步骤2b);2b)分布式存储系统先将查找到的元数据再次写入Memcache中;2c)分布式存储系统再将文件的元数据和数据块组合后返回给客户端;所述的步骤1)客户端上传文件到服务端具体为:11)将上传文件拆分为元数据和数据块,其中元数据包括子对象索引、对象信息和数据块索引;12)将子对象索引、对象信息、数据块索引和数据块写入分布式存储系统,写入完成后执行步骤13);13)将子对象索引、对象信息、数据块索引写入Memcache中;所述的步骤2)...

【专利技术属性】
技术研发人员:刘浪
申请(专利权)人:上海爱数软件有限公司
类型:发明
国别省市:

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

1