CN107329695B - 一种分布式存储内存管理方法、系统及计算机存储介质 - Google Patents

一种分布式存储内存管理方法、系统及计算机存储介质 Download PDF

Info

Publication number
CN107329695B
CN107329695B CN201710480382.6A CN201710480382A CN107329695B CN 107329695 B CN107329695 B CN 107329695B CN 201710480382 A CN201710480382 A CN 201710480382A CN 107329695 B CN107329695 B CN 107329695B
Authority
CN
China
Prior art keywords
data
node
data block
file
version
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
CN201710480382.6A
Other languages
English (en)
Other versions
CN107329695A (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.)
Shanghai Qiniu Information Technology Co ltd
Original Assignee
Shanghai Qiniu Information Technology 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 Shanghai Qiniu Information Technology Co ltd filed Critical Shanghai Qiniu Information Technology Co ltd
Priority to CN201710480382.6A priority Critical patent/CN107329695B/zh
Publication of CN107329695A publication Critical patent/CN107329695A/zh
Priority to PCT/CN2018/079685 priority patent/WO2018233332A1/zh
Application granted granted Critical
Publication of CN107329695B publication Critical patent/CN107329695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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

一种分布式存储内存管理方法、系统及计算机存储介质
技术领域
本发明涉及存储技术领域,更具体的说,涉及一种分布式存储内存管理方法、系统及计算机存储介质。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布式存储系统中的,现有的内存管理方法对多台机器对文件进行读写操作无法高效的完成。
发明内容
本发明所要解决的技术问题是提供一种高效的分布式存储内存管理方法、系统及计算机存储介质。
本发明的目的是通过以下技术方案来实现的:
一种分布式存储内存管理方法,包括:
将内存管理模块分成多种大小不同的数据块类型;
在第一节点写入文件,并对所述文件设置租约,使所述文件与第一节点绑定;
在内存中,将文件对应一种数据块类型,并将文件在内存中分成一个或多个大小相同的数据块,同时生成数据块的访问上下文,所述访问上下文包括数据块导引和所属文件编码;
将所述数据块和访问上下文存储在第一节点并更新版本;
当在第二节点写入文件,所述文件的租约已被第一节点持有,则所述第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。
进一步的,还包括:
在第一节点分别从一个或多个数据块中读取数据;
如果数据在第一节点则直接读取;
如果数据在第二节点则向第二节点请求数据,请求数据后将数据缓存到第一节点并更新版本。
进一步的,所述请求数据后将数据缓存到第一节点并更新版本还包括:
请求数据后判断数据本地存储版本与全局版本;
如果数据版本为最新的版本则直接加载;
如果数据版本低于全局版本,则请求最新版本的数据,请求最新版本的数据后将数据缓存到第一节点。
进一步的,还包括:内存管理模块中设置工作数据块链和空闲数据块链;
对数据块进行操作,并将数据块根据状态插入工作数据块链或空闲数据块链;
将工作数据块链中的数据块释放后插入空闲数据块链;
从空闲数据块链中取出一个数据块放入工作数据块链。
进一步的,还包括:
按预设周期且按预设比例释放空闲数据块链中的数据块。
进一步的,所述对数据块进行操作包括:
将文件在内存中的单个数据块进行写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效中的至少一种操作。
进一步的,还包括:内存只读入文件部分数据块进行操作。
一种分布式存储内存管理系统,包括:
内存管理模块,用于将内存管理模块分成多种大小不同的数据块类型;
写入模块,用于在第一节点写入文件,并对所述文件设置租约,使所述文件与第一节点绑定;
内存处理模块,用于在内存中,将文件对应一种数据块类型,并将文件在内存中分成一个或多个大小相同的数据块,同时生成数据块访问上下文,所述访问上下文包括数据块导引和所属文件编码;
存储模块,用于将所述数据块和访问上下文存储在第一节点并更新版本;
所述写入模块还用于当在第二节点写入文件,所述文件的租约已被第一节点持有,则所述第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。
进一步的,所述系统还包括:
读取模块,用于在第一节点分别从一个或多个数据块中读取数据;如果数据在第一节点则直接读取;如果数据在第二节点则向第二节点请求数据,请求数据后将数据缓存到第一节点并更新版本。
进一步的,所述读取模块还用于请求数据后判断数据本地存储版本与全局版本;如果数据版本为最新的版本则直接加载;如果数据版本低于全局版本,则请求最新版本的数据,请求最新版本的数据后将数据缓存到第一节点。
进一步的,所述内存管理模块包括工作数据块链和空闲数据块链;还用于对数据块进行操作,并将数据块根据状态插入工作数据块链或空闲数据块链;
所述内存管理模块还用于将工作数据块链中的数据块释放后插入空闲数据块链;从空闲数据块链中取出一个数据块放入工作数据块链。
进一步的,所述内存管理模块还用于按预设周期且按预设比例释放空闲数据块链中的数据块。
进一步的,所述内存处理模块还用于将文件在内存中的单个数据块进行写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效中的至少一种操作。
一种计算机存储介质,所述计算机存储介质可存储有程序,所述程序执行包括上述任一项所述的步骤。
本发明由于在分布式存储中,单一文件存储在内存中被分割成一个或多个相同大小的数据块,在第一节点写入文件,并对文件设置租约,使文件与第一节点绑定;内存管理模块分多种大小的数据块类型,单一文件对应某种大小数据块类型,同时生成数据块的访问上下文,访问上下文包括数据块导引和所属文件编码;将数据块和访问上下文存储在第一节点并更新版本;当在第二节点写入文件,文件的租约已被第一节点持有,则第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。如此数据的写入是基于数据块的操作,而且因为文件写入后会与第一节点进行设置租约进行绑定,如果其他节点写入文件则都会并入第一节点,使文件能够支持随机写而不会出现问题。能够轻松应对并发乱序写操作。
附图说明
图1是本发明实施例的一种分布式存储内存管理方法的流程图;
图2是本发明实施例的一种内存中数据块申请与释放的方法的示意图;
图3是本发明实施例的一种写入文件方法的示意图;
图4是本发明实施例的一种向node A写入数据,但租约被node B持有时的处理方法的示意图;
图5是本发明实施例的一种从节点中读取数据的方法的示意图;
图6是本发明实施例的一种分布式存储内存管理系统的框图。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图和较佳的实施例对本发明作进一步说明。
如图1所示,一种分布式存储内存管理方法,包括步骤S110-S150。其中:
S110:将内存管理模块分成多种大小不同的数据块类型;
S120:在第一节点写入文件,并对所述文件设置租约,使所述文件与第一节点绑定;
S130:在内存中,将文件对应一种数据块类型,并将文件在内存中分成一个或多个大小相同的数据块,同时生成数据块的访问上下文,所述访问上下文包括数据块导引和所属文件编码;
S140:将所述数据块和访问上下文存储在第一节点并更新版本;
S150:当在第二节点写入文件,所述文件的租约已被第一节点持有,则所述第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。
本实施例由于在分布式存储中,数据的写入是基于数据块的操作,而且因为文件写入后会与第一节点进行设置租约进行绑定,如果其他节点写入文件则都会并入第一节点,使文件能够支持随机写而不会出现问题。能够轻松应对并发乱序写操作。使用租约概念归并对同一文件的写到一台机器上,从而实现一致性。使用版本号概念来实现跨网络读取缓存。
可选地,该方法还包括:
在第一节点分别从一个或多个数据块中读取数据;
如果数据在第一节点则直接读取;
如果数据在第二节点则向第二节点请求数据,请求数据后将数据缓存到第一节点并更新版本。
进一步的,所述请求数据后将数据缓存到第一节点并更新版本还包括:
请求数据后判断数据本地存储版本与全局版本;
如果数据版本为最新的版本则直接加载;
如果数据版本低于全局版本,则请求最新版本的数据,请求最新版本的数据后将数据缓存到第一节点。
本实施例由于在分布式存储中,数据的读取同样是基于数据块的操作,文件的读取节点如果持有租约即数据存储在该节点,则直接读取,如果数据在其他节点,则向其他节点申请数据读取,使数据统一,支持乱序读。读取数据时还设置版本判断机制,使读取的数据都是最新的。使文件在能够支持随机写的基础上支持随机读。
可选的,该方法还包括:
内存管理模块中设置工作数据块链和空闲数据块链;
对数据块进行操作,并将数据块根据状态插入工作数据块链或空闲数据块链;
将工作数据块链中的数据块释放后插入空闲数据块链;
从空闲数据块链中取出一个数据块放入工作数据块链。
本实施例由于文件分成多个数据块,分别对数据块进行操作,更加方便灵活,数据块加入工作数据块链和空闲数据块链,并且可以在工作数据块链和空闲数据块链之间进行转换,方便管理控制多个数据块和文件,从而使整个内存管理更加高效。
可选地,该方法还包括:对应多种数据块设置不同的块数量,利于内存的有效合理分配资源。
可选地,该方法还包括:按预设周期且按预设比例释放空闲数据块链中的数据块。
内存管理模块按预设周期且按预设比例释放空闲数据块链中的数据块,避免一直占用大量内存预设周期可以根据系统自动设置,也可以用户设置,预设比例可以根据系统自动设置,也可以用户设置。
其中,所述对数据块进行操作包括:将文件在内存中的单个数据块进行写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效中的至少一种操作。文件在内存中的单个数据块可被按照不同顺序做如下操作:写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效等。
可选地,该方法还包括:内存只读入文件部分数据块进行操作,提高效率。
分布式存储中节点角色分node、mds(meta data service),node负责具体读写,mds节点负责元数据管理以及协调node节点。
如图2所示,内存中数据块申请与释放的方法,具体包括:内存中的读模块、写模块,缓冲回收、数据同步到其他节点、从其他节点预读等操作,都会生成数据块访问上下文,该上下文包括数据块index(导引)和所示文件ID;然后进入内存数据块申请;接着结合LRU算法(LeastRecently Used近期最少使用算法)与访问上下文触发工作数据块链的数据块释放,数据释放后的数据块放入空闲数据块链;空闲数据块链向内存数据块申请申请数据块;工作数据块链还将数据按需求刷入物理存储,内存数据块申请还对工作数据块链和空闲数据块链按周期触发数据块释放。
在整个分布式系统中,数据流转的时候会基于数据块,可以避免各种模块之间的冲突。
如图3所示,写入文件具体包括:
向node节点写入文件。
node节点向mds节点申请文件写入租约。
node节点将文件分成数据块A、数据块B,还可以包括更多的数据块,本实施例仅举例两个数据块,但并不对数据块的数量进行限制。内存中生成多个块并向不同块写入数据块,如果本地存储不存在数据块内容则按读取流程从其他节点加载数据块。
数据块A和数据块B都按策略异步刷入磁盘并更新版本。
如图4所示,向node A写入数据,但租约被node B持有时的处理方法:
向node A节点写入数据。
node A节点向mds节点申请文件写入租约,但租约已被node B节点持有。
node A节点将文件分成数据块A和数据块B,还可以包括更多的数据块,本实施例仅举例两个数据块,但并不对数据块的数量进行限制。
数据块A和数据块B将数据块写入内容转发到node B节点。
node B节点然后将数据写入本地并更新文件版本。
如图5所示,从节点中读取数据的方法,具体包括:
在node A节点读取数据,分别从数据块A和数据块B读取数据,当然还可以包括更多的数据块,本实施例仅举例两个数据块,但并不对数据块的数量进行限制。
如果数据在节点B则向B节点请求数据。
如果本地没有存储该数据块,则判断文件本地存储版本与全局版本,如果文件版本为最新版本则直接加载到本地存储,如果文件本地存储版本低于全局版本,则向node B节点请求最新版本,然后node B请求文件后将数据缓存到本地,并记录版本号。
如果本地没有存储该数据块,则node B请求文件后将数据缓存到本地,并记录版本号。
本发明的另一优选实施例,一种分布式存储内存管理系统,包括内存管理模块210、写入模块220、内存处理模块230和存储模块240。
其中,内存管理模块210,用于将内存管理模块分成多种大小不同的数据块类型。
写入模块220,用于在第一节点写入文件,并对所述文件设置租约,使所述文件与第一节点绑定。
内存处理模块230,用于在内存中,将文件对应一种数据块类型,并将文件在内存中分成一个或多个大小相同的数据块,同时生成数据块访问上下文,所述访问上下文包括数据块导引和所属文件编码。
存储模块240,用于将所述数据块和访问上下文存储在第一节点并更新版本。
所述写入模块还用于当在第二节点写入文件,所述文件的租约已被第一节点持有,则所述第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。
本实施例由于在分布式存储中,数据的写入是基于数据块的操作,而且因为文件写入后会与第一节点进行设置租约进行绑定,如果其他节点写入文件则都会并入第一节点,使文件能够支持随机写而不会出现问题。能够轻松应对并发乱序写操作。使用租约概念归并对同一文件的写到一台机器上,从而实现一致性。使用版本号概念来实现跨网络读取缓存。
可选的,所述系统还包括读取模块,用于在第一节点分别从一个或多个数据块中读取数据;如果数据在第一节点则直接读取;如果数据在第二节点则向第二节点请求数据,请求数据后将数据缓存到第一节点并更新版本。
进一步的,所述读取模块还用于请求数据后判断数据本地存储版本与全局版本;如果数据版本为最新的版本则直接加载;如果数据版本低于全局版本,则请求最新版本的数据,请求最新版本的数据后将数据缓存到第一节点。
本实施例由于在分布式存储中,数据的读取同样是基于数据块的操作,文件的读取节点如果持有租约即数据存储在该节点,则直接读取,如果数据在其他节点,则向其他节点申请数据读取,使数据统一,支持乱序读。读取数据时还设置版本判断机制,使读取的数据都是最新的。使文件在能够支持随机写的基础上支持随机读。所述内存处理模块230包括工作数据块链和空闲数据块链;还用于对数据块进行操作,并将数据块根据状态插入工作数据块链或空闲数据块链;所述内存管理模块还用于将工作数据块链中的数据块释放后插入空闲数据块链;从空闲数据块链中取出一个数据块放入工作数据块链。
本实施例由于文件分成多个数据块,分别对数据块进行操作,更加方便灵活,数据块加入工作数据块链和空闲数据块链,并且可以在工作数据块链和空闲数据块链之间进行转换,方便管理控制多个数据块和文件,从而使整个内存管理更加高效。
可选地,所述内存处理模块还用于对应多种数据块设置不同的块数量,利于内存的有效合理分配资源。
可选地,所述内存处理模块还用于按预设周期且按预设比例释放空闲数据块链中的数据块。所述内存处理模块按预设周期且按预设比例释放空闲数据块链中的数据块,避免一直占用大量内存预设周期可以根据系统自动设置,也可以用户设置,预设比例可以根据系统自动设置,也可以用户设置。
可选地,所述内存处理模块还用于将文件在内存中的单个数据块进行写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效中的至少一种操作。文件在内存中的单个数据块可被按照不同顺序做如下操作:写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效等。
本发明的另一优选实施例,一种计算机存储介质,所述计算机存储介质可存储有程序,所述程序执行包括上述任一实施例所述的步骤。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (14)

