CN116009788A - 计算集群的性能优化方法、系统、设备及存储介质 - Google Patents
计算集群的性能优化方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN116009788A CN116009788A CN202310085753.6A CN202310085753A CN116009788A CN 116009788 A CN116009788 A CN 116009788A CN 202310085753 A CN202310085753 A CN 202310085753A CN 116009788 A CN116009788 A CN 116009788A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- target
- cluster
- written
- 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
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种计算集群的性能优化方法、系统、设备及存储介质。提出了一种计算集群的读/写缓存方案,在计算集群的各个计算节点上装配缓存设备。在读性能方面,这些装配的缓存设备可组成读缓存集群;且本申请实施例中可基于预设数据标识表来管理读缓存集群,减少数据重复,从而提高计算集群在读缓存集群中的命中率,进而优化计算集群的读性能。在写性能方面,这些装配的缓存设备可分组为至少一个写缓存组,计算节点可直接向其上装备的缓存设备进行本地化写入,而由该缓存设备所处的目标写缓存组接手,对待写数据进行写缓存并写入至存储集群,这可有效缩短计算节点的写入路径,缩短写延迟,进而优化计算集群的写性能。
Description
技术领域
本申请涉及云技术领域,尤其涉及一种计算集群的性能优化方法、系统、设备及存储介质。
背景技术
大规模基础设施现已普遍采用分布式集群方式进行可靠性高并可灵活扩展的部署。计算集群与存储集群间可通过数据中心网络实现互联。根据数据一致性要求,数据需写入存储集群方可被确定为完成了持久化存储,而从计算集群到存储集群数据路径长,完成数据写入所需延迟较大。同时,计算集群也需从存储集群持续读取大量数据,在数据链路长的情况下,大量数据搬迁对性能与能耗等均构成瓶颈。
因此,提升读写性能是集群化部署大规模基础设施的一个关键挑战。
发明内容
本申请的多个方面提供一种计算集群的性能优化方法、系统、设备及存储介质,用以提升计算集群的读/写性能。
本申请实施例提供一种计算集群的性能优化系统,包括:计算集群中的各个计算节点和所述各个计算节点上分别装配的缓存设备,装配的缓存设备组成读缓存集群;
所述计算集群中的目标计算节点,用于响应于读请求,确定待读数据对应的目标数据标识;若在预设数据标识表中查找到所述目标数据标识,则确定所述待读数据在所述读缓存集群中所处的目标缓存设备;从所述目标缓存设备中读取所述待读数据;
其中,所述预设数据标识表中记录有所述读缓存集群中各个缓存设备上的缓存数据的数据标识。
本申请实施例还提供一种计算集群的性能优化系统,包括:计算集群中的各个计算节点和所述各个计算节点上分别装配的缓存设备,装配的缓存设备分组为至少一个写缓存组;
所述计算集群中的目标计算节点,用于响应于写请求,将待写数据写入所述目标计算节点上装配的第一缓存设备;利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存;
所述目标写缓存组内的第二缓存设备,用于将所述待写数据写入存储集群;
其中,所述第二缓存设备为所述目标写缓存组中无故障的缓存设备,第二缓存设备与所述第一缓存设备相同或不同。
本申请实施例还提供一种计算集群的性能优化方法,应用于计算集群中的任一目标计算节点,所述计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备组成读缓存集群;所述方法包括:
响应于读请求,确定待读数据对应的目标数据标识;
若在预设数据标识表中查找到所述目标数据标识,则确定所述待读数据在所述读缓存集群中所处的目标缓存设备;
从所述目标缓存设备中读取所述待读数据;
其中,所述预设数据标识表中记录有所述读缓存集群中各个缓存设备上的缓存数据的数据标识。
本申请实施例还提供一种计算集群的性能优化方法,应用于计算集群中的任一目标计算节点,所述计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备分组为至少一个写缓存组;所述方法包括:
响应于写请求,将待写数据写入所述计算节点上装配的第一缓存设备;
利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存;
通过所述目标写缓存组内的第二缓存设备,将所述待写数据写入存储集群;
其中,所述第二缓存设备为所述目标写缓存组中无故障的缓存设备,第二缓存设备与所述第一缓存设备相同或不同。
本申请实施例还提供一种计算节点,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于执行前述的计算集群的性能优化方法。
本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的计算集群的性能优化方法。
本申请实施例中,提出了一种计算集群的读/写缓存方案,在计算集群的各个计算节点上装配缓存设备。在读性能方面,这些装配的缓存设备可组成读缓存集群;且本实施例中可基于预设数据标识表来管理读缓存集群,减少数据重复,从而提高计算集群在读缓存集群中的命中率,进而优化计算集群的读性能。在写性能方面,这些装配的缓存设备可分组为至少一个写缓存组,计算节点可直接向其上装备的缓存设备进行本地化写入,而由该缓存设备所处的目标写缓存组接手,对待写数据进行写缓存并写入至存储集群,这可有效缩短计算节点的写入路径,缩短写延迟,进而优化计算集群的写性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为传统的计算集群的读写方案示意图;
图2为本申请一示例性实施例提供的计算集群的性能优化系统的结构示意图;
图3为本申请一示例性实施例提供的一种写环节中的方案逻辑示意图;
图4为本申请一示例性实施例提供的一种读环节中的方案逻辑示意图;
图5为本申请一示例性实施例提供的一种预设数据标识表的设计方案示意图;
图6为本申请一示例性实施例提供的一种数据存储位置信息的实现方案示意图;
图7为本申请一示例性实施例提供的一种计算集群的性能提升方法的流程示意图;
图8为本申请另一示例性实施例提供的另一种计算集群的性能优化方法的流程示意图;
图9为本申请又一示例性实施例提供的一种计算节点的结构示意图;
图10为本申请又一示例性实施例提供的另一种计算节点的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为传统的计算集群的读写方案示意图。参考图1,计算集群的各个计算节点上安装本地读缓存以降低平均读延迟并在存储集群中部署写缓存以降低写延迟。如图1所示,当数据写入存储集群的存储节点中,写缓存可缩短写延迟。当计算节点上发生读请求时,先查询本地读缓存是否存有所需数据,如未能在本地缓存命中,则前往存储集群读取。考虑到一定概率的缓存读取命中(即所读取文件在本地读缓存中),相比于全部从存储集群读取数据,平均读延迟有所降低。
发明人在研究过程中发现,传统方案的存在如下局限:
计算集群中的各个本地读缓存之间,存在数据重复的问题,即同一数据重复存储在多个计算节点的本地读缓存中,降低了有效缓存容量,降低了命中率;
相比于存储集群的容量,本地读缓存的容量小,所能提供的命中率低,因此,对读延迟的降低效果并不佳。而如增大各本地读缓存的容量,则成本上升显著;
写缓存部署在存储集群中,写延迟中需加入各级网络传输的影响,因此,对写延迟的降低效果也并不佳。
为此,本申请的一些实施例中:提出了一种计算集群的读/写缓存方案,在计算集群的各个计算节点上装配缓存设备。在读性能方面,这些装配的缓存设备可组成读缓存集群;且本实施例中可基于预设数据标识表来管理读缓存集群,减少数据重复,从而提高计算集群在读缓存集群中的命中率,进而优化计算集群的读性能。在写性能方面,这些装配的缓存设备可分组为至少一个写缓存组,计算节点可直接向其上装备的缓存设备进行本地化写入,而由该缓存设备所处的目标写缓存组接手,对待写数据进行写缓存并写入至存储集群,这可有效缩短计算节点的写入路径,缩短写延迟,进而优化计算集群的写性能。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图2为本申请一示例性实施例提供的计算集群的性能优化系统的结构示意图。参考图2,该系统可包括:计算集群中的各个计算节点和各个计算节点上分别装配的缓存设备。
其中,本实施例中,缓存设备可采用高速固态硬盘(Solid State Drives,SSD)或其它高速非易失性存储设备,本实施例对缓存设备的类型不做限定。计算节点与其上装配的缓存设备之间可采用总线连接,包括但不限于Pcle、CXL、DDR、DDRT等总线连接方式。另外,缓存设备内部可自带微处理器,这使得缓存设备具有计算处理能力,后文中,将提到,本实施例中,可将读写过程中的部分处理工作卸载到缓存设备中进行,以缓解计算节点的CPU压力。
本实施例中的缓存设备可复用在读环节和写环节中。读环节即为计算集群需要读取数据的过程,写环节即为计算集群需要向存储集群写入数据的过程。其中,本实施例中,存储集群为分布式集群,计算集群也可为分布式集群。本实施例中,可按需灵活分配缓存设备中的读缓存和写缓存的容量边界,例如1TB的容量,可以是300MB用于写缓存,剩下700MB用于读缓存;也可以600MB用于写缓存,剩下400MB用于读缓存。且读缓存和写缓存可轮转使用,避免一个局部区域反复作为写缓存而磨穿。
以下将分别从读环节和写环节的角度,对本实施例的技术方案进行说明。
写环节
对于写环节来说,本实施例中提出,可将各个计算节点上装配的缓存设备,分组为至少一个写缓存组。优选地,本实施例中,可以同组内的缓存设备分布在不完全相同的故障域作为分组要求,对计算集群中的各个计算节点上装配的缓存设备进行预先分组,以产生至少一个写缓存组。故障域通常可以是指集体受故障影响的一组服务器、存储和/或网络连接组件等。本实施例中,考虑到属于同一故障域内的缓存设备可能发生集体故障,因此,采用了基于故障域的分组方案,这样,同一写缓存组内的缓存设备将分布在不完全相同的故障域,可有效避免写缓存组整体发生故障。值得说明的是,上述分组方案仅是示例性的,本实施例也可按照随机分组、人工指定分组等方案来对缓存设备进行分组,本实施例并不限于此。
另外,本实施例中,还可对分组产生的至少一个写缓存组进行固定。对写缓存组进行固定,可有效降低管控复杂度并缩短计算节点的写延迟,这是由于:第一,如果动态分组,则需要每次写入时先执行分组操作,之后再开始写入;在读出数据时,也需要先查询数据可能所处的缓存设备,然后读取,这就产生了不可避免的远端分配或远端查询的延迟。第二,动态分组需要把数据读写调度到整个计算集群,增大了整体网络流量,会产生拥塞带来的网络延迟;并且需要考虑内容回收、容量均衡等后台复杂操作,增加了管理成本。第三,动态分组可能需要计算节点将待写数据写入非本地的缓存设备中,将失去本地化数据读写的优势,在读写时可能都会增加一跳的网络延迟。
图3为本申请一示例性实施例提供的一种写环节中的方案逻辑示意图。参考图3,基于分组出的至少一个写缓存组,对于计算集群中的任一目标计算节点来说,可响应于写请求,将待写数据写入目标计算节点上装配的第一缓存设备。其中,写请求可来源于目标计算节点上的应用程序,当然,本实施例并不限于此。
这样,对于目标计算节点来说,其写入延时仅包含执行本地化数据写入所花费的时间,而不再需要考虑计算集群到存储集群的各级网络传输的影响,因此,相较于传统方案来说,写入路径大大缩短,写入延时也大大缩短。
之后,由第一缓存设备所在的目标写缓存组接手待写数据,对待写数据进行缓存。也即是,由目标写缓存组内的多个缓存设备对待写数据进行缓存。这样,即使目标写缓存组内的部分缓存设备发生故障,目标写缓存组依然可通过剩余的未发生故障的缓存设备而支持对待写数据的缓存。从而,可在写环节中有效保护待写数据,避免因缓存设备故障而导致待写数据的丢失。
参考图3,本实施例中,可由目标写缓存组内的第二缓存设备将待写数据写入存储集群。本实施例中,可优选目标计算节点上装配的第一缓存设备作为这里的第二缓存设备,来将待写数据写入存储集群,在第一缓存设备发生故障的情况下,也可选用目标写缓存组内未发生故障的任意缓存设备作为第二缓存设备,本实施例对此不做限定。也即是,第二缓存设备为目标写缓存组中无故障的缓存设备,第二缓存设备与第一缓存设备相同或不同。另外,值得说明的是,在第二缓存设备中未配置通信功能的情况下,可由第二缓存设备所在的计算节点来执行上述将待写数据写入存储集群的操作。这种情况下,计算节点可从第二缓存设备中获取待写数据,并按照异步方式将待写数据写入存储集群,这里的异步是指将待写数据写入存储集群的操作与该计算节点上发生的写操作或读操作均异步,以避免对该计算节点上的写操作或读操作造成资源争抢。
本实施例中,可采用多备份机制或者纠删码(erasure coding,EC)机制实现目标写缓存组对待写数据的缓存。其中,多备份机制可以是指:为待存数据生成多个副本,并将多个副本分别存储在不同的位置上。纠删码机制可以是指:将待存数据切分为k份原始数据,并为k份原始数据,增加m份冗余数据,并能通过k+m份中的任意k份数据,还原出k份原始数据。
以下将分别对按照多备份机制对待写数据进行缓存和按照纠删码机制对待写数据进行缓存的方案进行详细说明。
首先,按照多备份机制对待写数据进行缓存的方案下:目标计算节点可为待写数据生成备份数据;并将备份数据分别发送至目标写缓存组内除第一缓存设备之外的其它缓存设备,以对待写数据进行缓存。其中,目标写缓存组内存储的待写数据及其备份数据保持一致性。一致性是指目标写缓存组中的待写数据及其备份数据保持一致,在待写数据发生变化的情况下,备份数据同步更新。
以三备份为例,参考图2,目标写缓存组内可包括目标计算节点A以及计算节点B和计算节点K上各自装配的缓存设备,基于此,目标计算节点A可将待写数据写入其上装配的缓存设备,且由于目标计算节点A已知目标写缓存组内的其它计算节点,因此,目标计算节点A还可将备份数据分别写入计算节点B和计算节点K上各自装配的缓存设备。
可选地,在一份备份数据成功写入后,目标计算节点可为未成功写入的备份数据记录警告状态,并反复重试写入,若重试后写入成功,则可解除相应备份数据的警告状态;若重试后仍无法写入,则可触发启动对相应计算节点的在线修复,并加快将当前待写数据写入至存储集群中,以避免数据不一致的问题。
承接按照多备份机制对待写数据进行缓存的方案,本实施例中,若存储集群采用纠删码机制进行存储,则目标写缓存组内的第二缓存设备可对待写数据进行纠删码编码,以产生待写数据对应的第一指定数量的纠删码分片;将第一指定数量的纠删码分片一对一写入存储集群中的多个存储节点中。这里应当理解的是,若第二缓存数据上存储的是待写数据的备份数据,则第二缓存设备可对备份数据进行纠删码编码,备份数据和待写数据实质是相同数据。另外,这里的第一指定数量可按照存储集群按照纠删码机制进行存储时所指定的纠删码分片数量保持一致,以适配存储集群的存储要求,存储集群将无需再重复进行纠删码编码。
在该示例性的将待写数据写入存储集群的方案中,可由第二缓存设备内部的微处理器来执行纠删码编码工作,并将产生的纠删码分片一对一传输到存储集群中的多个存储节点上,也即是,第二缓存设备可为存储集群进行纠删码编码,以支持存储集群按照纠删码机制对待写数据进行存储。采用第二缓存设备内部的微处理器来执行纠删码编码工作的优势在于:其一,计算节点的CPU核数少且每个核成本昂贵,卸载到微处理器进行纠删码编码,可节省CPU资源;其二,用缓存设备内部微处理器可缩短数据与算子间路径,实现近存储计算,降低对内存总线、PCIe总线传输开销,减少数据拷贝;其三,需写入存储集群中的数据量少,以(n,k)纠删码为例,n(码长)=k(原始数据)+m(冗余数据),需写入存储集群中的数据量为待写数据的1+m/k倍;若将全量数据传输到存储集群的某一存储节点上进行纠删码编码并传输切片,则需写入存储集群中的数据量为1+1+m/k倍的待写数据。
当然,本实施例中,第二缓存设备还可采用其它方式将待写数据写入存储集群,例如,直接将待写数据或其备份数据写入存储集群中的某个存储节点上等,在此不做限定。而存储集群中具体采用何种存储方式,本实施例不做限定,存储集群可按照上述示例的纠删码机制对待写数据进行存储,当然,也可按照多备份机制对待写数据进行存储。
其次,按照纠删码机制对待写数据进行缓存的方案下:目标计算节点上装配的第一缓存设备,可对待写数据进行纠删码编码,以产生第二指定数量的纠删码分片,纠删码分片中包含原始数据分片和冗余数据分片;目标计算节点可将第二指定数量的纠删码分片一对一存储至目标写缓存组中的各个缓存设备,目标写缓存组中的缓存设备数量可大于或等于第二指定数量;其中,目标写缓存组中为待写数据存储的各个纠删码分片保持一致性。一致性是指目标写缓存组中的待写数据对应的各个纠删码分片保持一致,在待写数据发生变化的情况下,各个纠删码分片同步更新。
基于纠删码机制,本实施例中,如果把k+m份数据分布在写缓存组的不同缓存设备上,那么即使任意小于等于m个缓存设备发生故障(m份数据失效),都可以通过其他剩余的数据还原出原始数据,从而有效保护待写数据。
以(16,10)纠删码为例,第一缓存设备可将待写数据进行纠删码编码为16个纠删码分片,其中,10个原始数据分片和6个冗余数据分片,目标计算节点可将16个纠删码分片中的1个存储在第一缓存设备中,而将16个纠删码分片中的其它15个,一对一存储到目标写缓存组中的其它15个缓存设备中。
承接按照纠删码机制对待写数据进行缓存的方案,本实施例中,目标写缓存组内的第二缓存设备可从目标写缓存组中读取待写数据对应的原始数据分片;将原始数据分片写入存储集群,以供存储集群基于原始数据分片对待写数据进行存储。承接上述的(16,10)纠删码示例,第二缓存设备可从目标写缓存组中读取任意10个纠删码分片,还原出10个原始数据分片;并将10个原始数据分片写入存储集群中的一个存储节点,以将待写数据写入存储集群。其中,存储集群的存储方式可包括按照纠删码机制进行存储或者按照多备份机制进行存储。同样,在第二缓存设备不具备通信能力的情况下,可由第二缓存设备所处的计算节点来还原出原始数据分片并异步写入存储集群中。
这里,考虑到存储集群中的纠删码机制和目标写缓存组中的纠删码机制可能存在差异,因此,第二缓存设备中的微处理器可仅负责为目标写缓存组进行纠删码编码,而不再为存储集群进行纠删码编码,这可节省网络传输带宽开销,也可支持存储集群中纠删码机制的自由度,支持存储集群采用更低成本的纠删码。例如,在目标写缓存组中采用(16,10)纠删码,而在存储集群中则可采用(20,4)纠删码,减少冗余数据量,从而降低存储成本。
本实施例中,除了上述的多备份机制或纠删码机制外,还可采用其它机制来实现目标写缓存组对待写数据的缓存,相应地,目标写缓存组中的第二缓存设备也根据存储集群中的存储方式而适应性地调整向存储集群写入待写数据的具体逻辑,本实施例并不限于此。
另外,从写缓存组的角度看,无论是上述的按照多备份机制还是按照纠删码机制进行待写数据缓存的方案下,目标写缓存组内的各个缓存设备上所缓存的待写数据的数据量都是一致的,而不同写缓存组之间又是相互独立的,因此,本实施例中,各个计算节点只需关注其上装配的缓存设备的容量水位是否溢出即可,而无需关注其它缓存设备的容量水位,这也可降低后台网络传输带宽开销。
综上,本实施例中,可按照简化的分布式逻辑来使用计算集群中的各个计算节点上分别装配的缓存设备,以对待写数据进行短期数据暂存。换句话说,在写环节中,待写数据在缓存设备中所停留时间有限(当数据写入后端的存储集群后,即可删除),完备分布式逻辑所需的数据校验、容量均衡、数据重填、垃圾回收、后台刷新等针对长期存储的必要操作在本实施例中无需触发,本实施例中,重点保证数据有效期内的一致性即可。据此,在写环节中,可将计算集群中各个计算节点上装配的缓存设备,分组为至少一个写缓存组,计算节点可将待写数据直接写入其上装配的缓存设备,而由该缓存设备所处的目标写缓存组接手,对待写数据进行缓存并最终写入存储集群,这可有效缩短计算节点的写入路径,缩短写延迟,进而优化计算集群的写性能。且可通过写缓存组对待写数据进行缓存,以避免缓存设备故障造成待写数据无法被写入至存储集群中。
读环节
对于读环节来说,计算集群中各个计算节点上分别装配的缓存设备,还可组成读缓存集群。计算集群中的各个计算节点可共用读缓存集群。
本实施例中还提出一种预设数据标识表,用于记录读缓存集群中各个缓存设备上的缓存数据的数据标识,其中,不同缓存数据对应的数据标识不同。而且,计算集群中的各个计算节点上均可维护一份预设数据标识表,且各个计算节点上维护的预设数据标识表保持一致性。这样,基于预设数据标识表,各个计算节点可方便地查询到读缓存集群中是否存在所需数据。
图4为本申请一示例性实施例提供的一种读环节中的方案逻辑示意图。继续以上述的目标计算节点为例,参考图4,基于读缓存集群,对于目标计算节点来说,可响应于读请求,确定待读数据对应的目标数据标识。同样,读请求也可来源于目标计算节点上的应用程序,当然,本实施例并不限于此。
本实施例中,可直接由目标计算节点按照预置的标识计算规则,计算待读数据对应的目标数据标识。图5为本申请一示例性实施例提供的一种预设数据标识表的设计方案示意图。参考图5,本实施例中,一种示例性的标识计算规则可以是:基于待读数据的文件名、文件存储路径等多种特征信息,按照预置的哈希函数,计算待读数据对应的哈希值,作为目标数据标识。这样,以多种特征信息合并计算出独特的哈希值,并强化哈希算法以大幅降低哈希值冲突几率在预设数据标识表中,哈希值可按设定规则排列。当然,这仅是示例性的,本实施例中,还可采用其它标识计算规则来计算待读数据的数据标识,例如,信息摘要算法MD5等,本实施例并不限于此。
本实施例中,读缓存集群中的缓存数据主要来源于两个方面:从存储集群中读取的历史数据,和各个计算节点上发生写请求后未从缓存设备中删除的待写数据。也即是,前述写环节的中的待写数据暂存在缓存设备上期间,可作为读缓存集群中的缓存数据而被读取。
针对各个计算节点上发生写请求后未从缓存设备中删除的待写数据,以目标计算节点为例,可确定待写数据对应的数据标识,并将待写数据对应的数据标识加入目标计算节点自身维护的预设数据标识表中,并将待写数据对应的数据标识同步至计算集群中的其它计算节点,以供其它计算节点将待写数据的数据标识加入各自维护的预设数据标识表中。也即是,待写数据暂存在缓存设备期间,待写数据对应的数据标识可同步加入到各个计算节点上维护的预设数据标识表中。值得说明的是,前述写环节中可能存在一份待写数据拥有多备份或者多个纠删码分片的情况下,本实施例中,一份待写数据仅对应一个数据标识,而并不会为多个备份或者多个纠删码分片再分配更多数据标识,因为他们都属于相同数据。也即是,本实施例中,不同缓存数据对应的数据标识不同,而相同缓存数据对应的数据标识相同。
针对从存储集群中读取的历史数据,还是以目标计算节点为例,可在读取到的数据后,将读取到的数据存储至目标计算节点上装配的第一缓存设备;并将目标数据标识加入目标计算节点自身维护的预设数据标识表中;并将目标数据标识同步至计算集群中的其它计算节点,以供其它计算节点将目标数据标识加入各自维护的预设数据标识表中。也即是,对于需要直接从存储集群读取数据的情况,目标计算节点可在读取到数据后,完成本地化存储,以将读取到的数据作为新的缓存数据而加入到读缓存集群中,同时,还可将读取到的数据的数据标识加入到各个计算节点上维护的预设数据标识表中。
这样,目标计算节点可通过将新增的数据标识同步至其它计算节点,来保持各个计算节点上维护的预设数据标识表的一致性。这种方式下,目标计算节点所消耗的网络资源更少,同步效率更高。当然,本实施例中,还可采用其它方式来保持各个计算节点上的预设数据标识表的一致性。例如,目标计算节点可在出现新增的数据标识的情况下,更新自身维护的预设数据标识表;并将更新后的预设数据标识表发送至其它计算节点,以覆盖其它计算节点上原有的预设数据标识表。这种方式下,对于目标计算节点之外的其它计算节点来说,不再需要对维护的预设数据标识表执行更新操作,而仅需进行前述的覆盖处理即可,这可有效节省其它计算节点的处理资源。
可知,本实施例中,预设数据标识表可准确地反映出读缓存集群中现有的缓存数据有哪些。
基于此,参考图4,对于目标计算节点来说,在确定出待读数据对应的目标数据标识之后,可查询其本地维护的预设数据标识表中是否存在目标数据标识,若存在,则可确定待读数据在读缓存集群中所处的目标缓存设备;并从目标缓存设备中读取待读数据。其中,在预设数据标识表中存在目标数据标识,则表明读缓存集群中存在待读数据,因此,目标计算节点可从读缓存集群中读取到待读数据,而不再需要去存储集群中读取。这种情况下,在读缓存集群中,待读数据可能存储在目标计算节点上装配的第一缓存设备中,则目标计算节点可从其上的第一缓存设备中读取到待读数据;待读数据也可能存储在计算集群中其它计算节点上装配的缓存设备中,则目标计算节点可向该缓存设备发起针对待读数据的数据访问请求,以从该缓存设备中读取到待读数据。值得说明的是,即使目标计算节点需要从计算集群中其它计算节点上装配的缓存设备中远程读取待读数据,也比目标计算节点去存储集群中读取待读数据所耗费的读延时低很多,网络开销也低很多。
参考图4,对于目标计算节点来说,若在其本地维护的预设数据标识表中不存在目标数据标识,则表明读缓存集群中未缓存待读数据,目标计算节点可从存储集群中读取待读数据。这种情况下,可对接至上述提及的目标计算节点从存储集群中读取到数据之后的处理过程,也即是:将读取到的数据存储至目标计算节点上装配的第一缓存设备;将目标数据标识加入目标计算节点自身维护的预设数据标识表中;并将目标数据标识同步至计算集群中的其它计算节点,以供其它计算节点将目标数据标识加入各自维护的预设数据标识表中。
从上述目标计算节点读取待读数据的过程可知,本实施例中,可以计算集群中各个计算节点上分别装配的缓存设备组成读缓存集群,计算集群中的任意计算节点上发生读请求时,可查询读缓存集群中是否存在待读数据,而由于读缓存集群的容量比单个缓存设备的容量大很多,其内的缓存数据的重复率又很低,因此,读请求在读缓存集群中的命中率更高,这可有效提高计算集群的读缓存命中率,缩短读路径,进而更好地降低读延时。
为了更快地在读缓存集群中读取到待读数据,本实施例中,还提出在预设数据标识表中记录数据标识与数据存储位置信息之间的映射关系。参考图5,采用哈希值作为数据标识的情况下,相应的,预设数据标识表可采用图5所示的哈希内容映射表,哈希内容映射表中可包含哈希值与数据存储位置信息之间的映射关系。示例性的,哈希内容映射表中的哈希值可按升序进行排列,当然,这仅是示例性的,本实施例对此不做限定。图6为本申请一示例性实施例提供的一种数据存储位置信息的实现方案示意图。参考图6,本实施例中,数据存储位置信息中可包含缓存设备编号,缓存设备编号为将读缓存集群中的各个缓存设备作为块设备进行编号而产生的。这里,可将读缓存集群看做块设备组,每个缓存设备作为一个块设备使用,基于此,可为每个缓存设备进行编号,以产生缓存设备编号,缓存设备编号可用于唯一标识一个缓存设备,计算集群中的各个计算节点均已知并遵循统一的缓存设备编号结果。
这样,目标计算节点在确定待读数据在读缓存集群中所处的目标缓存设备的过程中:可从预设数据标识表中,查找与目标数据标识映射的目标数据存储位置信息;根据目标数据存储位置信息中包含的缓存设备编号,在读缓存集群中查找缓存设备编号所指向的缓存设备,作为目标缓存设备。从而,目标计算节点可通过查询其上维护的预设数据标识表而快速准确地找到待读数据所处的目标缓存设备。
在确定出待读数据所处的目标缓存设备之后,目标计算节点可采用多种实现方式来最终读取到待读数据。参考图6,数据存储位置信息中除了包含缓存设备编号之外,还可包含缓存数据在缓存设备上的数据起始地址和数据长度,以精确地表征缓存数据在目标缓存设备上的存储位置。基于此,一种示例性的读取方案中:目标计算节点可根据从预设数据标识表中查询到的数据起始地址和数据长度,从目标缓存设备中读取待读数据。这样,目标计算节点可从目标缓存设备中读取到待读数据。当然,本实施例中,数据存储位置信息中也可无需包含数据起始地址和数据长度,这种情况下,目标计算节点可向目标缓存设备发起模糊访问(例如仅携带待读数据的数据标识),目标缓存设备则可根据自有的文件管理系统来查询到待读数据的存储位置,并将待读数据返回给目标计算节点,本实施例并不限于此。
另外,本实施例中,目标计算节点还可监测其上装配的第一缓存设备的容量水位,在第一缓存设备的容量不足的情况下,将第一缓存设备中访问热度低于指定阈值或者已写入存储集群中的缓存数据删除;将已删除的缓存数据对应的数据标识从目标计算节点自身维护的预设数据标识表中删除;并将已删除的数据标识通知至计算集群中的其它计算节点,以供其它计算节点在各自维护的预设数据标识表中进行同步删除。正如前文提及的,本实施例中,读缓存集群中的缓存数据包含两方面的数据,一方面是从存储集群中读取的历史数据,对于这一类数据,可在其访问热度低于指定阈值的情况下,将其删除;另一方面是计算集群中发生的待写数据,对于这一类数据,可在其已写入存储集群后,将其删除,值得说明的是,对于这一类数据,应将其所处目标写缓存组内的所有备份或纠删码分片等相关数据全部删除。而为了保持预设数据标识表的准确性,读缓存集群中的单个缓存设备上发生缓存数据删除事件时(对应图5中的缓存淘汰),各个计算节点上维护的预设数据标识表中将同步删除相关的数据标识。同样,目标计算节点除了通过将已删除的数据标识同步至其它计算节点来保持各个计算节点上维护的预设数据标识表的一致性之外,也可按照前文中提及的,将更新后的预设数据标识表发送至其它计算节点,来保持各个计算节点上维护的预设数据标识表的一致性,本实施例对此不做限定。
为了简化设计并提升效率,考虑到存储集群中已有各个缓存数据的备份,因此,本实施例中的读缓存集群中的各个缓存设备无需进行数据回收,而仅需进行部分数据删除以释放容量空间即可。举例来说,例如,一个缓存设备上的缓存数据为ABCDE,ACE已被删除,为了回收这个缓存设备,需要将BD读出并写入别的地方,从而释放整个缓存设备;但是,因为本实施例中BD在存储集群有备份,因此,本实施例中并无需回收该缓存设备,这可节省数据回收的时间与开销,且可避免重新整理缓存数据的位置等操作。
综上,本实施例中,在读环节中,计算集群的各个计算节点上装配的缓存设备,可组成读缓存集群,这样可为计算集群提供大容量的读缓存;且本实施例中可基于预设数据标识表来管理读缓存集群,从而更加快速准确地为计算集群在读缓存集群中命中所需的待读数据。读缓存集群中,无需重复缓存数据,这使得读缓存集群可缓存更多数据而提高读缓存命中率,进而优化计算集群的读性能。
据此,本实施例提供的计算集群的读/写缓存方案,装配在计算节点上的缓存设备可复用为读缓存和写缓存,且在读环节和写环节中计算集群中各个计算节点上装配的缓存设备可被组织为不同的结构,以更好地承担读缓存和写缓存的角色;在写环节中,可有效缩短计算节点的写入路径,实现数据的快速写入,提升写性能;且写环节中发生的待写数据在写入存储集群之前还可发挥读缓存作用。而在读环节中,可通过预设数据标识表来管理缓存设备组建的读缓存集群,从而提高计算集群在读缓存集群中的命中率,减少后端存储集群访问,缩短数据搬运途径,且更快更准确地从读缓存集群中读取到所需数据,提升读性能。
应当理解的是,单独从读环节或写环节来看,上述实施例提供的性能优化系统均相对于传统方案存在技术创新,因此,本实施例中的读环节和写环节可作为单独的技术方案而获得保护,为节省篇幅,在此不做重复描述,但这不应造成对本申请保护范围的损失。
图7为本申请一示例性实施例提供的一种计算集群的性能提升方法的流程示意图。参考图7,该方法可应用于计算集群中的任一目标计算节点,计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备组成读缓存集群;该方法可包括:
步骤700、响应于读请求,确定待读数据对应的目标数据标识;
步骤701、若在预设数据标识表中查找到目标数据标识,则确定待读数据在读缓存集群中所处的目标缓存设备;
步骤702、从目标缓存设备中读取待读数据;
其中,预设数据标识表中记录有读缓存集群中各个缓存设备上的缓存数据的数据标识。
在一可选实施例中,该方法还可包括:
若在预设数据标识表中未查找到目标数据标识,则从存储集群中读取待读数据;
将读取到的数据存储至目标计算节点上装配的第一缓存设备;
将目标数据标识加入目标计算节点自身维护的预设数据标识表中;
将目标数据标识同步至计算集群中的其它计算节点,以供其它计算节点将目标数据标识加入各自维护的预设数据标识表中;
其中,预设数据标识表中的不同缓存数据对应的数据标识不同。
在一可选实施例中,步骤700可包括:
按照预置的标识计算规则,计算待读数据对应的目标数据标识。
在一可选实施例中,预设数据标识表还包括数据标识与数据存储位置信息之间的映射关系,步骤701可包括:
从预设数据标识表中,查找与目标数据标识映射的目标数据存储位置信息;
根据目标数据存储位置信息中包含的缓存设备编号,在读缓存集群中查找缓存设备编号所指向的缓存设备,作为目标缓存设备;
其中,缓存设备编号为将读缓存集群中的各个缓存设备作为块设备进行编号而产生的。
在一可选实施例中,目标数据存储位置信息中还包含数据起始地址和数据长度,步骤702可包括:
根据数据起始地址和数据长度,从目标缓存设备中读取待读数据。
在一可选实施例中,计算集群中所装配的缓存设备还分组为至少一个写缓存组,该方法还可包括:
响应于写请求,将待写数据写入目标计算节点上装配的第一缓存设备;
利用第一缓存设备所在的目标写缓存组对待写数据进行缓存;
通过目标写缓存组内的第二缓存设备将待写数据写入存储集群;
其中,第二缓存设备为目标写缓存组中无故障的缓存设备,第二缓存设备与第一缓存设备相同或不同。
在一可选实施例中,步骤利用第一缓存设备所在的目标写缓存组对待写数据进行缓存,包括:
为待写数据生成备份数据;
将备份数据分别发送至目标写缓存组内除第一缓存设备之外的其它缓存设备,以对待写数据进行缓存;
其中,目标写缓存组内存储的待写数据及其备份数据保持一致性。
在一可选实施例中,步骤通过第二缓存设备将待写数据写入存储集群的过程,可包括:
通过第二缓存设备对待写数据进行纠删码编码,以产生待写数据对应的第一指定数量的纠删码分片;
通过第二缓存设备将第一指定数量的纠删码分片一对一写入存储集群中的多个存储节点中。
在一可选实施例中,步骤利用第一缓存设备所在的目标写缓存组对待写数据进行缓存,可包括:
通过第一缓存设备,对待写数据进行纠删码编码,以产生第二指定数量的纠删码分片,纠删码分片中包含原始数据分片和冗余数据分片;
将第二指定数量的纠删码分片一对一存储至目标写缓存组中的各个缓存设备,第二指定数量与目标写缓存组中的缓存设备数量一致;
其中,目标写缓存组中为待写数据存储的各个纠删码分片保持一致性。
在一可选实施例中,通过目标写缓存组内的第二缓存设备将待写数据写入存储集群,包括:
通过第二缓存设备从目标写缓存组中读取待写数据对应的原始数据分片;
通过第二缓存设备将原始数据分片写入存储集群,以供存储集群基于原始数据分片对待写数据进行存储;
其中,存储集群采用的存储方式包括按照纠删码机制进行存储或者按照多备份机制进行存储。
在一可选实施例中,待写数据写入第一缓存设备后,作为第一缓存设备中的缓存数据;该方法还可包括:
确定待写数据对应的数据标识,
将待写数据对应的数据标识加入目标计算节点自身维护的预设数据标识表中;
将待写数据对应的数据标识同步至计算集群中的其它计算节点,以供其它计算节点将待写数据的数据标识加入各自维护的预设数据标识表中。
在一可选实施例中,该方法还可包括:
在第一缓存设备的容量不足的情况下,将第一缓存设备中访问热度低于指定阈值或者已写入存储集群中的缓存数据删除;
将已删除的缓存数据对应的数据标识从目标计算节点自身维护的预设数据标识表中删除;
将已删除的数据标识通知至计算集群中的其它计算节点,以供其它计算节点在各自维护的预设数据标识表中进行同步删除。
值得说明的是,上述关于性能优化方法各实施例中的技术细节,可参考前述的系统实施例中关于目标计算节点的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
图8为本申请另一示例性实施例提供的另一种计算集群的性能优化方法的流程示意图。参考图8,该方法可应用于计算集群中的任一目标计算节点,计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备分组为至少一个写缓存组;方法可包括:
步骤800、响应于写请求,将待写数据写入计算节点上装配的第一缓存设备;
步骤801、利用第一缓存设备所在的目标写缓存组对待写数据进行缓存;
步骤802、通过目标写缓存组内的第二缓存设备,将待写数据写入存储集群;
其中,第二缓存设备为目标写缓存组中无故障的缓存设备,第二缓存设备与第一缓存设备相同或不同。
在一可选实施例中,步骤801可包括:
为待写数据生成备份数据;
将备份数据分别发送至目标写缓存组内除第一缓存设备之外的其它缓存设备,以对待写数据进行缓存;
其中,目标写缓存组内存储的待写数据及其备份数据保持一致性。
在一可选实施例中,步骤802可包括:
通过第二缓存设备对待写数据进行纠删码编码,以产生待写数据对应的第一指定数量的纠删码分片;
通过第二缓存设备将第一指定数量的纠删码分片一对一写入存储集群中的多个存储节点中。
在一可选实施例中,步骤801,可包括:
通过第一缓存设备,对待写数据进行纠删码编码,以产生第二指定数量的纠删码分片,纠删码分片中包含原始数据分片和冗余数据分片;
将第二指定数量的纠删码分片一对一存储至目标写缓存组中的各个缓存设备,第二指定数量与目标写缓存组中的缓存设备数量一致;
其中,目标写缓存组中为待写数据存储的各个纠删码分片保持一致性。
在一可选实施例中,步骤802可包括:
通过第二缓存设备从目标写缓存组中读取待写数据对应的原始数据分片;
通过第二缓存设备将原始数据分片写入存储集群,以供存储集群基于原始数据分片对待写数据进行存储;
其中,存储集群采用的存储方式包括按照纠删码机制进行存储或者按照多备份机制进行存储。
在一可选实施例中,待写数据写入第一缓存设备后,作为第一缓存设备中的缓存数据;该方法还可包括:
确定待写数据对应的数据标识,
将待写数据对应的数据标识加入目标计算节点自身维护的预设数据标识表中;
将待写数据对应的数据标识同步至计算集群中的其它计算节点,以供其它计算节点将待写数据的数据标识加入各自维护的预设数据标识表中;
其中,预设数据标识表中记录有各个缓存设备上的缓存数据的数据标识。
在一可选实施例中,该方法还可包括:
在第一缓存设备的容量不足的情况下,将第一缓存设备中访问热度低于指定阈值或者已写入存储集群中的缓存数据删除;
将已删除的缓存数据对应的数据标识从目标计算节点自身维护的预设数据标识表中删除;
将已删除的数据标识通知至计算集群中的其它计算节点,以供其它计算节点在各自维护的预设数据标识表中进行同步删除。
值得说明的是,上述关于性能优化方法各实施例中的技术细节,可参考前述的系统实施例中关于目标计算节点的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如801、802等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的缓存设备等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图9为本申请又一示例性实施例提供的一种计算节点的结构示意图。该计算节点所处的计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备组成读缓存集群,如图9所示,该计算节点包括:存储器90和处理器91。
处理器91,与存储器90耦合,用于执行存储器90中的计算机程序,以用于:
响应于读请求,确定待读数据对应的目标数据标识;
若在预设数据标识表中查找到目标数据标识,则确定待读数据在读缓存集群中所处的目标缓存设备;
从目标缓存设备中读取待读数据;
其中,预设数据标识表中记录有读缓存集群中各个缓存设备上的缓存数据的数据标识。
在一可选实施例中,处理器91可用于:
若在预设数据标识表中未查找到目标数据标识,则从存储集群中读取待读数据;
将读取到的数据存储至目标计算节点上装配的第一缓存设备;
将目标数据标识加入目标计算节点自身维护的预设数据标识表中;
将目标数据标识同步至计算集群中的其它计算节点,以供其它计算节点将目标数据标识加入各自维护的预设数据标识表中;
其中,预设数据标识表中的不同缓存数据对应的数据标识不同。
在一可选实施例中,处理器91在确定待读数据对应的目标数据标识时,可具体用于:
按照预置的标识计算规则,计算待读数据对应的目标数据标识。
在一可选实施例中,预设数据标识表还包括数据标识与数据存储位置信息之间的映射关系,处理器91在确定待读数据在读缓存集群中所处的目标缓存设备时,可具体用于:
从预设数据标识表中,查找与目标数据标识映射的目标数据存储位置信息;
根据目标数据存储位置信息中包含的缓存设备编号,在读缓存集群中查找缓存设备编号所指向的缓存设备,作为目标缓存设备;
其中,缓存设备编号为将读缓存集群中的各个缓存设备作为块设备进行编号而产生的。
在一可选实施例中,目标数据存储位置信息中还包含数据起始地址和数据长度,处理器91在从目标缓存设备中读取待读数据时,可具体用于:
根据数据起始地址和数据长度,从目标缓存设备中读取待读数据。
在一可选实施例中,计算集群中所装配的缓存设备还分组为至少一个写缓存组,处理器91还可用于:
响应于写请求,将待写数据写入目标计算节点上装配的第一缓存设备;
利用第一缓存设备所在的目标写缓存组对待写数据进行缓存;
通过目标写缓存组内的第二缓存设备将待写数据写入存储集群;
其中,第二缓存设备为目标写缓存组中无故障的缓存设备,第二缓存设备与第一缓存设备相同或不同。
在一可选实施例中,处理器91在利用第一缓存设备所在的目标写缓存组对待写数据进行缓存时,可具体用于:
为待写数据生成备份数据;
将备份数据分别发送至目标写缓存组内除第一缓存设备之外的其它缓存设备,以对待写数据进行缓存;
其中,目标写缓存组内存储的待写数据及其备份数据保持一致性。
在一可选实施例中,处理器91在通过第二缓存设备将待写数据写入存储集群时,可具体用于:
通过第二缓存设备对待写数据进行纠删码编码,以产生待写数据对应的第一指定数量的纠删码分片;
通过第二缓存设备将第一指定数量的纠删码分片一对一写入存储集群中的多个存储节点中。
在一可选实施例中,处理器91在利用第一缓存设备所在的目标写缓存组对待写数据进行缓存时,可具体用于:
通过第一缓存设备,对待写数据进行纠删码编码,以产生第二指定数量的纠删码分片,纠删码分片中包含原始数据分片和冗余数据分片;
将第二指定数量的纠删码分片一对一存储至目标写缓存组中的各个缓存设备,第二指定数量与目标写缓存组中的缓存设备数量一致;
其中,目标写缓存组中为待写数据存储的各个纠删码分片保持一致性。
在一可选实施例中,处理器91在通过目标写缓存组内的第二缓存设备将待写数据写入存储集群时,可具体用于:
通过第二缓存设备从目标写缓存组中读取待写数据对应的原始数据分片;
通过第二缓存设备将原始数据分片写入存储集群,以供存储集群基于原始数据分片对待写数据进行存储;
其中,存储集群采用的存储方式包括按照纠删码机制进行存储或者按照多备份机制进行存储。
在一可选实施例中,待写数据写入第一缓存设备后,作为第一缓存设备中的缓存数据;处理器91还可用于:
确定待写数据对应的数据标识,
将待写数据对应的数据标识加入目标计算节点自身维护的预设数据标识表中;
将待写数据对应的数据标识同步至计算集群中的其它计算节点,以供其它计算节点将待写数据的数据标识加入各自维护的预设数据标识表中。
在一可选实施例中,处理器91还可用于:
在第一缓存设备的容量不足的情况下,将第一缓存设备中访问热度低于指定阈值或者已写入存储集群中的缓存数据删除;
将已删除的缓存数据对应的数据标识从目标计算节点自身维护的预设数据标识表中删除;
将已删除的数据标识通知至计算集群中的其它计算节点,以供其它计算节点在各自维护的预设数据标识表中进行同步删除。
进一步,如图9所示,该计算节点还包括:通信组件92、电源组件93等其它组件。图9中仅示意性给出部分组件,并不意味着计算节点只包括图9所示组件。
值得说明的是,上述关于计算节点各实施例中的技术细节,可参考前述的系统实施例中关于目标计算节点的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
图10为本申请又一示例性实施例提供的另一种计算节点的结构示意图。该计算节点所处的计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备分组为至少一个写缓存组,如图10所示,该计算设备包括:存储器10和处理器11。
处理器11,与存储器10耦合,用于执行存储器10中的计算机程序,以用于:
响应于写请求,将待写数据写入计算节点上装配的第一缓存设备;
利用第一缓存设备所在的目标写缓存组对待写数据进行缓存;
通过目标写缓存组内的第二缓存设备,将待写数据写入存储集群;
其中,第二缓存设备为目标写缓存组中无故障的缓存设备,第二缓存设备与第一缓存设备相同或不同。
在一可选实施例中,处理器11在利用第一缓存设备所在的目标写缓存组对待写数据进行缓存时,可具体用于:
为待写数据生成备份数据;
将备份数据分别发送至目标写缓存组内除第一缓存设备之外的其它缓存设备,以对待写数据进行缓存;
其中,目标写缓存组内存储的待写数据及其备份数据保持一致性。
在一可选实施例中,处理器11在通过目标写缓存组内的第二缓存设备将待写数据写入存储集群时,可具体用于:
通过第二缓存设备对待写数据进行纠删码编码,以产生待写数据对应的第一指定数量的纠删码分片;
通过第二缓存设备将第一指定数量的纠删码分片一对一写入存储集群中的多个存储节点中。
在一可选实施例中,处理器11在利用第一缓存设备所在的目标写缓存组对待写数据进行缓存时,可具体用于:
通过第一缓存设备,对待写数据进行纠删码编码,以产生第二指定数量的纠删码分片,纠删码分片中包含原始数据分片和冗余数据分片;
将第二指定数量的纠删码分片一对一存储至目标写缓存组中的各个缓存设备,第二指定数量与目标写缓存组中的缓存设备数量一致;
其中,目标写缓存组中为待写数据存储的各个纠删码分片保持一致性。
在一可选实施例中,处理器11在通过目标写缓存组内的第二缓存设备将待写数据写入存储集群时,可具体用于:
通过第二缓存设备从目标写缓存组中读取待写数据对应的原始数据分片;
通过第二缓存设备将原始数据分片写入存储集群,以供存储集群基于原始数据分片对待写数据进行存储;
其中,存储集群采用的存储方式包括按照纠删码机制进行存储或者按照多备份机制进行存储。
在一可选实施例中,待写数据写入第一缓存设备后,作为第一缓存设备中的缓存数据;处理器11还可用于:
确定待写数据对应的数据标识,
将待写数据对应的数据标识加入目标计算节点自身维护的预设数据标识表中;
将待写数据对应的数据标识同步至计算集群中的其它计算节点,以供其它计算节点将待写数据的数据标识加入各自维护的预设数据标识表中;
其中,预设数据标识表中记录有各个缓存设备上的缓存数据的数据标识。
在一可选实施例中,处理器11还可用于:
在第一缓存设备的容量不足的情况下,将第一缓存设备中访问热度低于指定阈值或者已写入存储集群中的缓存数据删除;
将已删除的缓存数据对应的数据标识从目标计算节点自身维护的预设数据标识表中删除;
将已删除的数据标识通知至计算集群中的其它计算节点,以供其它计算节点在各自维护的预设数据标识表中进行同步删除。
进一步,如图10所示,该计算节点还包括:通信组件12、电源组件13等其它组件。图1中仅示意性给出部分组件,并不意味着计算节点只包括图10所示组件。
值得说明的是,上述关于计算节点各实施例中的技术细节,可参考前述的系统实施例中关于目标计算节点的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算节点执行的各步骤。
上述图9和10中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
上述图9和10中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图9和10中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种计算集群的性能优化系统,包括:计算集群中的各个计算节点和所述各个计算节点上分别装配的缓存设备,装配的缓存设备组成读缓存集群;
所述计算集群中的目标计算节点,用于响应于读请求确定待读数据对应的目标数据标识;若在预设数据标识表中查找到所述目标数据标识,则确定所述待读数据在所述读缓存集群中所处的目标缓存设备;从所述目标缓存设备中读取所述待读数据;
其中,所述预设数据标识表中记录有所述读缓存集群中各个缓存设备上的缓存数据的数据标识。
2.根据权利要求1所述的系统,所述计算集群中所装配的缓存设备还分组为至少一个写缓存组;
所述目标计算节点,还用于响应于写请求,将待写数据写入所述目标计算节点上装配的第一缓存设备;利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存;
所述目标写缓存组内的第二缓存设备,用于将所述待写数据写入存储集群;
其中,所述第二缓存设备为所述目标写缓存组中无故障的缓存设备,第二缓存设备与所述第一缓存设备相同或不同。
3.一种计算集群的性能优化系统,包括:计算集群中的各个计算节点和所述各个计算节点上分别装配的缓存设备,装配的缓存设备分组为至少一个写缓存组;
所述计算集群中的目标计算节点,用于响应于写请求,将待写数据写入所述目标计算节点上装配的第一缓存设备;利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存;
所述目标写缓存组内的第二缓存设备,用于将所述待写数据写入存储集群;
其中,所述第二缓存设备为所述目标写缓存组中无故障的缓存设备,第二缓存设备与所述第一缓存设备相同或不同。
4.一种计算集群的性能优化方法,应用于计算集群中的任一目标计算节点,所述计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备组成读缓存集群;所述方法包括:
响应于读请求,确定待读数据对应的目标数据标识;
若在预设数据标识表中查找到所述目标数据标识,则确定所述待读数据在所述读缓存集群中所处的目标缓存设备;
从所述目标缓存设备中读取所述待读数据;
其中,所述预设数据标识表中记录有所述读缓存集群中各个缓存设备上的缓存数据的数据标识。
5.根据权利要求4所述的方法,还包括:
若在所述预设数据标识表中未查找到所述目标数据标识,则从存储集群中读取所述待读数据;
将读取到的数据存储至所述目标计算节点上装配的第一缓存设备;
将所述目标数据标识加入所述目标计算节点自身维护的所述预设数据标识表中;
将所述目标数据标识同步至所述计算集群中的其它计算节点,以供所述其它计算节点将所述目标数据标识加入各自维护的预设数据标识表中;
其中,所述预设数据标识表中的不同缓存数据对应的数据标识不同。
6.根据权利要求4所述的方法,所述预设数据标识表还包括数据标识与数据存储位置信息之间的映射关系,所述确定所述待读数据在所述读缓存集群中所处的目标缓存设备,包括:
从所述预设数据标识表中,查找与所述目标数据标识映射的目标数据存储位置信息;
根据所述目标数据存储位置信息中包含的缓存设备编号,在所述读缓存集群中查找所述缓存设备编号所指向的缓存设备,作为所述目标缓存设备;
其中,所述缓存设备编号为将所述读缓存集群中的各个缓存设备作为块设备进行编号而产生的。
7.根据权利要求6所述的方法,所述目标数据存储位置信息中还包含数据起始地址和数据长度,所述从所述目标缓存设备中读取所述待读数据,包括:
根据所述数据起始地址和所述数据长度,从所述目标缓存设备中读取所述待读数据。
8.根据权利要求4所述的方法,所述计算集群中所装配的缓存设备还分组为至少一个写缓存组,所述方法还包括:
响应于写请求,将待写数据写入所述目标计算节点上装配的第一缓存设备;
利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存;
通过所述目标写缓存组内的第二缓存设备将所述待写数据写入存储集群;
其中,第二缓存设备为目标写缓存组中无故障的缓存设备,第二缓存设备与第一缓存设备相同或不同。
9.根据权利要求8所述的方法,所述利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存,包括:
为所述待写数据生成备份数据;
将所述备份数据分别发送至所述目标写缓存组内除所述第一缓存设备之外的其它缓存设备,以对所述待写数据进行缓存;
其中,所述目标写缓存组内存储的所述待写数据及其备份数据保持一致性。
10.根据权利要求9所述的方法,所述通过第二缓存设备将所述待写数据写入存储集群,包括:
通过所述第二缓存设备对所述待写数据进行纠删码编码,以产生所述待写数据对应的第一指定数量的纠删码分片;
通过所述第二缓存设备将所述第一指定数量的纠删码分片一对一写入所述存储集群中的多个存储节点中。
11.根据权利要求8所述的方法,所述利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存,包括:
通过所述第一缓存设备,对所述待写数据进行纠删码编码,以产生第二指定数量的纠删码分片,所述纠删码分片中包含原始数据分片和冗余数据分片;
将所述第二指定数量的纠删码分片一对一存储至所述目标写缓存组中的各个缓存设备,所述第二指定数量与所述目标写缓存组中的缓存设备数量一致;
其中,所述目标写缓存组中为所述待写数据存储的各个纠删码分片保持一致性。
12.根据权利要求11所述的方法,所述通过所述目标写缓存组内的第二缓存设备将所述待写数据写入存储集群,包括:
通过所述第二缓存设备从所述目标写缓存组中读取所述待写数据对应的原始数据分片;
通过所述第二缓存设备将所述原始数据分片写入所述存储集群,以供所述存储集群基于所述原始数据分片对所述待写数据进行存储;
其中,所述存储集群采用的存储方式包括按照纠删码机制进行存储或者按照多备份机制进行存储。
13.根据权利要求8所述的方法,所述待写数据写入所述第一缓存设备后,作为所述第一缓存设备中的缓存数据;所述方法还包括:
确定所述待写数据对应的数据标识,
将所述待写数据对应的数据标识加入所述目标计算节点自身维护的所述预设数据标识表中;
将所述待写数据对应的数据标识同步至所述计算集群中的其它计算节点,以供所述其它计算节点将所述待写数据的数据标识加入各自维护的预设数据标识表中。
14.根据权利要求4所述的方法,还包括:
在所述目标计算节点上装配的第一缓存设备的容量不足的情况下,将所述第一缓存设备中访问热度低于指定阈值或者已写入存储集群中的缓存数据删除;
将已删除的缓存数据对应的数据标识从所述目标计算节点自身维护的所述预设数据标识表中删除;
将已删除的数据标识通知至所述计算集群中的其它计算节点,以供所述其它计算节点在各自维护的预设数据标识表中进行同步删除。
15.一种计算集群的性能优化方法,应用于计算集群中的任一目标计算节点,所述计算集群中的各个计算节点上分别装配有缓存设备,装配的缓存设备分组为至少一个写缓存组;所述方法包括:
响应于写请求,将待写数据写入所述计算节点上装配的第一缓存设备;
利用所述第一缓存设备所在的目标写缓存组对所述待写数据进行缓存;
通过所述目标写缓存组内的第二缓存设备,将所述待写数据写入存储集群;
其中,所述第二缓存设备为所述目标写缓存组中无故障的缓存设备,第二缓存设备与所述第一缓存设备相同或不同。
16.一种计算节点,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于执行权利要求4-15任一项所述的计算集群的性能优化方法。
17.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求4-15任一项所述的计算集群的性能优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310085753.6A CN116009788A (zh) | 2023-01-11 | 2023-01-11 | 计算集群的性能优化方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310085753.6A CN116009788A (zh) | 2023-01-11 | 2023-01-11 | 计算集群的性能优化方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116009788A true CN116009788A (zh) | 2023-04-25 |
Family
ID=86026884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310085753.6A Pending CN116009788A (zh) | 2023-01-11 | 2023-01-11 | 计算集群的性能优化方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116009788A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093159A (zh) * | 2023-10-18 | 2023-11-21 | 同方威视科技江苏有限公司 | 用于加速存储设备的方法和装置 |
CN117240917A (zh) * | 2023-11-08 | 2023-12-15 | 阿里云计算有限公司 | 缓存型云存储系统与数据读写方法、设备及存储介质 |
CN117474062A (zh) * | 2023-12-28 | 2024-01-30 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
-
2023
- 2023-01-11 CN CN202310085753.6A patent/CN116009788A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093159A (zh) * | 2023-10-18 | 2023-11-21 | 同方威视科技江苏有限公司 | 用于加速存储设备的方法和装置 |
CN117093159B (zh) * | 2023-10-18 | 2024-01-26 | 同方威视科技江苏有限公司 | 用于加速存储设备的方法和装置 |
CN117240917A (zh) * | 2023-11-08 | 2023-12-15 | 阿里云计算有限公司 | 缓存型云存储系统与数据读写方法、设备及存储介质 |
CN117240917B (zh) * | 2023-11-08 | 2024-04-05 | 阿里云计算有限公司 | 缓存型云存储系统与数据读写方法、设备及存储介质 |
CN117474062A (zh) * | 2023-12-28 | 2024-01-30 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116009788A (zh) | 计算集群的性能优化方法、系统、设备及存储介质 | |
CN108810041B (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
US11307776B2 (en) | Method for accessing distributed storage system, related apparatus, and related system | |
US10469577B2 (en) | Caching method and system based on cache cluster | |
JP6708948B2 (ja) | ブロックストレージ | |
US20190251009A1 (en) | Manager election for erasure coding groups | |
US9344525B2 (en) | Method and apparatus for data migration | |
US9436392B1 (en) | Access-based eviction of blocks from solid state drive cache memory | |
US9411685B2 (en) | Parity chunk operating method and data server apparatus for supporting the same in distributed raid system | |
US8347050B2 (en) | Append-based shared persistent storage | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
US20190236302A1 (en) | Augmented metadata and signatures for objects in object stores | |
US20130297969A1 (en) | File management method and apparatus for hybrid storage system | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及系统 | |
CN108762668B (zh) | 一种处理写入冲突的方法及装置 | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
CN105278882A (zh) | 一种分布式文件系统的磁盘管理方法 | |
CN104486438A (zh) | 分布式存储系统的容灾方法及装置 | |
CN106027638B (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN109391487A (zh) | 一种配置更新方法和系统 | |
CN104917788A (zh) | 一种数据存储方法及装置 | |
CN110618790A (zh) | 基于重复数据删除的雾存储数据去冗余方法 | |
US20150378856A1 (en) | Storage system, storage device, control method and control program of storage device, management device, and control method and storage medium | |
CN113535666A (zh) | 数据写入方法及装置、数据库系统、存储介质 | |
CN114115750B (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 |