CN114063888A - 数据存储***、数据处理方法、终端及存储介质 - Google Patents
数据存储***、数据处理方法、终端及存储介质 Download PDFInfo
- Publication number
- CN114063888A CN114063888A CN202010763506.3A CN202010763506A CN114063888A CN 114063888 A CN114063888 A CN 114063888A CN 202010763506 A CN202010763506 A CN 202010763506A CN 114063888 A CN114063888 A CN 114063888A
- Authority
- CN
- China
- Prior art keywords
- data
- type
- memory
- hard disk
- class
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 92
- 238000013500 data storage Methods 0.000 title claims abstract description 39
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 230000015654 memory Effects 0.000 claims abstract description 175
- 238000000034 method Methods 0.000 claims description 37
- 239000007787 solid Substances 0.000 claims description 18
- 238000004220 aggregation Methods 0.000 claims description 13
- 230000002776 aggregation Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 239000000725 suspension Substances 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000004891 communication 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
- 238000009826 distribution Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种数据存储***、数据处理方法、终端及存储介质。该数据存储***包括:至少一个工作节点;工作节点包括:内存,用于存储第一类数据;第一类硬盘,用于存储部分第一类数据和/或第二类数据;第二类数据的读写频次低于所述第一类数据的读写频次;第二类硬盘,用于存储第三类数据;其中,第一类硬盘的读取速率,高于第二类硬盘的读取速率;第三类数据的读写频次低于所述第二类数据的读写频次。如此在数据应用中,可方便地对直接从内存中中调取频繁调取高频次应用的数据,从而提高***对热点数据的处理效率。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据存储***、数据处理方法、终端及存储介质。
背景技术
随着互联网时代的发展,人们需要获取的数据成指数倍增长。大量数据在工程中得到应用。与此同时,对于大量数据的存储也逐渐变成工程应用中需要解决的问题。按照传统的数据存储方式,单纯通过增加硬盘个数来扩展计算机文件***的存储容量,这在容量大小、容量增长速度等方面的变现显得差强人意。尤其在存储有大量数据时,根据工程需要调取经常使用的关键数据时,效率较低。
发明内容
有鉴于此,本公开实施例期望提供一种数据存储***、数据处理方法、终端及存储介质。
本公开的技术方案是这样实现的:
本公开提供一种数据存储***。
本公开实施例提供的数据存储***,包括:
至少一个工作节点;
所述工作节点包括:
内存,用于存储第一类数据;
第一类硬盘,用于存储部分所述第一类数据和/或第二类数据;所述第二类数据的读写频次低于所述第一类数据的读写频次;
第二类硬盘,用于存储第三类数据;其中,所述第一类硬盘的读取速率,高于所述第二类硬盘的读取速率;所述第三类数据的读写频次低于所述第二类数据的读写频次。
在一些实施例中,所述第一类硬盘包括:固态硬盘;所述第二类硬盘包括:机械硬盘。
在一些实施例中,所述第一类硬盘,具体用于存储数据量大于第一阈值的所述第一类数据及所述第二类数据,其中,所述第一阈值为根据所述工作节点的内存空间的容量确定的预设值。
在一些实施例中,所述***还包括:
调度节点,用于根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据;并根据控制划分的数据类型,调度一个或多个所述工作节点的所述内存、所述第一类硬盘及所述第二类硬盘分别进行所述第一类数据、所述第二类数据及所述第三类数据的存储。
在一些实施例中,所述调度节点,与客户端建立有网络连接,用于接收所述客户端发送的读取请求;在根据所述读取请求确定出所述客户端请求读取一个或多个完整的数据块时,根据所述工作节点的负载率,选择空闲的所述工作节点响应所述读取请求;和/或,在根据所述读取请求确定出所述客户端请求读取一个数据块中的部分数据时,向响应所述读取请求的工作节点发送暂停指令及读取指令;所述暂停指令,用于控制所述工作节点暂停在所述内存内缓存数据,并相应所述读取指令将读取的数据返回给所述客户端。
在一些实施例中,所述调度节点,还用于从所述客户端接收申请存储空间的请求;根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量不小于请求的空间容量时,利用剩余的内存资源分配给所述客户端;和/或,在确定出所述工作节点中有所述内存空间量小于请求的空间容量时,将所述内存内访问频次最低的所述第一类数据转移到所述第一类硬盘,释放部分所述内存的存储空间,利用所述内存释放的所述存储空间,分配给所述客户端。
在一些实施例中,所述调度节点,还用于将数据量大于第二阈值的超数据块,拆分多个数据块,并调度多个工作节点中的内存分别存储拆分后不同的所述数据块。
在一些实施例中,所述调度节点,还用于接收到所述客户端读取所述超数据块的读取请求时,将所述读取请求拆分成多个子任务,分别调度多个所述工作节点响应所述子任务;并将多工作节点读取的数据块在聚合队列中聚合后,返回给所述客户端。
另一方面,本公开还提供一种数据处理方法。
本公开实施例提供的数据处理方法,应用于所述数据存储***的调度节点,所述方法包括:
按照数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据;其中,所述第二类数据的数据量大于所述第一类数据的数据量;所述第三类数据的读写频次低于所述第二类数据的读写频;
调度工作节点的内存存储所述第一类数据;
调度所述工作节点的第一类硬盘存储将部分所述第一类数据和/或所述第二类数据;
调度所述工作节点的第二类硬盘存储所述第三类数据;其中,所述第一类硬盘的读取速率,高于所述第二类硬盘的读取速率。
在一些实施例中,所述调度所述工作节点的第一类硬盘存储将部分所述第一类数据和/或所述第二类数据,包括:
将存储数据量大于第一阈值的所述第一类数据,存储到所述第一类硬盘,其中,所述第一阈值为根据所述工作节点的内存空间的容量确定的预设值;
将所述第二类数据存储到所述第一类硬盘。
在一些实施例中,所述按照数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据,包括:
调度节点根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据;
所述方法还包括:
所述调度节点,根据控制划分的数据类型,调度一个或多个所述工作节点的所述内存、所述第一类硬盘及所述第二类硬盘,分别进行所述第一类数据、所述第二类数据及所述第三类数据的存储。
在一些实施例中,还包括:
所述调度节点接收客户端发送的读取请求;
根据所述读取请求确定出所述客户端请求读取一个或多个完整的数据块时,根据所述工作节点的负载率,选择空闲的所述工作节点响应所述读取请求;
和/或,
根据所述读取请求确定出所述客户端请求读取一个数据块中的部分数据时,向响应所述读取请求的工作节点发送暂停指令及读取指令;其中,所述暂停指令,用于控制所述工作节点暂停在所述内存内缓存数据,并相应所述读取指令将读取的数据返回给所述客户端。
在一些实施例中,还包括:
接收所述客户端发送的申请存储空间的请求;
根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量不小于请求的空间容量时,利用剩余的内存资源分配给所述客户端;
和/或,
根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量小于请求的空间容量时,控制所述工作节点将所述内存内访问频次最低的所述第一类数据转移到所述第一类硬盘,释放部分所述内存的存储空间,并利用所述内存释放的所述存储空间,分配给所述客户端。
又一方面,本公开还提供一种终端。
本公开实施例提供的终端,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行另一方面本公开实施例提供的数据处理方法的步骤。
再一方面,本公开还提供一种计算机可读存储介质。
本公开实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现另一方面本公开实施例提供的数据处理方法的步骤。本公开实施例对工作节点中的内存、第一类硬盘、第二类硬盘进行数据分类存储,按照***对数据读写频次的高低,在内存中存储第一类数据,在第一类硬盘中存储第一类数据和/或第二类数据,在第二类硬盘中存储第三类数据,其中,第三类数据的读写频次低于第二类数据的读写频次,第二类数据的读写频次低于第一类数据的读写频次。由于***在对数据读写时是直接对内存中的数据进行读写,基于内存去调用硬盘中存储的数据,再对数据进行读写。基于此,将经常被读写的高频次的第一类数据存储在内存中,以使得在数据应用中,***对数据进行大量读写时,可方便地对直接从内存中中调取频繁调取高频次应用的数据,从而提高***对热点数据的处理效率。
附图说明
图1是根据一示例性实施例示出的数据存储***结构示意图;
图2是根据一示例性实施例示出的数据处理方法流程图;
图3是根据一示例性实施例示出的选择性热点分割缓存调度方法流程图;
图4是根据一示例性实施例示出的使用本技术统计的生产集群中冷热数据的数据大小及其概率分布示意图;
图5是根据一示例性实施例示出的分层式大数据存储***架构示意图;
图6是根据一示例性实施例示出的分层式大数据存储***缓存调度示意图;
图7是根据一示例性实施例示出的文件分割示意图;
图8是根据一示例性实施例示出的分叉-聚合队列模型示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
大数据存储***可是基于磁盘存储的分布式文件***HDFS(Hadoop DistributedFile System,分布式文件***)。HDFS在存储大量文件及单个大文件具有特有优势,其支持流式文件访问,文件只需一次写入便可多次读取访问。当集群设置在不同的机器上,数据存储有多个备份,一个节点宕机或读取文档出错***会调用其他节点上的备份文件保证程序顺利运行。***各节点间动态的移动数据,使数据可在节点间进行并发处理,保证节点的动态平衡,集群通过节点的拓展完成集群的扩大。分布式***中数据库多采用LIRS(LowInter-reference Recency Set,低参考集页替换算法)算法实现数据缓存机制。LIRS算法主要通过IRR和Recency两个参数实现数据缓存,使用IRR参数表示一个页面最近两次的访问间隔,使用Recency参数表示上次访问至今访问了多少其他页。针对数据的近期更迭给出缓存策略。LIRS算法通过比较IRR来决定哪些数据块被替换出cache,通过LIRS实现一个低开销,不需额外参数设置的cache高速缓冲存储器替换算法。其中,IRR(Inter-ReferenceRecency)表示同一块连续两次访问期中间访问过的不重复块数。
分布式集群中的工作节点由于内存资源有限,对于存储在本地的大量数据,可能出现被查询数据无法一次全部加载入内存的情况,而多次内存与磁盘间的数据传输又会增加查询任务的执行时间,降低查询效率。对于一些轻量级数据管理业务而言,数据库查询请求多数为其中一些关键数据属性的频繁查询处理。并且现代数据中心网络的大幅提速,HDFS基于硬盘的文件数据存储***在大规模数据场景下的读写操作变为一种性能瓶颈,其多副本机制也带来了额外的读写和网络通信开销,无法满足实时或准实时大数据分析处理的应用需求。
为克服基于磁盘的分布式文件***性能的不足,本申请在使用分层式的存储架构基础上,将内存计算与存储引入到文件***层面以充分利用分布式内存存储来改变数据读写性能,通过在内存中缓存数据对象,在数据读写密集型的应用场景下可比传统使用磁盘的解决方案获得数量级程度的性能提升。在数据装载内存过程中,将频繁处理的属性数据尽量载入内存作为主要目标,能够调高频繁数据的查询机会,获得相比于LIRS算法命中率更高的缓存数据,从而提高热点数据的处理效率。
本公开提供一种数据存储***。图1是根据一示例性实施例示出的数据存储***结构示意图。如图1所示,该数据存储***包括:
至少一个工作节点;
所述工作节点包括:
内存11,用于存储第一类数据;
第一类硬盘12,用于存储部分所述第一类数据和/或第二类数据;所述第二类数据的读写频次低于所述第一类数据的读写频次;
第二类硬盘13,用于存储第三类数据;其中,所述第一类硬盘的读取速率,高于所述第二类硬盘的读取速率;所述第三类数据的读写频次低于所述第二类数据的读写频次。
在本示例性实施例中,数据存储***可以划分为内存-第一类硬盘-第二类硬盘的三层存储***。该三层存储***优先存储上述三类数据。
在一些实施例中,所述第一类硬盘包括:固态硬盘;所述第二类硬盘包括:机械硬盘。
在本示例性实施例中,第一类硬盘可以是数据读写数量相对较高的固态硬盘。固态硬盘的数据读写速率可在500MB/S以上。第一类硬盘可以是机械硬盘。
在本示例性实施例中,对工作节点中的内存、第一类硬盘、第二类硬盘进行数据分类存储。按照***对数据读写频次的高低,在内存中存储第一类数据,在第一类硬盘中存储第一类数据和/或第二类数据,在第二类硬盘中存储第三类数据,其中,第三类数据的读写频次低于第二类数据的读写频次,第二类数据的读写频次低于第一类数据的读写频次。
由于***在对数据读写时是直接对内存中的数据进行读写,基于内存去调用硬盘中存储的数据,再对数据进行读写。基于此,将经常被读写的高频次的第一类数据存储在内存中,以使得在数据应用中,***对数据进行大量读写时,可方便地对直接从内存中中调取频繁调取高频次使用的数据,从而提高***对热点数据的处理效率。
在本示例性实施例中,上述第一类数据可以是热点数据。
在本示例性实施例中,数据存储***还包括底层文件***,用于存储除上述三类数据以外的第四类数据,第四类数据为应用频次最低的底层数据。
在一些实施例中,所述第一类硬盘,具体用于存储数据量大于第一阈值的所述第一类数据及所述第二类数据,其中,所述第一阈值为根据所述工作节点的内存空间的容量确定的预设值。
在本示例性实施例中,由于内存的存储容量有限,因此当第一类数据的数据量大于第一阈值时,可将内存中存储不下的第一类数据存储在第一类硬盘内。第一阈值为根据工作节点的内存空间的容量确定的预设值。该预设值可设置在***内。在进行数据量比较时,***可自动调取该阈值,从而通过阈值比较方便对数据进行存储空间分配以进行数据存储。
其中,第一阈值与内存空间的容量大小可存在一定的比例关系了。例如,第一阈值可以是小于一个工作节点的1/3或小于1/4内存容量的容量值。
在一些实施例中,所述***还包括:
调度节点,用于根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据;并根据控制划分的数据类型,调度一个或多个所述工作节点的所述内存、所述第一类硬盘及所述第二类硬盘分别进行所述第一类数据、所述第二类数据及所述第三类数据的存储。
在本示例性实施例中,数据存储***中还包括调度节点,该调度节点可以是控制器或成为主节点(master)。该调度节点根据存储数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据,并将各类型数据分别存储在内存、第一类硬盘及所述第二类硬盘中。例如,第一类数据存储在内存中,第二类数据和内存中存不下的第一类数据存储在第一类硬盘中,第三类数据存储在第三类硬盘中。
在本示例性实施例中,根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据,包括:
持续性监测存储***内存储数据的读写频次,以预设时间段为周期,进行周期性数据划分,为所述第一类数据、所述第二类数据及所述第三类数据,或,
当监测到数据读写频次变化超过上次数据划分时的读写频次的预设百分比时,则对数据进行重新划分调整。例如,此次数据划分前的某一数据的读写频次为s,当监测到该数据的读写频次变成s的50%或200%时,则对数据进行重新划分调整。通过动态划分数据类型,可及时根据数据读写频次变化调整数据类型进行对应存储,有利于读写频次高的数据及时存储在内存中,以便于读写,提高***对热点数据的处理效率。
在一些实施例中,还包括统计数据读写频次或热度的方法,包括:
对集群服务器中的所有日志进行归集,并获取一定时间段内的各个数据文件的访问记录;
基于各个数据文件的访问记录,获取各个数据文件的访问频次;
对各个数据文件的访问频次进行从高到低进行排序,形成数据读写频次排布表,排布表中包括多个读写频次,每个读写频次对应着相应的访问文件;
基于各个读写频次对应的访问文件,获取各个读写频次对应的文件平均大小。
在一些实施例中,还包括:
对排布表中各个文件的数据对应的最高频次进行排序,并获取各个读写频次数据分别对应的文件大小,以及排布表中总文件大小;
基于各个读写频次数据分别对应的文件大小以及总文件大小,获取各个读写频次数据对应的数据热度。例如,各个频次数据对应的文件大小为M1、M2、M3、M4……Mn,总文件大小为Ma,则各个频次数据热度为Ri=Mi/Ma。
在本示例性实施例中,工作节点可以是一个或多个。每个工作节点均包括内存、第一类硬盘及第二类硬盘。在具体应用时,多个工作节点之间可以相互连通。在数据读写时,不同工作点之间的硬盘和内存可以相互进行数据传递,以及***可以同时对多个工作节点的内存中存储的数据进行读写。例如,当需要对一个工作节点的第二类硬盘中存储的第二类数据进行读写时,此时该第二类数据的数据量远大于内存的存储容量,则可通过将该第二类硬盘中的部分第二类数据同步调取到其他的工作节点中的内存中进行读写操作,如此可在单位时间内提高整个***的数据处理效率。
在一些实施例中,所述调度节点,与客户端建立有网络连接,用于接收所述客户端发送的读取请求;在根据所述读取请求确定出所述客户端请求读取一个或多个完整的数据块时,根据所述工作节点的负载率,选择空闲的所述工作节点响应所述读取请求;和/或,在根据所述读取请求确定出所述客户端请求读取一个数据块中的部分数据时,向响应所述读取请求的工作节点发送暂停指令及读取指令;所述暂停指令,用于控制所述工作节点暂停在所述内存内缓存数据,并相应所述读取指令将读取的数据返回给所述客户端。
在本示例性实施例中,当调度节点获取客户端发送的多个读取请求时,可根据读取请求指令中需要读取的数据的读写频次,由高到低对读取请求进行排序,然后调度节点根据排列好的读取请求指令,去依次读取相应的数据。由于在存储***中,数据是根据读写频次进行分类存储,高读写频次的数据优先存储在内存中。因此,在按照读写频次由高到低的顺序进行读取时,可优先从内存中直接读取数据,从而可整体上提高***的数据读取效率。
在本示例性实施例中,调度节点可以与客户端建立网络连接,通过网络连接接收客户端发送的读取请求。客户端发送的读取请求可包括读取一个或多个完整的数据块的读取请求、读取一个数据块中的部分数据的读取请求。
在本示例性实施例中,当调度节点接收的是一个或多个完整的数据块的读取请求时,调度节点分析各个工作节点的数据负载率,选择空闲的工作节点响应该读取请求,或同等负载率中的数据存储空间空闲较多的工作节点响应该读取请求,以在完成读取请求响应的同时实现各个工作节点的负载均衡。
在本示例性实施例中,还包括:当读取请求确定出所述客户端请求读取一个数据块中的部分数据或以预定顺序以外的顺序读取内存时,则通过暂停指令控制工作节点暂停在所述内存内缓存数据,并响应读取指令将读取的数据返回给所述客户端。例如,当某个工作节点正在内存内缓存数据,此时接收到客户端发送的一个数据块中的部分数据或以预定顺序以外的顺序读取内存的请求时,则该工作节点优先处理客户端的此请求,暂停正在进行的存储任务,以使得客户端关于一个数据块中的部分数据或以预定顺序以外的顺序读取内存的请求得到及时处理。
在一些实施例中,所述调度节点,还用于从所述客户端接收申请存储空间的请求;根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量不小于请求的空间容量时,利用剩余的内存资源分配给所述客户端;和/或,在确定出所述工作节点中有所述内存空间量小于请求的空间容量时,将所述内存内访问频次最低的所述第一类数据转移到所述第一类硬盘,释放部分所述内存的存储空间,利用所述内存释放的所述存储空间,分配给所述客户端。
在本示例性实施例中,调度节点还可以接收客户端发送的申请存储空间的请求。调度节点接收到申请存储空间的请求后,会对各个工作节点的内存空间中的剩余存储空间量与存储空间的申请量进行比较,将满足存储空间申请量的工作节点的未被数据占用的内存空间优先分配给客户端。如果所有工作节点中的内存空间的剩余存储空间均不满足,则将其中一个工作节点的内存内访问频次最低的第一类数据转移到第一类硬盘,释放部分内存的存储空间,将内存释放的存储空间,分配给客户端,以满足客户端的存储空间申请。
在一些实施例中,所述调度节点,还用于将数据量大于第二阈值的超数据块,拆分多个数据块,并调度多个工作节点中的内存分别存储拆分后不同的所述数据块。
在本示例性实施例中,第二阈值为根据所述工作节点的内存空间的容量确定的数据拆分预设值。数据块的数据量超过第二阈值即被判断为超数据块。此时,将该超数据块拆分为多个数据量较小的数据块,并将多个数据块存储到多个工作节点的内存空间中,从而实现数据量较大的超数据块存储。
在将多个数据块存储到多个工作节点的内存空间中可通过对多个数据块按照数据的相互衔接进行队列排序,按照次序依次分别存储到同样队列排序的工作节点的存储空间内。其中,队列排序的工作节点的存储空间可以是多个工作节点中的彼此相邻的内存空间。
在一些实施例中,所述调度节点,还用于接收到所述客户端读取所述超数据块的读取请求时,将所述读取请求拆分成多个子任务,分别调度多个所述工作节点响应所述子任务;并将多工作节点读取的数据块在聚合队列中聚合后,返回给所述客户端。
在本示例性实施例中,调度节点还可以接收客户端发送的读取超数据块的读取请求。同时将该读取请求拆分成多个子任务,根据各个子任务分别调度多个工作节点响应子任务,以在对应的各个工作节点的存储空间内读取所需要读取的数据,并通过聚合队列将读取的数据聚合,以实现对客户端发送的超数据块的读取请求的响应。其中,聚合队列可以是分叉-聚合队列。如此,将读取请求分叉为多个子任务,将子任务分发至多个工作节点,并将所有读取结果合并成源文件完成超大数据的读取,从而通过保证各种大小的数据块的读取效率来提高超数据块的读取效率。
上述超数据块的拆分和聚合是一个正向和逆向的过程,超数据块的拆分可以是根据超数据中数据排列顺序依次直接拆分成多个数据块进行有序存储。同时,通过多个子任务进行调取数据进行聚合时,也可以通过超数据块的拆分顺序进行有序聚合。例如,一个超数据块按照顺序被依次拆分为第一至第五数据块,当数据聚合时,也可以按照从第一到第五的顺序进行顺序聚合。
本公开还提供一种数据处理方法。
图2是根据一示例性实施例示出的数据处理方法流程图。如图2所示,本公开实施例提供的数据处理方法,应用于所述数据存储***的调度节点,所述方法包括:
步骤20、按照数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据;其中,所述第二类数据的读写频次低于所述第一类数据的读写频次;所述第三类数据的读写频次低于所述第二类数据的读写频;
步骤21、调度工作节点的内存存储所述第一类数据;
步骤22、调度所述工作节点的第一类硬盘存储将部分所述第一类数据和/或所述第二类数据;
步骤23、调度所述工作节点的第二类硬盘存储所述第三类数据;其中,所述第一类硬盘的读取速率,高于所述第二类硬盘的读取速率。
在本示例性实施例中,按照对数据读写频次的高低,将数据划分为第一类数据、第二类数据及第三类数据,将第一类数据存储到工作节点的内存;将部分第一类数据和/或第二类数据,存储到工作节点的第一类硬盘;将第三类数据存储到工作节点的第二类硬盘,其中,第三类数据的读写频次低于第二类数据的读写频次,第二类数据的读写频次低于第一类数据的读写频次。
由于***在对数据读写时是直接对内存中的数据进行读写,基于内存去调用硬盘中存储的数据,再对数据进行读写。基于此,将经常被读写的高频次的第一类数据存储在内存中,以使得在数据应用中,***对数据进行大量读写时,可方便地对直接从内存中中调取频繁调取高频次应用的数据,从而提高***对热点数据的处理效率。
在一些实施例中,所述调度所述工作节点的第一类硬盘存储将部分所述第一类数据和/或所述第二类数据,包括:
将存储数据量大于第一阈值的所述第一类数据,存储到所述第一类硬盘,其中,所述第一阈值为根据所述工作节点的内存空间的容量确定的预设值;
将所述第二类数据存储到所述第一类硬盘。
在本示例性实施例中,由于内存的存储容量有限,因此当第一类数据的数据量大于第一阈值时,可将内存中存储不下的第一类数据存储在第一类硬盘内。第一阈值为根据工作节点的内存空间的容量确定的预设值。该预设值可设置在***内。在进行数据量比较时,***可自动调取该阈值,从而通过阈值比较方便对数据进行存储空间分配以进行数据存储。
在一些实施例中,所述按照数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据,包括:
调度节点根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据;
所述方法还包括:
所述调度节点,根据控制划分的数据类型,调度一个或多个所述工作节点的所述内存、所述第一类硬盘及所述第二类硬盘,分别进行所述第一类数据、所述第二类数据及所述第三类数据的存储。
在本示例性实施例中,数据存储***中还包括调度节点,该调度节点可以是控制器。该调度节点根据存储数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据,并将各类型数据分别存储在内存、第一类硬盘及所述第二类硬盘中。例如,第一类数据存储在内存中,第二类数据和内存中存不下的第一类数据存储在第一类硬盘中,第三类数据存储在第三类硬盘中。
在一些实施例中,还包括:
所述调度节点接收客户端发送的读取请求;
根据所述读取请求确定出所述客户端请求读取一个或多个完整的数据块时,根据所述工作节点的负载率,选择空闲的所述工作节点响应所述读取请求;
和/或,
根据所述读取请求确定出所述客户端请求读取一个数据块中的部分数据时,向响应所述读取请求的工作节点发送暂停指令及读取指令;其中,所述暂停指令,用于控制所述工作节点暂停在所述内存内缓存数据,并相应所述读取指令将读取的数据返回给所述客户端。
在本示例性实施例中,调度节点可以与客户端建立网络连接,通过网络连接接收客户端发送的读取请求。客户端发送的读取请求可包括读取一个或多个完整的数据块的读取请求、读取一个数据块中的部分数据的读取请求、和/或预定顺序的数据读取请求。
在本示例性实施例中,当调度节点接收的是一个或多个完整的数据块的读取请求时,调度节点分析各个工作节点的数据负载率,选择空闲的工作节点响应该读取请求,或同等负载率中的数据存储空间冗余较大的工作节点响应该读取请求,以提高***对客户端数据读取请求的处理效率。
在一些实施例中,还包括:
接收所述客户端发送的申请存储空间的请求;
根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量不小于请求的空间容量时,利用剩余的内存资源分配给所述客户端;
和/或,
根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量小于请求的空间容量时,控制所述工作节点将所述内存内访问频次最低的所述第一类数据转移到所述第一类硬盘,释放部分所述内存的存储空间,并利用所述内存释放的所述存储空间,分配给所述客户端。
在本示例性实施例中,调度节点还可以接收客户端发送的申请存储空间的请求。调度节点接收到申请存储空间的请求后,会对各个工作节点的内存空间中的剩余存储空间量与存储空间的申请量进行比较,将满足存储空间申请量的工作节点的未被数据占用的内存空间优先分配给客户端。如果所有工作节点中的内存空间的剩余存储空间均不满足,则将其中一个工作节点的内存内访问频次最低的第一类数据转移到第一类硬盘,释放部分内存的存储空间,将内存释放的存储空间,分配给客户端,以满足客户端的存储空间申请。
在一些实施例中,还包括:
将数据量大于第二阈值的超数据块,拆分多个数据块;
调度多个工作节点中的内存分别存储拆分后不同的所述数据块。
在本示例性实施例中,第二阈值为根据所述工作节点的内存空间的容量确定的数据拆分预设值。数据块的数据量超过第二阈值即被判断为超数据块。此时,将该超数据块拆分为多个数据量较小的数据块,并将多个数据块存储到多个工作节点的内存空间中,从而实现数据量较大的超数据块存储。
在将多个数据块存储到多个工作节点的内存空间中可通过对多个数据块按照数据的相互衔接进行队列排序,按照次序依次分别存储到同样队列排序的工作节点的存储空间内。其中,队列排序的工作节点的存储空间可以是多个工作节点中的彼此相邻的内存空间。
在一些实施例中,还包括:
接收到所述客户端读取所述超数据块的读取请求时,将所述读取请求拆分成多个子任务;
分别调度多个所述工作节点响应所述子任务;
将多工作节点读取的数据块在聚合队列中聚合后,返回给所述客户端。
在本示例性实施例中,调度节点还可以接收客户端发送的读取超数据块的读取请求。同时将该读取请求拆分成多个子任务,根据各个子任务分别调度多个工作节点响应子任务,以在对应的各个工作节点的存储空间内读取所需要读取的数据,并通过聚合队列将读取的数据聚合,以实现对客户端发送的超数据块的读取请求的响应。其中,聚合队列可以是分叉-聚合队列。如此,将读取请求分叉为多个子任务,将子任务分发至多个工作节点,并将所有读取结果合并成源文件完成超大数据的读取,从而通过保证各种大小的数据块的读取效率来提高超数据块的读取效率。
本公开还提供一种终端。本公开实施例提供的终端,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行另一方面本公开实施例提供的数据处理方法的步骤。
本公开还提供一种计算机可读存储介质。本公开实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现另一方面本公开实施例提供的数据处理方法的步骤。
本公开还提供一种选择性热点分割缓存调度方法。图3是根据一示例性实施例示出的选择性热点分割缓存调度方法流程图。如图3所示,该方法包括:
步骤1:对集群服务器中的所有日志进行归集,通过设定具体跨度日期进行数据访问的信息读取,对日志记录进行类别排序,过滤掉与读写操作无关的日志,只保留进行数据读写的操作日志。
步骤2:统计集群中所有数据的读写操作日志,并记录高频率读写访问数据的大小。图4是根据一示例性实施例示出的使用本技术统计的生产集群中冷热数据的数据大小及其概率分布示意图。如图所示,显示了生产集群中冷热数据的频率读写概率分布。
步骤3:通过分析生产集群日志得出频繁读写访问文件,按照数据大小对其进行排序及编号。所有数据无法同时放置在内存中进行快速读取,通过对物理存储介质分层放置的方式进行数据存储。
在本实施例中,可设定一种分层式大数据存储***。图5是根据一示例性实施例示出的分层式大数据存储***架构示意图。如图5所示,将大数据存储***服务器中每个工作节点划分为内存-固态硬盘-硬盘的三层存储***,在此3层存储***中优先放置较热的数据,其余数据放置在底层文件***中。此处的硬盘可以是机械硬盘。
依据步骤2中对数据读写频率的统计,将出现次数较高的数据设定为热点数据,并依据步骤2中统计出现频率进行对文件进行{N1,N2,N3……Nn}排序,生成文件概率表Tn,统计全部n个文件的总大小Na,以计算各文件的热度概率为{P1,P2,P3……Pn},生成数据热度概率表Tp,其中热度概率越大代表数据应用读写频次越高。其中内存、固态硬盘和硬盘中读写热点数据执行如下规则:
规则1:内存层优先放置热度概率表Tn中排列较前的一类数据,当此类数据经过大量读写,数据块头部过大则更新步骤2中的文件概率表Tn,重新排列的热点数据队列数据块头部若比更新前数据块头部大,则执行步骤4对热点数据进行分割;
规则2:SSD中存储两类数据,第一类为出现频率靠前但在规则1中未被放置数据,第二类为数据块过大,无法一次读写放入内存且不满足步骤4中可执行分割的数据。
随着数据的不断读写,当内存中头部数据访问频率很低,在文件概率表Tn中持续靠后数据存储下放至固态硬盘中,文件概率表Tn在固态硬盘中排序靠前数据补位进入到内存中,以此完成内存中冷数据与固态硬盘中热数据的更替。
规则3:与上述规则2相同,硬盘中存储热度较低的数据,当固态硬盘中数据出现频率较靠后时将数据下放至硬盘中。同时硬盘时刻接收只需读取无需内存写入的一类数据,通过硬盘层与底层文件***进行交互,完成不同Worker间的数据同步,保证底层数据的一致性。
步骤4:文件的分割遵循如下规则:
规则1:在内存-固态硬盘-硬盘驱动器中的数据,根据热度概率预测设置不同的数据分割单位。例如文件A,其文件大小为SA,PA为该文件在步骤3中数据热度概率表Tp的统计概率,设置文件A的预期负载量为LA=SA×PA。LA作为一个整体数据块作为文件A的最小数据单位,以LA数据大小对文件A进行分割。
规则2:未在内存-固态硬盘-硬盘驱动器中的数据,客户端(Client)请求底层存储***读取该数据块至内存中,并为此数据赋值概率P1,根据步骤4中规则1的方法进行分割操作。
步骤5:使用将缓存开销由Client转移到Worker的方法,并且优先Client读取数据,而不是Worker与Client并行读取数据的方式,减轻Client进行数据读取时还要向Worker发送数据的负载过高问题,使用规则如下:
规则1:Client读取一个完整数据块时,Master节点依据数据热度概率表Tp判断空闲的Worker节点,协助Client从内存-固态硬盘-硬盘驱动器与底层文件***中累计完整的数据,Client顺序读取整个数据块后Worker节点直接释放该数据块。
规则2:Client只读取一部分数据或以非顺序的方式读取内存-固态硬盘-硬盘驱动器中数据时,涉及Client读取数据的Worker放弃数据缓存工作,待Client完全读取数据后向对应Worker发送完成命令,Worker节点继续执行数据缓存或向Worker请求数据的工作。
步骤6:步骤5中Client读取数据时,Worker只进行异步读取缓存数据操作,无论读取完整或部分数据块,在内存-固态硬盘-硬盘驱动器中对Client的性能均没有额外的影响。为保证在内存层不会出现资源空间不足的情况,对热点数据在内存中的读写进行实时的监控。图6是根据一示例性实施例示出的分层式大数据存储***缓存调度示意图。如图6所示,在Client向Worker发起申请空间请求时遵守如下规则:
规则1:Worker的内存层有足够的剩余存储空间,则直接分配空间给Client让其调度使用。
规则2:Worker的内存层没有足够剩余空间,依据数据热度概率表Tp替换部分数据块到固态硬盘层,固态硬盘层与-硬盘驱动器同时遵守该规则。
步骤7:执行步骤4分割操作时考虑在实际工程应用中文件不适合被无限分割成任意粒度的小块,使用纠删码将大文件编码为若干小数据块(包括信息块和校验块)时,由Master实时监控对分割文件进行限制。图7是根据一示例性实施例示出的文件分割示意图。如图7所示,分割的最小文件不可小于10MB。分割后的数据存储在原数据的相邻存储空间,保证分块读取时具有一致性。例如,彼此相邻的第一存储空间至第四存储空间在存储数据文件时,需要将一个1000Mbps的文件存储进第一存储空间,将一个300Mbps的文件存储进第二存储空间内。由于存储空间容量限制,1000Mbps的文件无法存储,或不易存储。此时可将这个1000Mbps的文件进行分割为四个250Mbps大小的文件,分别存储在彼此相邻的第一存储空间至第四存储空间内。由于300Mbps的文件相对较小,可直接存储在第二存储空间内。在存储时,可第二存储空间先存储300Mbps的文件后,在存储被分割出来的250Mbps大小的分割文件。
步骤8:图8是根据一示例性实施例示出的分叉-聚合队列模型示意图。如图8所示,当数据块十分大,无法一个内存单独读取,需多个内存协同读取时,将大文件分割后使用分叉-聚合队列的形式进行处理。
Client读取请求被分叉为多个子任务,将子任务分发至存储文件的内存节点,内存节点将所有读取结果合并成源文件完成超大数据的读取,保证各种大小的数据块的读取效率。
本公开的分层式数据存储***具有以下优点:
1、改进基于磁盘存储的分布式文件***HDFS在大规模数据场景下的读写操作瓶颈问题,使用基于分层式的数据存储结构,按统计概率优先将热点数据放至内存中,保证上层应用作业数据的实时访问效率。
2、在数据存储***基础上提供一个可扩展的分层数据使用方法,将频繁处理的数据载入内存作为数据读写的主要目标,通过数据读写频率生成数据热度参照表,选择性的进行热点数据的分割策略,加速上层的大数据应用。
Master-Worker启动两个进程协同工作:Master和Worker进程,Master负责任务的接收和分配,Worker负责具体的子任务执行,每个Worker执行完任务之后把结果返回给Master,最后由Master汇总结果。
Client客户端,用于创建任务给Master。
Master接受任务,并分配任务给Worker。
Master和Worker是Spark独立集群里用到的类,Master是独立集群的控制者,Worker是执行者,一个Spark独立集群需要启动一个Master和多个Worker。
数据块是bai数据库中最小的数据存储单位,用户再du对数据库zhi执行输入输出操作时dao就是从数据块读取的。在oracle11g中,数据块分为头部信息区和存储区,头部信息区不存放数据,但是存放有关存储区中表数据、索引数据的的相关信息起到引导的作用则存储区真正存放数据记录。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的方法技术方案。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的设备技术方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据存储***,其特征在于,所述***包括:
至少一个工作节点;
所述工作节点包括:
内存,用于存储第一类数据;
第一类硬盘,用于存储部分所述第一类数据和/或第二类数据;所述第二类数据的读写频次低于所述第一类数据的读写频次;
第二类硬盘,用于存储第三类数据;其中,所述第一类硬盘的读取速率,高于所述第二类硬盘的读取速率;所述第三类数据的读写频次低于所述第二类数据的读写频次。
2.根据权利要求1所述的***,其特征在于,所述第一类硬盘包括:固态硬盘;所述第二类硬盘包括:机械硬盘。
3.根据权利要1或2所述的***,其特征在于,所述第一类硬盘,具体用于存储数据量大于第一阈值的所述第一类数据及所述第二类数据,其中,所述第一阈值为根据所述工作节点的内存空间的容量确定的预设值。
4.根据权利要求1或2所述的***,其特征在于,所述***还包括:
调度节点,用于根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据;并根据控制划分的数据类型,调度一个或多个所述工作节点的所述内存、所述第一类硬盘及所述第二类硬盘分别进行所述第一类数据、所述第二类数据及所述第三类数据的存储。
5.根据权利要求4所述的***,其特征在于,
所述调度节点,与客户端建立有网络连接,用于接收所述客户端发送的读取请求;在根据所述读取请求确定出所述客户端请求读取一个或多个完整的数据块时,根据所述工作节点的负载率,选择空闲的所述工作节点响应所述读取请求;和/或,在根据所述读取请求确定出所述客户端请求读取一个数据块中的部分数据时,向响应所述读取请求的工作节点发送暂停指令及读取指令;所述暂停指令,用于控制所述工作节点暂停在所述内存内缓存数据,并相应所述读取指令将读取的数据返回给所述客户端。
6.根据权利要求4所述的***,其特征在于,所述调度节点,还用于从所述客户端接收申请存储空间的请求;根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量不小于请求的空间容量时,利用剩余的内存资源分配给所述客户端;和/或,在确定出所述工作节点中有所述内存空间量小于请求的空间容量时,将所述内存内访问频次最低的所述第一类数据转移到所述第一类硬盘,释放部分所述内存的存储空间,利用所述内存释放的所述存储空间,分配给所述客户端。
7.根据权利要求4所述的***,其特征在于,所述调度节点,还用于将数据量大于第二阈值的超数据块,拆分多个数据块,并调度多个工作节点中的内存分别存储拆分后不同的所述数据块。
8.根据权利要求7所述的***,其特征在于,所述调度节点,还用于接收到所述客户端读取所述超数据块的读取请求时,将所述读取请求拆分成多个子任务,分别调度多个所述工作节点响应所述子任务;并将多工作节点读取的数据块在聚合队列中聚合后,返回给所述客户端。
9.一种数据处理方法,其特征在于,应用于所述数据存储***的调度节点,所述方法包括:
按照数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据;其中,所述第二类数据的读写频次低于所述第一类数据的读写频次;所述第三类数据的读写频次低于所述第二类数据的读写频;
调度工作节点的内存存储所述第一类数据;
调度所述工作节点的第一类硬盘存储将部分所述第一类数据和/或所述第二类数据;
调度所述工作节点的第二类硬盘存储所述第三类数据;其中,所述第一类硬盘的读取速率,高于所述第二类硬盘的读取速率。
10.根据权利要求9所述的方法,其特征在于,所述调度所述工作节点的第一类硬盘存储将部分所述第一类数据和/或所述第二类数据,包括:
将存储数据量大于第一阈值的所述第一类数据,存储到所述第一类硬盘,其中,所述第一阈值为根据所述工作节点的内存空间的容量确定的预设值;
将所述第二类数据存储到所述第一类硬盘。
11.根据权利要求9或10所述的方法,其特征在于,所述按照数据的读写频次,将数据划分为第一类数据、第二类数据及第三类数据,包括:
调度节点根据所述存储***内存储数据的读写频次,动态将数据划分为所述第一类数据、所述第二类数据及所述第三类数据;
所述方法还包括:
所述调度节点,根据控制划分的数据类型,调度一个或多个所述工作节点的所述内存、所述第一类硬盘及所述第二类硬盘,分别进行所述第一类数据、所述第二类数据及所述第三类数据的存储。
12.根据权利要求11所述的方法,其特征在于,还包括:
所述调度节点接收客户端发送的读取请求;
根据所述读取请求确定出所述客户端请求读取一个或多个完整的数据块时,根据所述工作节点的负载率,选择空闲的所述工作节点响应所述读取请求;
和/或,
根据所述读取请求确定出所述客户端请求读取一个数据块中的部分数据时,向响应所述读取请求的工作节点发送暂停指令及读取指令;其中,所述暂停指令,用于控制所述工作节点暂停在所述内存内缓存数据,并相应所述读取指令将读取的数据返回给所述客户端。
13.根据权利要求11所述的方法,其特征在于,还包括:
接收所述客户端发送的申请存储空间的请求;
根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量不小于请求的空间容量时,利用剩余的内存资源分配给所述客户端;
和/或,
根据所述工作节点中所述内存的剩余量,在确定出所述工作节点中有所述内存空间量小于请求的空间容量时,控制所述工作节点将所述内存内访问频次最低的所述第一类数据转移到所述第一类硬盘,释放部分所述内存的存储空间,并利用所述内存释放的所述存储空间,分配给所述客户端。
14.一种终端,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行权利要求9至13所述方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求9至13所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010763506.3A CN114063888A (zh) | 2020-07-31 | 2020-07-31 | 数据存储***、数据处理方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010763506.3A CN114063888A (zh) | 2020-07-31 | 2020-07-31 | 数据存储***、数据处理方法、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114063888A true CN114063888A (zh) | 2022-02-18 |
Family
ID=80227934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010763506.3A Pending CN114063888A (zh) | 2020-07-31 | 2020-07-31 | 数据存储***、数据处理方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114063888A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303119A (zh) * | 2023-05-19 | 2023-06-23 | 珠海妙存科技有限公司 | 冷热数据的识别方法、***及存储介质 |
CN116339561A (zh) * | 2023-03-29 | 2023-06-27 | 郑州裕中能源有限责任公司 | 一种锅炉监测三维可视化方法及***、设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2791752Y (zh) * | 2005-04-04 | 2006-06-28 | 苏州鹞鹰数据技术有限公司 | 高速数据存储设备 |
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存*** |
CN106095572A (zh) * | 2016-06-08 | 2016-11-09 | 东方网力科技股份有限公司 | 一种大数据处理的分布式调度***及方法 |
CN106648442A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种元数据节点的内存镜像方法、装置 |
CN106776368A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种数据读取时的缓存管理方法、装置及*** |
CN107273040A (zh) * | 2016-04-08 | 2017-10-20 | 北京优朋普乐科技有限公司 | 数据缓存方法和装置 |
CN107506146A (zh) * | 2017-08-29 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种数据存储*** |
CN109614372A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种对象存储、读取方法、装置、及业务服务器 |
CN111176584A (zh) * | 2019-12-31 | 2020-05-19 | 曙光信息产业(北京)有限公司 | 一种基于混合内存的数据处理方法及装置 |
CN111208952A (zh) * | 2020-02-13 | 2020-05-29 | 河南文正电子数据处理有限公司 | 一种存储***扩容方法、可读存储介质及计算设备 |
-
2020
- 2020-07-31 CN CN202010763506.3A patent/CN114063888A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2791752Y (zh) * | 2005-04-04 | 2006-06-28 | 苏州鹞鹰数据技术有限公司 | 高速数据存储设备 |
CN1852318A (zh) * | 2006-04-19 | 2006-10-25 | 华中科技大学 | 适用于对象网络存储的分布式多级缓存*** |
CN106648442A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种元数据节点的内存镜像方法、装置 |
CN107273040A (zh) * | 2016-04-08 | 2017-10-20 | 北京优朋普乐科技有限公司 | 数据缓存方法和装置 |
CN106095572A (zh) * | 2016-06-08 | 2016-11-09 | 东方网力科技股份有限公司 | 一种大数据处理的分布式调度***及方法 |
CN106776368A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种数据读取时的缓存管理方法、装置及*** |
CN107506146A (zh) * | 2017-08-29 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种数据存储*** |
CN109614372A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种对象存储、读取方法、装置、及业务服务器 |
CN111176584A (zh) * | 2019-12-31 | 2020-05-19 | 曙光信息产业(北京)有限公司 | 一种基于混合内存的数据处理方法及装置 |
CN111208952A (zh) * | 2020-02-13 | 2020-05-29 | 河南文正电子数据处理有限公司 | 一种存储***扩容方法、可读存储介质及计算设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116339561A (zh) * | 2023-03-29 | 2023-06-27 | 郑州裕中能源有限责任公司 | 一种锅炉监测三维可视化方法及***、设备 |
CN116339561B (zh) * | 2023-03-29 | 2024-03-15 | 郑州裕中能源有限责任公司 | 一种锅炉监测三维可视化方法及***、设备 |
CN116303119A (zh) * | 2023-05-19 | 2023-06-23 | 珠海妙存科技有限公司 | 冷热数据的识别方法、***及存储介质 |
CN116303119B (zh) * | 2023-05-19 | 2023-08-11 | 珠海妙存科技有限公司 | 冷热数据的识别方法、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021208546A1 (zh) | Kubernetes集群架构***下多维资源调度方法 | |
US10185592B2 (en) | Network storage device using dynamic weights based on resource utilization | |
US10534542B2 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
CN100407152C (zh) | 多策略资源调度的方法和*** | |
JP5500256B2 (ja) | ストレージシステム | |
EP4160405A1 (en) | Task execution method and storage device | |
CN108932150B (zh) | 基于ssd和磁盘混合存储的缓存方法、装置及介质 | |
CN108595254B (zh) | 一种查询调度方法 | |
US20170010919A1 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
CN114063888A (zh) | 数据存储***、数据处理方法、终端及存储介质 | |
CN111737168A (zh) | 一种缓存***、缓存处理方法、装置、设备及介质 | |
CN112015765A (zh) | 基于缓存价值的Spark缓存淘汰方法及*** | |
CN114880130A (zh) | 并行训练中突破内存限制的方法、***、设备及存储介质 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
WO2021115082A1 (zh) | 作业调度方法以及作业调度装置 | |
Wang et al. | An Improved Memory Cache Management Study Based on Spark. | |
JPWO2011078162A1 (ja) | スケジューリング装置、スケジューリング方法及びプログラム | |
Kumar et al. | An extended approach to Non-Replicated dynamic fragment allocation in distributed database systems | |
Soosai et al. | Dynamic replica replacement strategy in data grid | |
Mathiason et al. | Virtual full replication by adaptive segmentation | |
CN111338782A (zh) | 面向共享式突发数据缓存的基于竞争感知的节点分配方法 | |
JP2012038275A (ja) | 取引計算シミュレーションシステム、方法及びプログラム | |
Xiu et al. | A memory management strategy based on task requirement for in-memory computing | |
Luo et al. | Towards efficiently supporting database as a service with QoS guarantees |
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 |