CN111930320B - 一种基于分布式存储数据的内存优化方法及其系统 - Google Patents
一种基于分布式存储数据的内存优化方法及其系统 Download PDFInfo
- Publication number
- CN111930320B CN111930320B CN202011097815.8A CN202011097815A CN111930320B CN 111930320 B CN111930320 B CN 111930320B CN 202011097815 A CN202011097815 A CN 202011097815A CN 111930320 B CN111930320 B CN 111930320B
- Authority
- CN
- China
- Prior art keywords
- data
- actual content
- client
- distributed storage
- content data
- 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
Links
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/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
- 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/0629—Configuration or reconfiguration of 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/064—Management of blocks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分布式存储数据的内存优化方法及其系统,优化方法步骤包括:客户端读取数据,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端,数据读写收集模块对实际内容数据大小进行记录;重复上步骤,数据读写收集模块对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;客户端再一次读取数据,分布式存储单元从存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在内存单元中进行缓冲。本发明通过压缩缓冲数据占用的内存空间,达到节省内存空间效果。
Description
技术领域
本发明涉及分布式数据的读取技术领域,特别涉及一种基于分布式存储数据的内存优化方法及其系统。
背景技术
缓存通常是一种用于加速读或者写的方法,场景是把需要读写硬盘的内容放到速度较快的内存,然后直接对内存数据进行读写操作,定时再把内存数据同步到硬盘。
对于分布式存储ceph集群来说,现有对数据缓存的采用的方式,一般为在ceph存储体系里面,所有内容都被划分成大小相同的数据块,默认每块大小是4MB;但启用缓存之后,内存里面存放的是数据块为最小粒度单位,假如缓存了100个数据块,那么占用的内存空间为100*4MB=400MB。
然而,在一些小文件存储的场景之下,比如存放图片、小音频,这些文件通常都小于4MB,但是由于ceph的分块特性,无论实际保存的文件是超过4MB还是小于4MB,都以4MB为一个数据块的方式保存和缓存,因此在这些场景之下会导致缓存内存空间浪费。
发明内容
本发明要解决的技术问题在于,提供一种基于分布式存储数据的内存优化方法及其系统,在分布式存储数据进行缓冲时,压缩缓冲数据占用的内存空间,从而腾出更多的内存空间可用来缓冲更多的数据,达到节省内存空间效果,而且提升了分布式存储系统的读写性能。
为解决上述技术问题,本发明提供如下技术方案:一种基于分布式存储数据的内存优化方法,包括以下步骤:
步骤S1、客户端读取数据,分布式存储单元从存储设备中提取数据对应的数据块,并在内存单元中对数据块进行缓冲,然后将数据块进行合并后发送给客户端进行读取;其中,数据块在内存单元进行缓冲时,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端进行读取,数据读写收集模块对实际内容数据大小进行记录,各个实际内容数据大小是小于或等于其对应的数据块;
步骤S2、重复步骤S1,直至分布式存储单元内所有数据块的读取次数大于或等于1次,数据读写收集模块对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;
步骤S3、客户端再一次读取数据,分布式存储单元从存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在内存单元中进行缓冲,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端进行读取。
进一步地,所述步骤S1前还包括步骤S0、客户端写入数据至分布式存储单元,分布式存储单元将数据均分成若干块数据块,并将数据块分散存储于存储设备中。
本发明另一目的是提供一种基于分布式存储数据的内存优化系统,包括客户端、分布式存储单元、内存单元以及数据读写收集模块,所述分布式存储单元包括若干存储设备;
所述客户端用于写入数据至分布式存储单元,所述分布式存储单元用于将数据均分成若干块数据块,并将数据块分散存储于所述存储设备中;
所述客户端还用于读取数据;所述分布式存储单元还用于从所述存储设备中提取数据对应的数据块,并在所述内存单元中对数据块进行缓冲,然后将数据块进行合并后发送给所述客户端进行读取;其中,数据块在所述内存单元进行缓冲时,所述分布式存储单元还用于在每一块数据块中提取所述客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给所述客户端进行读取;所述数据读写收集模块用于对实际内容数据大小进行记录,其中,各个实际内容数据大小是小于或等于其对应的数据块;
所述数据读写收集模块还用于对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;
当所述数据读写收集模块形成历史记录后,所述客户端再一次读取数据时,所述分布式存储单元还用于从所述存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在所述内存单元中进行缓冲;所述分布式存储单元还用于在每一块数据块中提取所述客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给所述客户端进行读取。
采用上述技术方案后,本发明至少具有如下有益效果:本发明通过设置一个数据读写收集模块,用于分析推算出缓存数据块中实际有效的空间大小,把多余的部分从内存释放掉,节省内存空间。
附图说明
图1为本发明一种基于分布式存储数据的内存优化方法流程图。
图2为本发明一种基于分布式存储数据的内存优化系统框架图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
实施例1
本实施例公开一种基于分布式存储数据的内存优化方法,包括以下步骤:
步骤S0、客户端写入数据至分布式存储单元,分布式存储单元将数据均分成若干块数据块,并将数据块分散存储于存储设备中;
其中,分布式存储单元将数据均分成若干块数据块,由此可得,每一块数据块的大小都是相等的;作为优选地,将每一块数据块的大小设置为4MB;
另外,分布式存储单元需要对每一块数据块进行标记后再存储于存储设备中;由于在分布式系统中,存储设备都是分散地部署在异地中,因此都需要对数据块进行标记,使得读取数据块的时候能够快速准确地寻找到对应的数据块;
步骤S1、客户端读取数据,分布式存储单元从存储设备中提取数据对应的数据块,并在内存单元中对数据块进行缓冲,然后将数据块进行合并后发送给客户端进行读取;其中,数据块在内存单元进行缓冲时,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端进行读取,数据读写收集模块对实际内容数据大小进行记录,各个实际内容数据大小是小于或等于其对应的数据块;
由于数据在客户端读取前都需要在内存单元进行缓冲的,因此分布式存储单元需要将数据块在内存单元进行缓冲等待客户端的读取,而每一块数据块都会占用一定内存单元的空间的,例如当每一块数据块的大小都设置为4MB时,那么每一块数据块都会占用内存单元4MB的大小,假设有1000个数据块,就要占用4000MB的内存单元大小;然而,在实际上,客户端并不会都需要对每一块数据块的内容全部进行读取的,有可能只需要读取其中3MB的数据内容,那么这3MB的数据内容就是客户端所需读取的实际内容数据,3MB就是这个实际内容数据大小;当然,对于每一块数据块,客户端都不会读取一样大小的实际内容数据,有可能一个数据块是3MB,另一个是2MB,等等,各个数据块读取的实际内容数据大小有可能是不一样的,也有可能是一样的;
其中,分布式存储单元读取数据块时根据数据块的标记进行寻址并从对应的存储设备中读取;
步骤S2、重复步骤S1,直至分布式存储单元内所有数据块的读取次数大于或等于1次,数据读写收集模块对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;
由于需要清楚知道每一块数据块的实际内容数据,因此需要遍历所有的数据块至少1次才行;对于其中的一块数据块,有可能读取了1次以上,每一次读取的实际内容数据大小可能是不一样的,有可能第一次是1MB,第二次是2MB,第三次是3MB等等,那么就需要记录每一次的实际内容数据大小,并按大小对实际内容数据大小进行排列,从而得到最大的实际内容数据大小;
又由于每一块数据块都进行过标记,且标记都不一样的,很容易得到并记录每一块数据块的最大的实际内容数据大小;
步骤S3、客户端再一次读取数据,分布式存储单元从存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在内存单元中进行缓冲,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端进行读取。
例如,每一块数据块的大小均为4MB,而第一块数据块最大的实际内容数据大小为3MB,那么内存单元只会给第一块数据块提供3MB的内存空间进行缓冲,从而让原本需要4MB的内存空间实际上变成3MB,给分布式存储系统腾出了1MB的内存空间用于给其他数据用,积少成多,如果1000块数据块就有可能腾出1000MB的内存空间,使得在有限的内存空间给更多的数据进行缓冲,提高了读取数据的容量和效率,增强了内存空间的利用率。
上述通过对数据块读写请求学习,推算实际有效大小,把多余的空间压缩节省内存空间。
实施例2
本实施例是在实施例1的基础上提供的一种基于分布式存储数据的内存优化系统,其运行在分布性ceph集群存储系统内,包括客户端、分布式存储单元、内存单元以及数据读写收集模块,所述分布式存储单元包括若干存储设备;
所述客户端用于写入数据至分布式存储单元,所述分布式存储单元用于将数据均分成若干块数据块,并将数据块分散存储于所述存储设备中;
所述客户端还用于读取数据;所述分布式存储单元还用于从所述存储设备中提取数据对应的数据块,并在所述内存单元中对数据块进行缓冲,然后将数据块进行合并后发送给所述客户端进行读取;其中,数据块在所述内存单元进行缓冲时,所述分布式存储单元还用于在每一块数据块中提取所述客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给所述客户端进行读取;所述数据读写收集模块用于对实际内容数据大小进行记录,其中,各个实际内容数据大小是小于或等于其对应的数据块;
所述数据读写收集模块还用于对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;
当所述数据读写收集模块形成历史记录后,所述客户端再一次读取数据时,所述分布式存储单元还用于从所述存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在所述内存单元中进行缓冲;所述分布式存储单元还用于在每一块数据块中提取所述客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给所述客户端进行读取。
本发明通过设置一个数据读写收集模块,用于分析推算出缓存数据块中实际有效的空间大小,把多余的部分从内存释放掉;为了防止推算出现错误,当收到的读写请求超过之前推算的范围,则会重新从磁盘加载到内存,同时修正之前推算实际有效范围,并把多余部分从内存释放。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。
Claims (3)
1.一种基于分布式存储数据的内存优化方法,其特征在于,包括以下步骤:
步骤S1、客户端读取数据,分布式存储单元从存储设备中提取数据对应的数据块,并在内存单元中对数据块进行缓冲,然后将数据块进行合并后发送给客户端进行读取;其中,数据块在内存单元进行缓冲时,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端进行读取,数据读写收集模块对实际内容数据大小进行记录,各个实际内容数据大小是小于或等于其对应的数据块;
步骤S2、重复步骤S1,直至分布式存储单元内所有数据块的读取次数大于或等于1次,数据读写收集模块对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;
步骤S3、客户端再一次读取数据,分布式存储单元从存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在内存单元中进行缓冲,分布式存储单元在每一块数据块中提取客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给客户端进行读取。
2.根据权利要求1所述的一种基于分布式存储数据的内存优化方法,其特征在于,所述步骤S1前还包括步骤S0、客户端写入数据至分布式存储单元,分布式存储单元将数据均分成若干块数据块,并将数据块分散存储于存储设备中。
3.一种基于分布式存储数据的内存优化系统,其特征在于,包括客户端、分布式存储单元、内存单元以及数据读写收集模块,所述分布式存储单元包括若干存储设备;
所述客户端用于写入数据至分布式存储单元,所述分布式存储单元用于将数据均分成若干块数据块,并将数据块分散存储于所述存储设备中;
所述客户端还用于读取数据;所述分布式存储单元还用于从所述存储设备中提取数据对应的数据块,并在所述内存单元中对数据块进行缓冲,然后将数据块进行合并后发送给所述客户端进行读取;其中,数据块在所述内存单元进行缓冲时,所述分布式存储单元还用于在每一块数据块中提取所述客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给所述客户端进行读取;所述数据读写收集模块用于对实际内容数据大小进行记录,其中,各个实际内容数据大小是小于或等于其对应的数据块;
所述数据读写收集模块还用于对每一块数据块的实际内容数据大小进行记录并形成历史记录,在历史记录中得到每一块数据块的实际内容数据中最大的实际内容数据大小;
当所述数据读写收集模块形成历史记录后,所述客户端再一次读取数据时,所述分布式存储单元还用于从所述存储设备中提取数据对应的数据块,对每一块数据块,根据最大的实际内容数据大小在所述内存单元中进行缓冲;所述分布式存储单元还用于在每一块数据块中提取所述客户端所需读取的实际内容数据,并将各个实际内容数据进行合并后发送给所述客户端进行读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011097815.8A CN111930320B (zh) | 2020-10-14 | 2020-10-14 | 一种基于分布式存储数据的内存优化方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011097815.8A CN111930320B (zh) | 2020-10-14 | 2020-10-14 | 一种基于分布式存储数据的内存优化方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930320A CN111930320A (zh) | 2020-11-13 |
CN111930320B true CN111930320B (zh) | 2021-02-02 |
Family
ID=73334794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011097815.8A Active CN111930320B (zh) | 2020-10-14 | 2020-10-14 | 一种基于分布式存储数据的内存优化方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930320B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0935186A1 (en) * | 1998-02-06 | 1999-08-11 | NCR International, Inc. | Volume set configuration using a single operational view |
CN101188544A (zh) * | 2007-12-04 | 2008-05-28 | 浙江大学 | 分布式文件服务器基于缓冲区的文件传输方法 |
CN111208953A (zh) * | 2020-04-16 | 2020-05-29 | 广东睿江云计算股份有限公司 | 一种分布式存储方法及其装置 |
CN111737168A (zh) * | 2020-06-24 | 2020-10-02 | 华中科技大学 | 一种缓存系统、缓存处理方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9112890B1 (en) * | 2014-08-20 | 2015-08-18 | E8 Storage Systems Ltd. | Distributed storage over shared multi-queued storage device |
-
2020
- 2020-10-14 CN CN202011097815.8A patent/CN111930320B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0935186A1 (en) * | 1998-02-06 | 1999-08-11 | NCR International, Inc. | Volume set configuration using a single operational view |
CN101188544A (zh) * | 2007-12-04 | 2008-05-28 | 浙江大学 | 分布式文件服务器基于缓冲区的文件传输方法 |
CN111208953A (zh) * | 2020-04-16 | 2020-05-29 | 广东睿江云计算股份有限公司 | 一种分布式存储方法及其装置 |
CN111737168A (zh) * | 2020-06-24 | 2020-10-02 | 华中科技大学 | 一种缓存系统、缓存处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111930320A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8996799B2 (en) | Content storage system with modified cache write policies | |
US11372568B2 (en) | System and method for storing and accessing blockchain data | |
US8214581B2 (en) | System and method for cache synchronization | |
CN105511802A (zh) | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 | |
KR20090026296A (ko) | 예측 데이터 로더 | |
CN103226965B (zh) | 基于时间位图的音视频数据存取方法 | |
CN105677236B (zh) | 一种存储设备及其存储数据的方法 | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
GB2510523A (en) | Storage device access system | |
US10268717B2 (en) | System and method for reading file blocks | |
KR20170010810A (ko) | 플래시 메모리 내에 데이터를 판독/기록하기 위한 방법, 장치 및 사용자 장비 | |
US11550508B2 (en) | Semiconductor storage device and control method thereof | |
CN113360098A (zh) | 一种数据写入方法、装置、系统、电子设备及存储介质 | |
CN112954244A (zh) | 监控录像的存储实现方法、装置、设备及存储介质 | |
CN102243615A (zh) | 一种支持音视频帧存储的内存缓冲管理机制 | |
CN107122140A (zh) | 一种基于元数据信息的文件智能存储方法 | |
US20140115293A1 (en) | Apparatus, system and method for managing space in a storage device | |
CN111930320B (zh) | 一种基于分布式存储数据的内存优化方法及其系统 | |
CN113553325A (zh) | 一种对象存储系统中聚合对象的同步方法和系统 | |
US20140317354A1 (en) | Electronic device, data caching system and method | |
WO2022126551A1 (zh) | 一种时序数据的存储方法 | |
US20160371192A1 (en) | Apparatus and method for performing cache management in a storage system | |
KR101359034B1 (ko) | 네트워크 시스템에서 통계데이터를 저장하기 위한 장치 및방법 | |
CN112181973A (zh) | 一种时序数据的存储方法 | |
CN108984128B (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 |