1.一种分布式存储内存管理方法,其特征在于,包括:
将内存管理模块分成多种大小不同的数据块类型;
在第一节点写入文件,并对所述文件设置租约,使所述文件与第一节点绑定;
在内存中,将文件对应一种数据块类型,并将文件在内存中分成一个或多个大小相同的数据块,同时生成数据块的访问上下文,所述访问上下文包括数据块导引和所属文件编码;
将所述数据块和访问上下文存储在第一节点并更新版本;
当在第二节点写入文件,所述文件的租约已被第一节点持有,则所述第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。
2.如权利要求1所述的一种分布式存储内存管理方法,其特征在于,还包括:
在第一节点分别从一个或多个数据块中读取数据;
如果数据在第一节点则直接读取;
如果数据在第二节点则向第二节点请求数据,请求数据后将数据缓存到第一节点并更新版本。
3.如权利要求2所述的一种分布式存储内存管理方法,其特征在于,所述请求数据后将数据缓存到第一节点并更新版本还包括:
请求数据后判断数据本地存储版本与全局版本;
如果数据版本为最新的版本则直接加载;
如果数据版本低于全局版本,则请求最新版本的数据,请求最新版本的数据后将数据缓存到第一节点。
4.如权利要求1所述的一种分布式存储内存管理方法,其特征在于,还包括:内存管理模块中设置工作数据块链和空闲数据块链;
对数据块进行操作,并将数据块根据状态插入工作数据块链或空闲数据块链;
将工作数据块链中的数据块释放后插入空闲数据块链;
从空闲数据块链中取出一个数据块放入工作数据块链。
5.如权利要求4所述的一种分布式存储内存管理方法,其特征在于,还包括:按预设周期且按预设比例释放空闲数据块链中的数据块。
6.如权利要求4所述的一种分布式存储内存管理方法,其特征在于,所述对数据块进行操作包括:
将文件在内存中的单个数据块进行写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效中的至少一种操作。
7.如权利要求1所述的一种分布式存储内存管理方法,其特征在于,还包括:内存只读入文件部分数据块进行操作。
8.一种分布式存储内存管理系统,其特征在于,包括:
内存管理模块,用于将内存管理模块分成多种大小不同的数据块类型;
写入模块,用于在第一节点写入文件,并对所述文件设置租约,使所述文件与第一节点绑定;
内存处理模块,用于在内存中,将文件对应一种数据块类型,并将文件在内存中分成一个或多个大小相同的数据块,同时生成数据块访问上下文,所述访问上下文包括数据块导引和所属文件编码;
存储模块,用于将所述数据块和访问上下文存储在第一节点并更新版本;
所述写入模块还用于当在第二节点写入文件,所述文件的租约已被第一节点持有,则所述第一节点接收从第二节点转发的文件,并将所述文件写入第一节点的本地存储并更新版本。
9.如权利要求8所述的一种分布式存储内存管理系统,其特征在于,所述系统还包括:
读取模块,用于在第一节点分别从一个或多个数据块中读取数据;如果数据在第一节点则直接读取;如果数据在第二节点则向第二节点请求数据,请求数据后将数据缓存到第一节点并更新版本。
10.如权利要求9所述的一种分布式存储内存管理系统,其特征在于,所述读取模块还用于请求数据后判断数据本地存储版本与全局版本;如果数据版本为最新的版本则直接加载;如果数据版本低于全局版本,则请求最新版本的数据,请求最新版本的数据后将数据缓存到第一节点。
11.如权利要求8所述的一种分布式存储内存管理系统,其特征在于,所述内存管理模块包括工作数据块链和空闲数据块链;还用于对数据块进行操作,并将数据块根据状态插入工作数据块链或空闲数据块链;所述内存管理模块还用于将工作数据块链中的数据块释放后插入空闲数据块链;从空闲数据块链中取出一个数据块放入工作数据块链。
12.如权利要求11所述的一种分布式存储内存管理系统,其特征在于,所述内存管理模块还用于按预设周期且按预设比例释放空闲数据块链中的数据块。
13.如权利要求8所述的一种分布式存储内存管理系统,其特征在于,所述内存处理模块还用于将文件在内存中的单个数据块进行写、读、释放、刷入磁盘、同步到网络中、删除、更新文件大小、版本失效中的至少一种操作。
14.一种计算机存储介质,其特征在于,所述计算机存储介质可存储有程序,所述程序执行包括如权利要求1-7中任一项所述的方法。
CN201710480382.6A 2017-06-22 2017-06-22 一种分布式存储内存管理方法、系统及计算机存储介质 Active CN107329695B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710480382.6A CN107329695B (zh) 2017-06-22 2017-06-22 一种分布式存储内存管理方法、系统及计算机存储介质
PCT/CN2018/079685 WO2018233332A1 (zh) 2017-06-22 2018-03-20 一种分布式存储内存管理方法、系统及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710480382.6A CN107329695B (zh) 2017-06-22 2017-06-22 一种分布式存储内存管理方法、系统及计算机存储介质

