CN102541983A - 一种分布式文件系统中多客户端缓存同步的方法 - Google Patents
一种分布式文件系统中多客户端缓存同步的方法 Download PDFInfo
- Publication number
- CN102541983A CN102541983A CN201110326365XA CN201110326365A CN102541983A CN 102541983 A CN102541983 A CN 102541983A CN 201110326365X A CN201110326365X A CN 201110326365XA CN 201110326365 A CN201110326365 A CN 201110326365A CN 102541983 A CN102541983 A CN 102541983A
- Authority
- CN
- China
- Prior art keywords
- client
- metadata
- buffer memory
- cache
- read
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式文件系统中多客户端缓存同步的方法,将元数据服务器作为客户端缓存信息的控制节点,对该元数据服务器上维护的索引节点,记录各个客户端在该元数据服务器上的存储状态;将元数据信息按照客户端缓存属性分为只读缓存和可写缓存;对于元数据只读缓存,当客户端第一次读取元数据时,元数据服务器授予客户端只读权限或者可写缓存权限,并且在操作完毕后一直持有该权限;对于元数据可写缓存,客户端的修改暂时保存到本地,当满足写回触发条件时进行写回。本发明该严格保证了不同客户端之间缓存的一致性,并且其实现与Lustre和GPFS的分布式锁相比较而言,开发成本相对较小。
Description
技术领域
本发明涉及分布式文件系统中客户端缓存同步问题,具体来说,涉及一种分布式文件系统中多客户端缓存同步的方法。
背景技术
进入信息化时代后,随着技术的不断发展,在各行各业中,对于存储的需求呈几何趋势递增,这就导致常规的本地文件系统无法满足业务的需求。于是,在应用需求的刺激下,各种不同类型的分布式文件系统应运而生了,如NFS、Lustre、GPFS、Google FS等。
对于分布式文件系统而言,由于其客户端分布在不同的物理机器上,因此不同的客户端对于文件系统元数据和数据的操作是相互不可见的。于是就存在一个客户端对于文件系统的修改对另一个客户端不可见的问题,也就是多客户端之间存在缓存一致性的问题。为了解决这一问题,不同的分布式文件系统采用了不同的机制:
NFS采用缓存定时更新的策略,即客户端为元数据或数据缓存设定版本号和超时时间,当客户端访问缓存内的数据时,如果发现超时,则去服务器上再次读回相应数据,并更新本地缓存。这种方式的优点在于相对简单,但是缺点在于,如果数据没有修改,则会浪费很多网络IO,对服务器施加了不必要的压力。另外,该种方法不能保证客户端之间的缓存时严格一致的,因为在超时时间以内, 客户端是无法察觉其他客户端对于数据的修改的。
Lustre和GPFS采用了较为复杂的分布式锁的方式来保证客户端之间缓存的一致性。当客户端上保存有某中数据的缓存时,需要同时持有相应的锁,其他客户端想要访问该数据时,需要根据访问属性与已持有该数据锁的客户端进行互斥。分布式锁的设计相对比较复杂,开发的成本比较高,并且在实际的使用当中,其效率相对较低。
Google FS是专为大文件设计的文件系统,在客户端上不存有缓存,因此客户端访问任何数据都是直接去服务器上读取,因而不存在客户端之间缓存一致性的问题。
发明内容
本发明旨在公开一种分布式文件系统中多客户的之间缓存一致性的方案,该方案能够严格保证不同客户端之间缓存的一致性,并且其实现与Lustre和GPFS的分布式锁相比较而言,开发成本相对较小。
一种分布式文件系统中多客户端缓存同步的方法,
将元数据服务器作为客户端缓存信息的控制节点,对该元数据服务器上维护的索引节点,记录各个客户端在该元数据服务器上的存储状态;
将元数据信息按照客户端缓存属性分为只读缓存和可写缓存;
对于元数据只读缓存,当客户端第一次读取元数据时,元数据服 务器授予客户端只读权限或者可写缓存权限,并且在操作完毕后一直持有该权限;
对于元数据可写缓存,客户端的修改暂时保存到本地,当满足写回触发条件时进行写回。
优选的,所述索引节点如果是文件,需要记录客户端对于文件内容的缓冲状态。
优选的,所述客户端如果需要修改所述元数据只读缓存,则先清空本地缓存,然后向元数据服务器发送修改请求,由元数据服务器完成修改并重新授予客户端对于该元数据的只读缓存权限。
优选的,所述元数据服务器在处理来自客户端的修改请求时,先检查其他客户端是否缓存了该元数据的相应信息,如果有客户端缓存,则需先请求其他客户端清空缓存,然后由元数据服务器进行修改。
优选的,所述触发条件包括操作系统定时回写;以及收到来自元数据服务的释放可写缓存权限的请求。
优选的,所述元数据被划分为定长区间,按照区间授予客户端缓存权限。
本发明该严格保证了不同客户端之间缓存的一致性,并且其实现与Lustre和GPFS的分布式锁相比较而言,开发成本相对较小。
具体实施方式
本发明选择元数据服务器作为控制点,将客户端缓存分为两种类型:只读缓存和可写缓存。对于只读缓存,客户端只能读,而不 能修改;而对于可写缓存,客户端既可以读,也可以修改。当一个客户端需要缓存元数据或数据时,需要到相应的元数据服务器上申请许可,元数据服务器会作相应的记录。当多个客户端访问元数据或数据存在竞争时,元数据服务器负责协调,让各个客户端能够及时清理缓存,获得对数据或元数据公平的访问机会。
对于元数据信息的修改,除了文件的大小信息以外,其他的信息均直接由元数据服务器修改,即客户端上只保留只读缓存;对于文件的内容和大小信息,为了保证效率,客户端上保留有可写缓存,当其他客户端需要访问时,元数据服务器需要通知该客户端,该客户端需要回写本地的修改,这样其他客户端就可以访问到最新的信息了。
发明中的技术方案具体描述如下:
(1)以元数据服务器作为客户端缓存信息的控制节点,对于该元数据服务器上维护的索引节点,记录各个客户端对其的缓存状态。如果索引节点是文件,还需要记录客户端对于文件内容的缓冲状态。
(2)对于元数据信息,按照客户端缓存属性,将其分为只读和可写两类。本发明中,客户端上保留有可写缓存的信息仅有文件的大小,对于其他元数据信息,客户端只会保留只读缓存。
对于文件内容,即数据信息,客户端可能持有只读或可写缓存。
(3)对于元数据只读缓存,正常模式下,当客户端第一次读取元数据时,元数据服务器授予其只读缓存或可写缓存的权限。当 客户端使用完毕后,并不会立即释放缓存权限,而是一直持有该权限,以提高缓存的使用率。如果客户端需要修改这类元数据信息,需要首先清空本地缓存,然后向元数据服务器发送修改请求,由元数据服务器来完成修改,并重新授予客户端对于该元数据这些信息的只读缓存权限。
元数据服务器在处理来至客户端的修改请求时,需要先检查其他客户端是否缓存了改元数据的相应信息,如果有客户端缓存,则需要先请求这些客户端清空缓存,然后元数据服务器才进行修改。
(4)对于元数据可写缓存,客户端的修改会暂时保留在本地。写回元数据服务器的触发条件有两个:一个是操作系统的定时回写;另一个是收到来自元数据服务的释放可写缓存权限的请求,一般是由于其他客户端需要访问该元数据信息,从而产生可冲突。
(5)对于文件内容的缓存,本发明首先将文件分成定长的区间,按照区间授予客户端缓存权限。之所以选择这样的算法,主要是为了减小客户端访问文件内容时产生的冲突,提高不同客户端对于同一个文件访问的并发度。当客户端需要访问文件内容时,需要首先根据自己的访问区间,向元数据服务器申请对于文件区间缓存权限,得到权限授予后,方可以操作数据。
客户端对文件内容缓存的操作方式类似元数据缓存:对于只读缓存,客户端会保留尽可能长的时间,直到收到来自元数据服务器的缓冲清空请求;而对于可写缓存,客户端的修改在本地暂时缓存,直到操作系统或元数据服务器来触发回写。
Claims (6)
1.一种分布式文件系统中多客户端缓存同步的方法,其特征在于:
将元数据服务器作为客户端缓存信息的控制节点,对该元数据服务器上维护的索引节点,记录各个客户端在该元数据服务器上的存储状态;
将元数据信息按照客户端缓存属性分为只读缓存和可写缓存;
对于元数据只读缓存,当客户端第一次读取元数据时,元数据服务器授予客户端只读权限或者可写缓存权限,并且在操作完毕后一直持有该权限;
对于元数据可写缓存,客户端的修改暂时保存到本地,当满足写回触发条件时进行写回。
2.如权利要求1所述的方法,其特征在于:所述索引节点如果是文件,需要记录客户端对于文件内容的缓冲状态。
3.如权利要求1所述的方法,其特征在于:所述客户端如果需要修改所述元数据只读缓存,则先清空本地缓存,然后向元数据服务器发送修改请求,由元数据服务器完成修改并重新授予客户端对于该元数据的只读缓存权限。
4.如权利要求3所述的方法,其特征在于:所述元数据服务器在处理来自客户端的修改请求时,先检查其他客户端是否缓存了该元数据的相应信息,如果有客户端缓存,则需先请求其他客户端清空缓存,然后由元数据服务器进行修改。
5.如权利要求1所述的方法,其特征在于:所述触发条件包括操作系统定时回写;以及收到来自元数据服务的释放可写缓存权限的请求。
6.如权利要求1所述的方法,其特征在于:所述元数据被划分为定长区间,按照区间授予客户端缓存权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110326365 CN102541983B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中多客户端缓存同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110326365 CN102541983B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中多客户端缓存同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541983A true CN102541983A (zh) | 2012-07-04 |
CN102541983B CN102541983B (zh) | 2013-07-31 |
Family
ID=46348886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110326365 Active CN102541983B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中多客户端缓存同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541983B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034584A (zh) * | 2012-12-05 | 2013-04-10 | 曙光信息产业(北京)有限公司 | 测试分布式锁的方法和装置 |
CN103853714A (zh) * | 2012-11-28 | 2014-06-11 | 中国移动通信集团河南有限公司 | 一种数据处理方法和装置 |
CN104113587A (zh) * | 2014-06-23 | 2014-10-22 | 华中科技大学 | 一种分布式文件系统客户端元数据缓存优化方法 |
CN104239435A (zh) * | 2014-08-29 | 2014-12-24 | 四川长虹电器股份有限公司 | 一种基于图片缩略处理的分布式图片缓存方法 |
CN106603729A (zh) * | 2017-02-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种分布式文件系统多客户端同步方法及系统 |
CN106850856A (zh) * | 2017-03-28 | 2017-06-13 | 南京卓盛云信息科技有限公司 | 一种分布式存储系统及其同步缓存方法 |
CN106845259A (zh) * | 2017-02-28 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种分布式文件读写权限设置方法 |
CN107015865A (zh) * | 2017-03-17 | 2017-08-04 | 华中科技大学 | 一种基于时间局部性的dram缓存管理方法及系统 |
CN107566434A (zh) * | 2016-07-01 | 2018-01-09 | 北京京东尚科信息技术有限公司 | 一种分布式系统中缓存数据读写方法及系统 |
CN107704596A (zh) * | 2017-10-13 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种读取文件的方法、装置及设备 |
CN109033363A (zh) * | 2018-07-26 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种响应客户端请求的方法、装置及设备 |
CN109582684A (zh) * | 2018-11-30 | 2019-04-05 | 深圳市盟天科技有限公司 | 一种本地缓存数据的更新方法、装置、服务器及存储介质 |
CN110069357A (zh) * | 2018-01-22 | 2019-07-30 | 三星电子株式会社 | 集成电路存储器装置及其操作方法 |
CN110083549A (zh) * | 2019-04-01 | 2019-08-02 | 福建天泉教育科技有限公司 | 一种缓存读写的方法及终端 |
CN111984191A (zh) * | 2020-08-05 | 2020-11-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种支持分布式存储的多客户端缓存方法及系统 |
CN113419670A (zh) * | 2021-03-31 | 2021-09-21 | 阿里巴巴新加坡控股有限公司 | 数据写入处理方法、装置及电子设备 |
CN116561089A (zh) * | 2023-07-10 | 2023-08-08 | 成都泛联智存科技有限公司 | 数据同步方法、装置、客户端和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184183A (zh) * | 2011-03-31 | 2011-09-14 | 迈普通信技术股份有限公司 | 一种分布式数据库数据同步方法 |
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
-
2011
- 2011-10-25 CN CN 201110326365 patent/CN102541983B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184183A (zh) * | 2011-03-31 | 2011-09-14 | 迈普通信技术股份有限公司 | 一种分布式数据库数据同步方法 |
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853714A (zh) * | 2012-11-28 | 2014-06-11 | 中国移动通信集团河南有限公司 | 一种数据处理方法和装置 |
CN103853714B (zh) * | 2012-11-28 | 2017-06-20 | 中国移动通信集团河南有限公司 | 一种数据处理方法和装置 |
CN103034584B (zh) * | 2012-12-05 | 2016-08-17 | 曙光信息产业(北京)有限公司 | 测试分布式锁的方法和装置 |
CN103034584A (zh) * | 2012-12-05 | 2013-04-10 | 曙光信息产业(北京)有限公司 | 测试分布式锁的方法和装置 |
CN104113587B (zh) * | 2014-06-23 | 2017-08-01 | 华中科技大学 | 一种分布式文件系统客户端元数据缓存优化方法 |
CN104113587A (zh) * | 2014-06-23 | 2014-10-22 | 华中科技大学 | 一种分布式文件系统客户端元数据缓存优化方法 |
CN104239435A (zh) * | 2014-08-29 | 2014-12-24 | 四川长虹电器股份有限公司 | 一种基于图片缩略处理的分布式图片缓存方法 |
CN107566434A (zh) * | 2016-07-01 | 2018-01-09 | 北京京东尚科信息技术有限公司 | 一种分布式系统中缓存数据读写方法及系统 |
CN107566434B (zh) * | 2016-07-01 | 2022-01-07 | 北京京东尚科信息技术有限公司 | 缓存数据读写方法、系统、电子设备及计算机可读介质 |
CN106603729A (zh) * | 2017-02-23 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种分布式文件系统多客户端同步方法及系统 |
CN106845259A (zh) * | 2017-02-28 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种分布式文件读写权限设置方法 |
CN106845259B (zh) * | 2017-02-28 | 2019-12-17 | 苏州浪潮智能科技有限公司 | 一种分布式文件读写权限设置方法 |
CN107015865A (zh) * | 2017-03-17 | 2017-08-04 | 华中科技大学 | 一种基于时间局部性的dram缓存管理方法及系统 |
CN107015865B (zh) * | 2017-03-17 | 2019-12-17 | 华中科技大学 | 一种基于时间局部性的dram缓存管理方法及系统 |
CN106850856A (zh) * | 2017-03-28 | 2017-06-13 | 南京卓盛云信息科技有限公司 | 一种分布式存储系统及其同步缓存方法 |
CN107704596B (zh) * | 2017-10-13 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种读取文件的方法、装置及设备 |
CN107704596A (zh) * | 2017-10-13 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种读取文件的方法、装置及设备 |
CN110069357A (zh) * | 2018-01-22 | 2019-07-30 | 三星电子株式会社 | 集成电路存储器装置及其操作方法 |
CN109033363A (zh) * | 2018-07-26 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种响应客户端请求的方法、装置及设备 |
CN109582684A (zh) * | 2018-11-30 | 2019-04-05 | 深圳市盟天科技有限公司 | 一种本地缓存数据的更新方法、装置、服务器及存储介质 |
CN110083549A (zh) * | 2019-04-01 | 2019-08-02 | 福建天泉教育科技有限公司 | 一种缓存读写的方法及终端 |
CN111984191A (zh) * | 2020-08-05 | 2020-11-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种支持分布式存储的多客户端缓存方法及系统 |
CN113419670A (zh) * | 2021-03-31 | 2021-09-21 | 阿里巴巴新加坡控股有限公司 | 数据写入处理方法、装置及电子设备 |
CN116561089A (zh) * | 2023-07-10 | 2023-08-08 | 成都泛联智存科技有限公司 | 数据同步方法、装置、客户端和计算机可读存储介质 |
CN116561089B (zh) * | 2023-07-10 | 2023-09-19 | 成都泛联智存科技有限公司 | 数据同步方法、装置、客户端和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102541983B (zh) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541983B (zh) | 一种分布式文件系统中多客户端缓存同步的方法 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
CN104395904B (zh) | 高效的数据对象存储和检索 | |
US9921955B1 (en) | Flash write amplification reduction | |
US10747673B2 (en) | System and method for facilitating cluster-level cache and memory space | |
WO2016086819A1 (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
CN102567445B (zh) | 一种分布式文件系统中保证元数据一致性的方法 | |
US9805055B2 (en) | Method and apparatus for reading data in distributed file system | |
CN107888657A (zh) | 低延迟分布式存储系统 | |
CN103558992A (zh) | 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统 | |
US20140032854A1 (en) | Coherence Management Using a Coherent Domain Table | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
CN110377531B (zh) | 基于日志结构的持久性内存存储引擎装置及控制方法 | |
CN106537358A (zh) | 在存储网络中的存储的管理 | |
CN102541985A (zh) | 一种分布式文件系统中客户端目录缓存的组织方法 | |
CN102521330A (zh) | 一种桌面虚拟化环境下的镜像分布式存储方法 | |
CN104115133A (zh) | 复合非易失性存储设备的数据迁移 | |
US10073648B2 (en) | Repartitioning data in a distributed computing system | |
CN109697016A (zh) | 用于改进容器的存储性能的方法和装置 | |
CN106713250B (zh) | 基于分布式系统的数据访问方法和装置 | |
CN102833331A (zh) | 云存储系统及其元数据写入方法、元数据读取方法 | |
CN107111627A (zh) | 在线文件系统检查 | |
CN103473258A (zh) | 云存储文件系统 | |
CN110968266B (zh) | 一种基于热度的存储管理方法及系统 |
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 |