CN113485639A - 分布式存储的io速度优化方法、***、终端及存储介质 - Google Patents
分布式存储的io速度优化方法、***、终端及存储介质 Download PDFInfo
- Publication number
- CN113485639A CN113485639A CN202110677274.4A CN202110677274A CN113485639A CN 113485639 A CN113485639 A CN 113485639A CN 202110677274 A CN202110677274 A CN 202110677274A CN 113485639 A CN113485639 A CN 113485639A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- distributed lock
- client
- file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 45
- 238000005457 optimization Methods 0.000 title claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 230000007423 decrease Effects 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004140 cleaning Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式存储的IO速度优化方法、***、终端及存储介质,包括:预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;将分布式锁数据客户端操作请求所属的客户端绑定;记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。本发明无需再向分布式存储的元数据***获取数据,减少了与元数据***的交互次数,提高了IO操作效率。
Description
技术领域
本发明涉及分布式存储技术领域,具体涉及一种分布式存储的IO速度优化方法、***、终端及存储介质。
背景技术
分布式文件***(Distributed File System,DFS)是指文件***管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)相连;或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件***。DFS为分布在网络上任意位置的资源提供一个逻辑上的树形文件***结构,从而使用户访问分布在网络上的共享文件更加简便。单独的DFS共享文件夹的作用是相对于通过网络上的其他共享文件夹的访问点。
目前的分布式文件***中,在同一个目录下进行文件创建、删除等操作时,每操作一个文件都要重新对他的父目录依次进行加锁、解锁,对于创建和删除操作还要重新获取该目录的底层文件布局数据(dir_layout)等。这些操作对于同一个目录来说大部分都是重复的,且由于分布式锁的加解锁都需要分布式文件***的元数据***(mds)及客户端的交互操作,这就会大大降低***IO的操作效率。
发明内容
针对现有技术的上述不足,本发明提供一种分布式存储的IO速度优化方法、***、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种分布式存储的IO速度优化方法,包括:
预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;
将分布式锁数据客户端操作请求所属的客户端绑定;
记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;
获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
进一步的,预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据,包括:
为客户端操作请求创建锁缓存成员,将客户端操作请求涉及的文件目录的分布式锁数据和底层文件布局数据。
进一步的,将分布式锁数据客户端操作请求所属的客户端绑定,包括:
通过设置客户端操作请求权限将分布式锁数据客户端操作请求所属的客户端绑定,根据绑定关系在所述客户端的所有客户端操作请求释放完成后清除失效的绑定分布式锁数据。
进一步的,记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间,包括:
设置引用次数随未引用时间递减的规则;
根据缓存的分布式锁数据和底层文件布局数据的引用次数、未引用时间和所述规则计算缓存系数;
若缓存系数为0,则清除相应的缓存数据。
进一步的,获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作,包括:
获取客户端操作请求当前次IO操作的目标文件,以及目标文件所属的目标目录;
从缓存的数据中查找目标目录的目标分布式锁数据和目标底层文件布局数据;
根据目标分布式锁数据对目标目录进行加解锁操作,利用目标底层文件布局数据执行所述当前次IO操作。
第二方面,本发明提供一种分布式存储的IO速度优化***,包括:
数据缓存单元,用于预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;
数据绑定单元,用于将分布式锁数据客户端操作请求所属的客户端绑定;
缓存管理单元,用于记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;
操作执行单元,用于获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
进一步的,所述缓存管理单元包括:
规则设置模块,用于设置引用次数随未引用时间递减的规则;
系数计算模块,用于根据缓存的分布式锁数据和底层文件布局数据的引用次数、未引用时间和所述规则计算缓存系数;
缓存清除模块,用于若缓存系数为0,则清除相应的缓存数据。
进一步的,所述操作执行单元包括:
目标获取模块,用于获取客户端操作请求当前次IO操作的目标文件,以及目标文件所属的目标目录;
数据查找模块,用于从缓存的数据中查找目标目录的目标分布式锁数据和目标底层文件布局数据;
操作执行模块,用于根据目标分布式锁数据对目标目录进行加解锁操作,利用目标底层文件布局数据执行所述当前次IO操作。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的分布式存储的IO速度优化方法,通过为客户端操作请求预先缓存多个目录的分布式锁数据和底层文件布局数据,使客户端操作请求每次执行IO操作时只需从缓存中获取目标分布式锁数据和底层文件布局数据即可,无需再向分布式存储的元数据***获取数据,减少了与元数据***的交互次数,提高了IO操作效率,同时通过采用将缓存数据客户端操作请求所属的客户端绑定以及对缓存数据进行引用次数统计实现对缓存数据的管理,避免无用数据占用缓存资源。
本发明提供的分布式存储的IO速度优化***,通过数据缓存单元为客户端操作请求预先缓存多个目录的分布式锁数据和底层文件布局数据,使操作执行单元在客户端操作请求每次执行IO操作时只需从缓存中获取目标分布式锁数据和底层文件布局数据即可,无需再向分布式存储的元数据***获取数据,减少了与元数据***的交互次数,提高了IO操作效率,同时通过采用数据绑定单元将缓存数据客户端操作请求所属的客户端绑定以及缓存管理单元对缓存数据进行引用次数统计实现对缓存数据的管理,避免无用数据占用缓存资源。
本发明提供的终端,执行分布式存储的IO速度优化方法,通过为客户端操作请求预先缓存多个目录的分布式锁数据和底层文件布局数据,使客户端操作请求每次执行IO操作时只需从缓存中获取目标分布式锁数据和底层文件布局数据即可,无需再向分布式存储的元数据***获取数据,减少了与元数据***的交互次数,提高了IO操作效率,同时通过采用将缓存数据客户端操作请求所属的客户端绑定以及对缓存数据进行引用次数统计实现对缓存数据的管理,避免无用数据占用缓存资源。
本发明提供的存储介质,存储能够执行分布式存储的IO速度优化方法的程序,通过为客户端操作请求预先缓存多个目录的分布式锁数据和底层文件布局数据,使客户端操作请求每次执行IO操作时只需从缓存中获取目标分布式锁数据和底层文件布局数据即可,无需再向分布式存储的元数据***获取数据,减少了与元数据***的交互次数,提高了IO操作效率,同时通过采用将缓存数据客户端操作请求所属的客户端绑定以及对缓存数据进行引用次数统计实现对缓存数据的管理,避免无用数据占用缓存资源。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的方法的获取分布式锁数据的示意性流程图。
图3是本发明一个实施例的方法的获取底层文件布局数据的示意性流程图。
图4是本发明一个实施例的***的示意性框图。
图5为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
MDS.Metadata Server,分布式文件***中的元数据服务的简称。
OSD.Object Storage Device,负责响应客户端请求返回具体数据的进程。一个分布式存储集群一般都有很多个OSD。
分布式锁。是自驱动式的锁、确保多节点之间的行为一致与数据一致性的协调者。
Mdr。客户端发往MDS的一次操作请求。
dir_layout。提供目录下文件在底层数据池的分布等的底层文件布局的数据结构。
cap.一个客户端从MDS获取到的操作权限数据。
mdr_locks。mdr中本次IO操作需要的分布式锁数据。
mdr_lock_cache.mdr中本次IO可用的分布式锁缓存数据。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种分布式存储的IO速度优化***。
如图1所示,该方法包括:
步骤110,预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;
步骤120,将分布式锁数据客户端操作请求所属的客户端绑定;
步骤130,记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;
步骤140,获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
为了便于对本发明的理解,下面以本发明分布式存储的IO速度优化方法的原理,结合实施例中对分布式存储的IO速度进行优化的过程,对本发明提供的分布式存储的IO速度优化方法做进一步的描述。
具体的,所述分布式存储的IO速度优化方法包括:
S1、预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据。
在MDS中为每个客户端操作请求mdr创建一个锁缓存成员mdr_lock_cache,该成员用以存储当前客户端操作请求mdr操作的目录所需要的各级父目录的相关分布式读写锁以及底层文件布局数据dir_layout。
底层文件布局数据dir_layout对于一个目录一般情况下是不会发生变化的,其获取过程需要对各级父目录进行加分布式锁操作,直到获取到可用的dir_layout为止,因此在获取一个目录的分布式锁数据和底层文件布局数据时,需要先获取分布式锁数据然后对目录加锁,在加锁后再获取底层文件布局数据。
S2、将分布式锁数据客户端操作请求所属的客户端绑定。
通过设置客户端操作请求权限将分布式锁数据客户端操作请求所属的客户端绑定,根据绑定关系在所述客户端的所有客户端操作请求释放完成后清除失效的绑定分布式锁数据。
具体的,锁缓存成员mdr_lock_cache是与该客户端在当前MDS中获取到的cap权限关联绑定的,除非mdr_lock_cache所关联的所有mdr已释放且当前客户端在该MDS中获取到的cap权限已失效,分布式锁缓存数据就会失效。从锁缓存成员mdr_lock_cache清除失效的分布式锁数据。
S3、记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间。
底层文件布局数据dir_layout与分布式锁缓存的关系。该底层文件布局数据需要在MDS缓存中得到较为长久的保存,不能随着客户端操作请求mdr的消失而消失,不然***就仍然需要频繁获取底层文件布局数据,因此将其保存在mdr对应的锁缓存成员mdr_lock_cache中。因此锁缓存机制可优化底层文件布局数据dir_layout的获取效率,方便底层文件布局数据dir_layout的保存使用,但总的来说这两种对文件IO效率的提升的方法的机制是不一样的,分布式锁缓存数据是对MDS分布式锁机制的优化,底层文件布局数据dir_layout的缓存优化是对***IO的某一个具体操作步骤的优化,两者有关联但彼此间并非不可或缺。
为了使锁缓存成员mdr_lock_cache中的无效缓存数据不占用缓存资源,设置缓存清理机制,包括:
设置引用次数随未引用时间递减的规则,未引用时间为从上次被引用开始计时的计时时间。本实施例设置递减系数为k。
根据缓存的分布式锁数据和底层文件布局数据的引用次数C、未引用时间T和所述规则计算缓存系数G,G=C-kT,k为正数。
若缓存数据长时间未被引用,直至缓存系数G降为0,则清除相应的缓存数据。
通过设置缓存清理机制,将不常用数据及时清理,避免无效数据占用缓存资源。
S4、获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
具体包括以下步骤:
(1)获取客户端操作请求当前次IO操作的目标文件,以及目标文件所属的目标目录。
(2)从缓存的数据中查找目标目录的目标分布式锁数据和目标底层文件布局数据。
(3)根据目标分布式锁数据对目标目录进行加解锁操作,利用目标底层文件布局数据执行所述当前次IO操作。
对目标目录进行加解锁操作的具体方法如图2所示,包括:
1)当某个MDS收到客户端发送的某个目录下的一个文件的创建或者删除操作时,如果当前文件是该MDS下某一目录下执行创建或删除操作的第一个文件时,进入步骤2),否则进入步骤5)。
2)如果当前操作是文件创建,且当前***中存在当前客户端与该目录的分布式锁缓存数据,则进入步骤3),否则如果当前操作是删除或者虽然是创建但是当前***中并没有当前客户端与该目录的分布式锁缓存数据则进入步骤4)。
3)根据当前客户端的cap获取到本MDS下对该目录的mdr_lock_cache分布式锁缓存数据,并将其赋给本次IO操作对应的mdr,该目录的锁缓存引用计数增加,进入步骤5)。
4)收集该文件在获取各种操作权限时需要的各个上级目录的分布式锁数据,并存入mdr的本次IO操作需要的分布式锁数据mdr_locks中。
5)根据本次IO操作对应的mdr中的相应的分布式锁数据(mdr_locks及mdr_lock_cache),依次进行锁评估,如果当前正在评估的锁已具有分布式锁缓存数据,则直接跳过本锁的锁评估、锁交互及其对应的加解锁操作,否则则进行以上操作获取本次IO需要的各种分布式锁数据。
6)如果本次IO进入过步骤4),则从mdr_locks中将本次IO操作锁需要的上级目录的读写分布式锁移入mdr_lock_cache,并将该mdr_lock_cache与当前客户端的cap权限进行关联,锁缓存引用计数增加。
7)文件IO操作完成后,将mdr中的分布式锁缓存mdr_lock_cache的应用计数进行减少操作,当计数减少为0时,从整个分布式***中去除该分布式锁缓存数据。
获取底层文件布局数据执行IO操作的方法如图3所示,包括:
1)获取一个文件所需要的dir_layout,需要按照层级依次向各个父目录进行加锁操作,直到从某层父目录中获取到可用的dir_layout。
2)当进行文件删除或者创建操作时,首先本次IO操作对应的mdr中判断是否有缓存的可用的底层文件布局数据dir_layout,如果有直接获取到,否则进入步骤3),否则进入步骤4)。
3)如果当前mdr中没有缓存的底层文件布局数据dir_layout,就对各个上层目录依次进行加分布式锁操作以获取可用的底层文件布局数据dir_layout,在这个过程中如果需要的分布式锁已在mdr的分布式锁缓存(mdr_lock_cache)中,则直接跳过该分布式锁的加锁过程。
4)获取到底层文件布局数据dir_layout后执行本IO后续的操作。
5)操作完成后,如果本次IO进入过步骤3)即mdr中没有底层文件布局数据dir_layout的缓存数据,则将该底层文件布局数据dir_layout存入mdr的分布式锁缓存(mdr_lock_cache)中,从而使新获取到的底层文件布局数据dir_layout可以更久的保存在分布式文件***中(mdr_lock_cache有引用计数保护,不会完全依赖于mdr而存在)。
如图4所示,该***400包括:
数据缓存单元410,用于预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;
数据绑定单元420,用于将分布式锁数据客户端操作请求所属的客户端绑定;
缓存管理单元430,用于记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;
操作执行单元440,用于获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
可选地,作为本发明一个实施例,所述缓存管理单元包括:
规则设置模块,用于设置引用次数随未引用时间递减的规则;
系数计算模块,用于根据缓存的分布式锁数据和底层文件布局数据的引用次数、未引用时间和所述规则计算缓存系数;
缓存清除模块,用于若缓存系数为0,则清除相应的缓存数据。
可选地,作为本发明一个实施例,所述操作执行单元包括:
目标获取模块,用于获取客户端操作请求当前次IO操作的目标文件,以及目标文件所属的目标目录;
数据查找模块,用于从缓存的数据中查找目标目录的目标分布式锁数据和目标底层文件布局数据;
操作执行模块,用于根据目标分布式锁数据对目标目录进行加解锁操作,利用目标底层文件布局数据执行所述当前次IO操作。
图5为本发明实施例提供的一种终端500的结构示意图,该终端500可以用于执行本发明实施例提供的分布式存储的IO速度优化方法。
其中,该终端500可以包括:处理器510、存储器520及通信单元530。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器520可以用于存储处理器510的执行指令,存储器520可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器520中的执行指令由处理器510执行时,使得终端500能够执行以下上述方法实施例中的部分或全部步骤。
处理器510为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器510可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元530,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过为客户端操作请求预先缓存多个目录的分布式锁数据和底层文件布局数据,使客户端操作请求每次执行IO操作时只需从缓存中获取目标分布式锁数据和底层文件布局数据即可,无需再向分布式存储的元数据***获取数据,减少了与元数据***的交互次数,提高了IO操作效率,同时通过采用将缓存数据客户端操作请求所属的客户端绑定以及对缓存数据进行引用次数统计实现对缓存数据的管理,避免无用数据占用缓存资源,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的***和方法,可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,***或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种分布式存储的IO速度优化方法,其特征在于,包括:
预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;
将分布式锁数据客户端操作请求所属的客户端绑定;
记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;
获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
2.根据权利要求1所述的方法,其特征在于,预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据,包括:
为客户端操作请求创建锁缓存成员,将客户端操作请求涉及的文件目录的分布式锁数据和底层文件布局数据。
3.根据权利要求1所述的方法,其特征在于,将分布式锁数据客户端操作请求所属的客户端绑定,包括:
通过设置客户端操作请求权限将分布式锁数据客户端操作请求所属的客户端绑定,根据绑定关系在所述客户端的所有客户端操作请求释放完成后清除失效的绑定分布式锁数据。
4.根据权利要求1所述的方法,其特征在于,记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间,包括:
设置引用次数随未引用时间递减的规则;
根据缓存的分布式锁数据和底层文件布局数据的引用次数、未引用时间和所述规则计算缓存系数;
若缓存系数为0,则清除相应的缓存数据。
5.根据权利要求1所述的方法,其特征在于,获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作,包括:
获取客户端操作请求当前次IO操作的目标文件,以及目标文件所属的目标目录;
从缓存的数据中查找目标目录的目标分布式锁数据和目标底层文件布局数据;
根据目标分布式锁数据对目标目录进行加解锁操作,利用目标底层文件布局数据执行所述当前次IO操作。
6.一种分布式存储的IO速度优化***,其特征在于,包括:
数据缓存单元,用于预先为客户端操作请求缓存多个目录的分布式锁数据和底层文件布局数据;
数据绑定单元,用于将分布式锁数据客户端操作请求所属的客户端绑定;
缓存管理单元,用于记录缓存的分布式锁数据和底层文件布局数据被客户端操作请求引用的次数,并根据引用次数确定分布式锁数据和底层文件布局数据的缓存时间;
操作执行单元,用于获取客户端操作请求的目标文件的目标目录,从缓存的数据中调取目标目录的分布式锁数据和底层文件布局数据,执行目标文件加锁和对目标文件的IO操作。
7.根据权利要求6所述的***,其特征在于,所述缓存管理单元包括:
规则设置模块,用于设置引用次数随未引用时间递减的规则;
系数计算模块,用于根据缓存的分布式锁数据和底层文件布局数据的引用次数、未引用时间和所述规则计算缓存系数;
缓存清除模块,用于若缓存系数为0,则清除相应的缓存数据。
8.根据权利要求6所述的***,其特征在于,所述操作执行单元包括:
目标获取模块,用于获取客户端操作请求当前次IO操作的目标文件,以及目标文件所属的目标目录;
数据查找模块,用于从缓存的数据中查找目标目录的目标分布式锁数据和目标底层文件布局数据;
操作执行模块,用于根据目标分布式锁数据对目标目录进行加解锁操作,利用目标底层文件布局数据执行所述当前次IO操作。
9.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-5任一项所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110677274.4A CN113485639B (zh) | 2021-06-18 | 2021-06-18 | 分布式存储的io速度优化方法、***、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110677274.4A CN113485639B (zh) | 2021-06-18 | 2021-06-18 | 分布式存储的io速度优化方法、***、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113485639A true CN113485639A (zh) | 2021-10-08 |
CN113485639B CN113485639B (zh) | 2024-02-20 |
Family
ID=77933931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110677274.4A Active CN113485639B (zh) | 2021-06-18 | 2021-06-18 | 分布式存储的io速度优化方法、***、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485639B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730258B1 (en) * | 2005-11-01 | 2010-06-01 | Netapp, Inc. | System and method for managing hard and soft lock state information in a distributed storage system environment |
CN102024017A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种无重复无遗漏遍历分布式文件***目录项的方法 |
CN103902660A (zh) * | 2014-03-04 | 2014-07-02 | 中国科学院计算技术研究所 | 机群文件***中通过readdir++预取文件布局的***及其方法 |
CN104158897A (zh) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | 一种分布式文件***中文件布局的更新方法 |
KR20170090594A (ko) * | 2016-01-29 | 2017-08-08 | 한국전자통신연구원 | 분산 파일 시스템을 채용한 스토리지 시스템에서 클라이언트 장치와 함께 파일의 분산 잠금을 관리하도록 구성되는 데이터 서버 장치 |
CN109582658A (zh) * | 2018-12-03 | 2019-04-05 | 郑州云海信息技术有限公司 | 一种分布式文件***实现数据一致性的方法及装置 |
CN110750507A (zh) * | 2019-09-30 | 2020-02-04 | 华中科技大学 | 面向dfs的全局命名空间下的客户端持久缓存方法及*** |
CN111966635A (zh) * | 2020-08-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种分布式存储文件***提升文件探知速度的方法、装置 |
-
2021
- 2021-06-18 CN CN202110677274.4A patent/CN113485639B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730258B1 (en) * | 2005-11-01 | 2010-06-01 | Netapp, Inc. | System and method for managing hard and soft lock state information in a distributed storage system environment |
CN102024017A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种无重复无遗漏遍历分布式文件***目录项的方法 |
CN103902660A (zh) * | 2014-03-04 | 2014-07-02 | 中国科学院计算技术研究所 | 机群文件***中通过readdir++预取文件布局的***及其方法 |
CN104158897A (zh) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | 一种分布式文件***中文件布局的更新方法 |
KR20170090594A (ko) * | 2016-01-29 | 2017-08-08 | 한국전자통신연구원 | 분산 파일 시스템을 채용한 스토리지 시스템에서 클라이언트 장치와 함께 파일의 분산 잠금을 관리하도록 구성되는 데이터 서버 장치 |
CN109582658A (zh) * | 2018-12-03 | 2019-04-05 | 郑州云海信息技术有限公司 | 一种分布式文件***实现数据一致性的方法及装置 |
CN110750507A (zh) * | 2019-09-30 | 2020-02-04 | 华中科技大学 | 面向dfs的全局命名空间下的客户端持久缓存方法及*** |
CN111966635A (zh) * | 2020-08-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种分布式存储文件***提升文件探知速度的方法、装置 |
Non-Patent Citations (2)
Title |
---|
杨洪章;张军伟;齐颖;吴雪丽;: "分布式文件***中海量小文件异步创建技术", 网络新媒体技术, no. 02 * |
钱迎进;金士尧;肖侬;: "Lustre文件***I/O锁的应用与优化", 计算机工程与应用, no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN113485639B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rhea et al. | Littletable: A time-series database and its uses | |
CN106446197B (zh) | 一种数据存储方法、装置及*** | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
US20070271350A1 (en) | Method and apparatus for data storage using striping | |
US9442694B1 (en) | Method for storing a dataset | |
CN108140040A (zh) | 存储器中数据库的选择性数据压缩 | |
CN107783988B (zh) | 一种目录树的加锁方法及设备 | |
CN109298835B (zh) | 区块链的数据归档处理方法、装置、设备及存储介质 | |
US10248693B2 (en) | Multi-layered row mapping data structure in a database system | |
CN111339078A (zh) | 数据实时存储方法、数据查询方法、装置、设备、介质 | |
CN107408132B (zh) | 跨越多个类型的存储器移动分层数据对象的方法和*** | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN109460345B (zh) | 实时数据的计算方法及*** | |
CN111708894A (zh) | 一种知识图谱创建方法 | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN110457307A (zh) | 元数据管理***、用户集群创建方法、装置、设备和介质 | |
CN113485639B (zh) | 分布式存储的io速度优化方法、***、终端及存储介质 | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
US11580128B2 (en) | Preventing DBMS deadlock by eliminating shared locking | |
CN114443583A (zh) | 一种碎片空间整理方法、装置、设备及存储介质 | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
CN117632953B (zh) | 数据循环存储方法、装置、服务器及存储介质 | |
CN113950145B (zh) | 数据处理方法及装置 | |
CN118034611B (zh) | 用于对文件的配额进行管理的方法、装置、设备及介质 | |
CN113625962B (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 |