Publications (2)

Publication Number Publication Date
CN107329695A CN107329695A (zh) 2017-11-07
CN107329695B true CN107329695B (zh) 2020-03-20

Family

ID=60194386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710480382.6A Active CN107329695B (zh) 2017-06-22 2017-06-22 一种分布式存储内存管理方法、系统及计算机存储介质

Country Status (2)

Country Link
CN (1) CN107329695B (zh)
WO (1) WO2018233332A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329695B (zh) * 2017-06-22 2020-03-20 上海七牛信息技术有限公司 一种分布式存储内存管理方法、系统及计算机存储介质
CN109710194A (zh) * 2018-12-29 2019-05-03 武汉思普崚技术有限公司 上传文件的存储方法及装置
CN111752919A (zh) * 2020-06-16 2020-10-09 北京字节跳动网络技术有限公司 一种数据写入方法、数据读取方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188569A (zh) * 2006-11-16 2008-05-28 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
CN102622284A (zh) * 2012-02-21 2012-08-01 上海交通大学 面向海量存储系统的数据异步复制方法
CN104516967A (zh) * 2014-12-25 2015-04-15 国家电网公司 一种电力系统海量数据管理系统及其使用方法
CN106445409A (zh) * 2016-09-13 2017-02-22 郑州云海信息技术有限公司 一种分布式块存储的数据写入方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577500B (zh) * 2012-08-10 2018-07-27 腾讯科技(深圳)有限公司 分布式文件系统进行数据处理的方法及该分布式文件系统
US9633041B2 (en) * 2013-09-26 2017-04-25 Taiwan Semiconductor Manufacturing Co., Ltd. File block placement in a distributed file system network
US10264071B2 (en) * 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
CN107329695B (zh) * 2017-06-22 2020-03-20 上海七牛信息技术有限公司 一种分布式存储内存管理方法、系统及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188569A (zh) * 2006-11-16 2008-05-28 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
CN102622284A (zh) * 2012-02-21 2012-08-01 上海交通大学 面向海量存储系统的数据异步复制方法
CN104516967A (zh) * 2014-12-25 2015-04-15 国家电网公司 一种电力系统海量数据管理系统及其使用方法
CN106445409A (zh) * 2016-09-13 2017-02-22 郑州云海信息技术有限公司 一种分布式块存储的数据写入方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《BlueOcean海量存储系统客户端的设计与实现》;王皓;《BlueOcean海量存储系统客户端的设计与实现》;中国优秀硕士学位论文全文数据库信息科技辑;20120715(第07期);第9-18页 *

Also Published As

Publication number Publication date
CN107329695A (zh) 2017-11-07
WO2018233332A1 (zh) 2018-12-27

Similar Documents

Publication Publication Date Title
US10795788B2 (en) Remote data replication method and system
US11301379B2 (en) Access request processing method and apparatus, and computer device
JP6044539B2 (ja) 分散ストレージシステムおよび方法
US8074041B2 (en) Apparatus, system, and method for managing storage space allocation
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN113220729B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN109582686B (zh) 分布式元数据管理一致性保证方法、装置、系统及应用
CN107832423B (zh) 一种用于分布式文件系统的文件读写方法
CN107329695B (zh) 一种分布式存储内存管理方法、系统及计算机存储介质
CN110515557B (zh) 一种集群管理方法、装置、设备及可读存储介质
CN103780638A (zh) 数据同步方法及系统
CN102541757A (zh) 写缓存方法、缓存同步方法和装置
CN103516549B (zh) 一种基于共享对象存储的文件系统元数据日志机制
CN110750372B (zh) 基于共享内存的日志系统及日志管理方法
CN104346373A (zh) 分区日志队列同步管理方法及设备
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
CN114063883B (zh) 存储数据方法、电子设备和计算机程序产品
CN104965835B (zh) 一种分布式文件系统的文件读写方法及装置
CN106104515A (zh) 利用非易失性存储器的文件系统设计和故障恢复方法
KR20110046118A (ko) 적응적 로깅 장치 및 방법
CN111414134A (zh) 面向持久内存文件系统的事务写优化框架的方法及系统
CN106873902B (zh) 一种文件存储系统、数据调度方法及数据节点
CN110134551B (zh) 一种持续数据保护方法及装置
CN111444114B (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