计算系统及数据处理系统的制作方法
未命名
07-15
阅读:101
评论:0
1.本公开涉及计算系统及数据处理系统,特别涉及分布式计算中的分布式计算系统及分布式存储系统之间的数据缓存方案。
背景技术:
2.随着互联网技术的发展,对系统计算能力和数据存储能力的要求越来越高。
3.为实现计算能力与存储能力各自独立水平拓展,计算与存储分离的架构应运而生。计算集群(分布式计算系统)与存储集群(分布式存储系统)通过数据中心网络连接,实现了数据存储与计算资源互通。
4.图1示意性地示出了现有技术的计算存储分离集群架构。
5.图1所示为现行计算存储分离集群系统。其中,为了改善前后两端,也即计算和存储两端,之间数据链路长的问题,引入了读缓存和写缓存,来加速数据读写性能。
6.如图1所示,在计算集群的各计算节点中,除了常规的中央处理单元(cpu)、内存、系统盘、网卡等器件之外,添加了读缓存。
7.读缓存用于缓存从存储集群读取的数据以用于计算节点进行计算。通过引入读缓存,可以降低从存储集群读取数据的频次。
8.另一方面,在存储集群的各存储节点中,除了常规的cpu、内存、系统盘、数据盘、网卡等器件之外,添加了写缓存。
9.写缓存用于缓存来自计算集群要写入存储集群的数据。通过引入写缓存,可以缩短数据写入路径,可以以异步写操作来取代同步写操作。
10.然而上述现有架构仍然存在一些设计局限性。
11.例如,设置在计算节点中的读缓存为本地局部缓存,仅缓存该计算节点的读热点数据,未能实现集群层面的缓存数据共享。而受限于各计算节点读缓存的容量,计算节点从读缓存查找数据的命中率仍然有限,获取计算所需数据所需平均时间延迟仍有待降低。
12.因此,仍然需要一种能够进一步改善分布式数据处理系统的综合效能的改进数据缓存方案。
技术实现要素:
13.本公开要解决的一个技术问题是提供一种数据处理系统中的数据缓存方案,其能够进一步改善分布式数据处理系统的综合效能。
14.根据本公开的第一个方面,提供了一种计算系统,包括:计算设备;以及缓存管理部件,连接到计算设备,用于管理来自数据存储系统的读缓存数据和/或要写入到数据存储系统的写缓存数据。其中,计算设备包括网卡,网卡从外部接收数据和/或向外部发送数据,判断接收数据的目的地是计算设备还是缓存管理部件,并将接收数据传送到所判定的目的地。
15.根据本公开的第二个方面,提供了一种数据处理系统,包括:分布式计算系统;分
布式存储系统;以及分布式缓存系统,用于为分布式计算系统和/或分布式存储系统提供全局数据缓存服务。分布式缓存系统缓存来自分布式存储系统的读缓存数据以用于分布式计算系统的数据计算,并且/或者分布式缓存系统缓存来自分布式计算系统的写缓存数据以将所缓存的写缓存数据下刷到分布式存储系统。
16.由此,通过设置提供全局数据缓存服务的分布式缓存系统,取代计算节点的本地读缓存和存储节点的本地写缓存,每个计算节点可用的读缓存空间(分布式缓存系统中的多个缓存节点)增大,查找数据的命中率显著提升。
17.同时,每个缓存节点缓存的读缓存数据可以为多个计算节点复用,数据利用效率也可以提升。
18.将作为缓存节点的缓存管理部件关联到作为计算节点的计算设备,同时可以对计算设备和缓存管理部件各自关联的数据流量加以区分,例如,在实施例中,可以为计算设备和缓存管理部件设置不同的ip地址,或者也可以在计算设备和缓存管理部件各自对应的数据流量中特定字段标明不同的值以便加以区分,使得缓存管理部件与计算设备既能够高速连通,又能够在逻辑上作为网络上两个独立的节点,分别用作分布式计算系统的计算节点和分布式缓存系统的缓存节点。由此,能够更进一步改善分布式数据处理系统的综合效能。
附图说明
19.通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
20.图1示意性地示出了现有技术的计算存储分离集群架构。
21.图2示意性地示出了根据本公开的数据处理系统。
22.图3示意性地示出了缓存节点与计算节点联合部署的实施例。
23.图4示意性地示出了多个分布式缓存子系统。
24.图5示意性地示出了根据本公开的数据处理系统的数据操作。
25.图6是根据本公开一个实施例的缓存管理部件的示意性框图。
26.图7是根据本公开另一个实施例的缓存管理部件的示意性框图。
27.图8示意性地示出了根据本公开的数据处理系统中的数据处理路径。
具体实施方式
28.下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
29.如前文所述,在分布式数据处理系统中,计算与存储分离的架构增大了数据存储与计算之间的路径,拉长了数据从一端到另一端的传输路径,使得系统日益复杂。
30.另一方面,存储集群的容量日益增大。在维持存储容量与吞吐的同时,重复搬运海量数据,将数据重复读出和写入存储集群,会导致显著的资源开销,如带宽、功耗、介质磨损等。
31.如果能够提升单位时间内基于同等数据传输量而完成运算工作的数量,则可以直接改善分布式数据存储系统的综合效能,在降低资源开销的同时提升算力。
32.因此,优化数据读写并合理利用各环节数据,提高复用度,均有助于提升系统效能。
33.综上,设计可匹配前端计算以增大产出的系统可有效降低对存储集群实时资源争抢,提升性能的同时可确保多任务并行的服务稳定性。
34.本公开的实施例中创新地提出了一种融合计算加速与全局缓存的中间层,以提升大数据分析计算的产出效能。
35.图2示意性地示出了根据本公开的数据处理系统。
36.如图2所示,根据本公开的数据处理系统可以包括计算集群(也可以称为“分布式计算系统”或“分布式计算集群”)、存储集群(也可以称为“分布式存储系统”或“分布式存储集群”)以及缓存集群(也可以称为“分布式缓存系统”或“分布式缓存集群”),这些系统之间可以通过高性能互联网连通以进行数据通信。
37.图2中,用倾斜阴影线表示计算节点的本地读缓存和存储节点的本地写缓存都可以取消。
38.如图2所示,缓存集群作为计算集群和存储集群之间的中间层,融合了写缓存和读缓存的功能。
39.作为全局缓存,缓存集群取代了计算节点的本地读缓存和存储节点的本地写缓存,为计算集群和/或存储集群提供全局数据缓存服务。
40.缓存集群可以包括多个用作缓存节点的高速存储节点,每个高速存储节点上可以具有高速存储盘,用于缓存数据。高速存储盘可以采用低延迟的非易失存储介质,承接来自前端分布式计算集群多租户的写入,并在后续异步下刷到分布式存储集群。
41.这样,缓存集群可以缓存来自存储集群的读缓存数据,以用于计算集群的数据计算。另一方面,缓存集群也可以缓存来自计算集群的写缓存数据,以将所缓存的写缓存数据下刷到存储集群。
42.作为缓存集群,计算集群中的计算节点可以从缓存集群中多个缓存节点获取读缓存数据,缓存集群中的缓存节点可以为计算集群中的多个计算节点提供读缓存数据。
43.这样,与现有技术中各个计算节点本地设置读缓存的方案相比,每个计算节点可用的读缓存空间(缓存集群中的多个缓存节点)增大,查找数据的命中率显著提升。
44.同时,每个缓存节点缓存的读缓存数据可以为多个计算节点复用,数据利用效率也可以提升。
45.同样地,存储集群中的存储节点可以从缓存集群中的多个缓存节点获取写缓存数据,缓存集群中的缓存节点可以为存储集群中的多个缓存节点提供写缓存数据。
46.在一些场景下还可以进一步融合加速计算等功能。例如,可以对要下刷到存储节点的数据进行处理,例如数据分块、多节点备份、纠删编码、目的地存储节点分配等。这样,还可以减轻存储集群的数据处理负担。例如,可以由缓存集群完成原来需要由存储集群中的存储节点(第一跳存储节点或第一阶段存储节点)执行的第一跳处理(或第一阶段处理),即从尚未进行存储前预处理和存储节点分配的第一跳数据(或第一阶段数据)得到指向各目的地存储节点以便存储的第二跳数据(第二阶段数据)的处理。
47.本公开的缓存集群可以通过在计算集群和存储集群之外部署另一个分布式集群来实现。
48.或者,本公开的缓存集群也可以与计算集群配合实现。换言之,缓存集群的各个缓存节点可以分别与计算集群中的计算节点联合部署。
49.例如,中间层缓存集群的缓存节点的硬件物理形态可以为与计算集群中的计算节点分别关联,例如可以为部署在计算集群各计算节点中或通过外部连接方式与计算节点关联的缓存管理部件。该缓存管理部件可以通过例如外设部件互联扩展(pcie)链路接入到计算节点。
50.通过将缓存节点部署为与计算节点密切关联,可以缩短缓存与计算之间的数据读写路径。
51.另外,在一些实施例中,也可以便于实现部分计算工作的硬件卸载,将对于缓存数据的一些计算处理部署到缓存管理部件,而不再需要计算节点本身的cpu来执行,节省计算节点的计算资源。
52.而且,与图1中在存储节点本地设置写缓存相比,本公开的写缓存(缓存节点的写缓存功能)实现在计算节点一侧,通过对从计算节点累积的写缓存数据进行预处理,如多节点备份或纠删码(ec)等,可以保证持久化存储数据的一致性。
53.后续可以将写缓存数据尽快下刷至分布式存储集群。这里可以采用异步下刷的方式。可以结合缓存介质写入寿命限制,将缓存节点中用于写缓存功能的容量设计为最小可行容量,从而可以降低成本。
54.在缓存节点与计算节点联合部署的情况下,可以为缓存节点(缓存管理部件)和计算节点(或其计算设备)分配不同的ip地址或标记值,从而对于数据流量,可以区分是对应于缓存节点(缓存管理部件)的,还是对应于计算节点(或其计算设备)的。
55.这样,在逻辑上,仍然可以认为存在独立的缓存节点和计算节点,缓存集群包括多个缓存节点而计算集群包括多个计算节点。而且,计算节点同样可以使用多个缓存节点,缓存节点也可以为多个计算节点提供缓存服务。
56.下面参考图3进一步描述缓存节点与计算节点联合部署的情况。
57.图3示意性地示出了缓存节点与计算节点联合部署的实施例。
58.如图3所示,可以与计算集群中的计算节点关联的部署缓存管理部件。
59.如图3所示,计算节点的计算设备(图3中计算节点中除缓存管理部件之外的部分,为便于描述,仍然可以将此部分称为“计算节点”)和缓存管理部件组成一个新的计算系统。
60.缓存管理部件连接到计算设备。例如,缓存管理部件可以通过pcie链路接入的计算设备,由此可以降低计算设备与缓存管理部件之间的网络传输延迟。
61.缓存管理部件可以部署在计算节点的计算设备机箱内部,也可以设置在计算节点的计算设备机箱外部。
62.通过将作为缓存节点的缓存管理部件与计算集群中的计算节点关联部署,可以减少额外部署服务器以搭建全局缓存集群的网口、机架位、服务器等开销。
63.缓存管理部件可以管理来自数据存储系统(存储集群或分布式存储系统或分布式存储集群)的读缓存数据和/或要写入到数据存储系统的写缓存数据。
64.缓存管理部件可以基于计算设备的数据处理行为,从存储集群预先读取数据,并
作为读缓存数据进行缓存。
65.缓存管理部件也可以积累来自计算设备的写缓存数据,并将积累得到的写缓存数据下刷到存储集群。
66.计算设备包括从外部接收数据和/或向外部发送数据的网卡。
67.网卡可以区分接收和/或发送的数据对应于计算设备还是缓存管理部件,进行相应的处理。在一些实施例中,接收数据和/或发送数据可以标明其对应于计算设备还是缓存管理部件。或者,网卡也可以根据其它一些信息和/或相应规则来判断接收数据和/或发送数据对应于计算设备还是缓存管理部件。本公开的技术方案不限于具体的区分判断方案。
68.网卡可以判断接收数据的目的地是计算设备还是缓存管理部件,并将接收数据传送到所判定的目的地。
69.相应地,还可以在网卡向外部发送的发送数据中标明其来自计算设备还是缓存管理部件。
70.这里,网卡可以为计算设备和缓存管理部件分别分配不同的ip地址。网卡可以产生两个ip地址,一个ip地址分配给计算设备,另一个ip地址分配给缓存管理部件。
71.这样,可以通过发送数据和/或接收数据所关联的ip地址来标明其对应于计算设备还是缓存管理部件。
72.或者,也可以在发送数据和/或接收数据的指定字段用不同的值来标明其对应于计算设备还是缓存管理部件。
73.因此,逻辑上,计算设备和缓存管理部件在网络上可以作为两个可区分的数据通信实体参与数据通信。计算设备仍然可以作为计算集群的计算节点,而缓存管理部件则可以作为缓存集群的缓存节点。换言之,在图3所示的数据处理系统中,计算集群包括多个计算系统(计算节点)中的计算设备(图3中计算节点中除缓存管理部件之外的部分,为便于描述,仍然可以将此部分称为“计算节点”),而缓存集群则可以包括多个计算系统中的缓存管理部件。
74.缓存管理部件可以与其所连接的计算设备直接通信,也可以通过网卡经由网络与其它计算设备通信。因此,图3所示数据处理系统在逻辑上也可以认为与图2所示数据处理系统的基本架构相同,包括计算集群、缓存集群(中间层)和存储集群,只是缓存集群的各缓存节点与计算集群中的计算节点联合部署了。
75.因此,缓存管理部件可以被配置为能够为多个计算系统的计算设备提供读缓存数据。
76.另一方面,缓存管理部件也可以被配置为能够缓存多个计算系统的计算设备产生要下刷到分布式存储系统的写缓存数据。
77.另一方面,缓存管理部件也可以被配置为其所管理的写缓存数据能够被下刷到分布式存储系统中多个存储节点。
78.即一个计算节点的计算设备所关联的缓存管理部件可以为多个计算设备和/或多个存储节点提供读缓存数据和/或写缓存数据的缓存服务。
79.如图所示,计算设备还可以包括cpu、内存、系统盘等其它常规器件,在此不再赘述。
80.另外,在一些实施例中,缓存管理部件除了具备数据缓存功能,例如高速持久化存
储容量,还可以配置一定的数据计算/处理功能,例如可以配置有可编程的计算单元。
81.这样,缓存管理部件可以对从存储集群读取的数据进行第一数据处理,得到处理后数据,以供计算设备进行第二数据处理。
82.另一方面,缓存管理部件也可以对来自计算设备的数据进行预处理,例如前文所述的第一跳处理,得到分配给存储集群的相应存储节点的写缓存数据(第二跳数据)。
83.这样,可以通过靠近计算侧的数据缓存功能结合运算功能,将部分运算功能从计算节点或存储节点的cpu卸载到缓存管理部件,从而提升整体效能。
84.例如,缓存管理部件可以实现部分数据密集型运算,如比较、过滤、排序、编解码、校验等(即上述第一数据处理)。
85.这样,可以使执行这些运算的运算单元靠近缓存节点(缓存管理部件)中的数据存储模块,从而可以免去将大量数据从缓存管理部件搬移到计算节点(计算设备)的系统内存再由计算节点(计算设备)的cpu进行运算的数据搬移过程,避免了内存带宽和pcie带宽开销,缩短了延迟。
86.缓存管理部件作为缓存集群的缓存节点,可以为计算集群中所有计算节点提供数据缓存服务。这里的数据缓存服务包括对来自存储集群的读缓存数据的缓存服务和对来自计算集群的写缓存数据的缓存服务。
87.或者,在一些实施例中,缓存管理部件也可以配置为,为该缓存管理部件所属计算系统(其所关联的计算节点)的计算设备,以及与该缓存管理部件所属计算系统在物理上和/或逻辑上相邻近的计算系统的计算设备提供数据缓存服务。
88.这样,可以避免较远距离的计算节点的计算设备与作为缓存节点的缓存管理部件之间的缓存数据传输,降低数据传输延迟。
89.在一些实施例中,缓存集群可以包括多个分布式缓存子系统(缓存子集群)。各个分布式缓存子系统分别可以包括至少两个计算系统的缓存管理部件(缓存节点),用于为上述至少两个计算系统的计算设备(分布式缓存子系统的缓存节点所关联的计算设备)提供数据缓存服务。
90.图4示意性地示出了多个分布式缓存子系统。
91.如图4所示,关联到各计算节点的缓存管理部件(缓存节点)分组形成多个分布式缓存子系统。
92.例如,可以通过各计算节点的网卡所连接到的交换机组的设置来实现分布式缓存子系统的分组。另外,在一些实施例中,多个分布式缓存子系统之间也可以例如通过交换机组来实现数据交换。
93.在分布式缓存子系统中,可以对所关联的计算设备所需的读缓存数据和/或所产生的写缓存数据进行分布式缓存,例如可以进行多节点备份、纠删编码等,以提升数据安全性和一致性。
94.这里,分布式缓存子系统所关联的上述至少两个计算系统可以是物理上和/或逻辑上相邻近的计算系统。
95.相邻近的范围可以根据需要和实际情形进行设置。例如,可以是网络拓扑关系上直接相邻,也可以是间隔预定节点数量的以内,或者也可以基于网络延迟等参数进行设置。
96.下面以计算集群的计算节点产生、要下刷到存储集群的写缓存数据为例,进行描
述如下。
97.如图4所示,本公开设计了轻量级分布式缓存逻辑。相对于将整个计算集群关联的所有缓存节点(缓存管理部件)视为一个大的分布式缓存系统,本公开通过将大分布式缓存系统划分为多个分布式缓存子系统。
98.例如,可以通过将满足故障域要求(例如相邻asw交换机(接入层交换机)的一台,同asw交换机下的一台)的三台计算节点服务器构成一个分布式缓存子系统,以确保数据一致性,而整个计算集群可分为多个包括三台服务器的小型分布式缓存子系统。
99.这种设计方案简化了数据放置与寻址,也简化了容量均衡,减少了内部数据搬迁带来的开销。
100.计算节点产生的数据在缓存子系统内部可以完全按照日志追加写,而指向存储集群的数据下刷也可以按照读指针递增方式实现。
101.缓存管理部件(缓存节点)的主要操作模式为日志读写,简化了访问模式,有助于提升性能和延长使用寿命。
102.作为对比,现有方案中,设置在存储节点中的写缓存虽然可以实现全局池化,但其远离计算端(计算集群),需经过一跳网络。而且,现有方案中,由于计算节点内部路径和存储节点内部路径的存在,整体写入时间延迟仍然较长。
103.另一方面,在读缓存方面,如前文所述,缓存管理部件可以基于计算设备的数据处理行为,从存储集群预先读取数据,并作为读缓存数据进行缓存。
104.缓存管理部件可以基于计算节点对读缓存数据的选取模式对计算节点后续需要的数据做预判,并在后台从存储集群预先读取数据,以加快计算结果产出。
105.例如,在执行连续图像/视频分析时,在处理当前帧的同时,缓存管理部件可以发起对后端存储集群的预读,将后续若干帧的数据提前加载到缓存管理部件中,作为读缓存数据予以缓存。
106.又例如,大数据分析场景下,若应用已开始读取一个或多个数据集(dataset)的部分数据,则本公开的缓存管理部件可基于预判而预读对应数据集,并将其作为读缓存数据缓存在关联到计算集群的缓存管理部件上。当预读数据在后续处理中被用到时,可显著缩短读取延迟,减少处理等待。反之,若预读数据未被用到,则缓存管理部件可以将其淘汰以释放存储空间。
107.图5示意性地示出了根据本公开的数据处理系统的数据操作。
108.其中,缓存管理部件上可以融合有缓存功能和部分计算功能。
109.图5左侧示出了根据本公开的数据处理系统三个逻辑层面,即,计算集群的计算层、缓存集群的缓存加速层、存储集群的存储层,之间的数据操作。图5右侧则示出了关联到计算节点的用作缓存管理部件的缓存卡。除了数据缓存模块,缓存卡上还可以设置有例如微处理器,以用于执行数据运算。
110.计算层的多租户可以将所产生的要存储的数据随机写到缓存加速层(缓存集群)。写缓存可以以低延迟介质实现分布式数据一致性持久存储。通过缓存累积,将写入的众多小数据块融合(合并)为要写到存储集群的大数据块,然后将所累积(合并)的大数据块下刷到后端存储集群以提升性能与效率。
111.另一方面,如上文所述,通过对计算节点当前读取的读缓存数据,可以对后续运算
所需数据进行预测。于是,缓存加速层可以从存储集群预读数据,并存放于计算集群中执行相应后续运算的计算节点关联的缓存管理部件或与该计算节点相邻近的计算节点关联的缓存管理部件,进一步缩短数据路径,快速响应计算集群的数据索取,加快计算结果产出。
112.这样,可以使用缓存管理部件上的微处理器的部分算力来进行预测并发起预读等操作,而不需要占用计算节点的cpu的算力。由此,计算层的部分计算卸载等缓存加速层。
113.下面参考图6和图7来描述根据本公开实施例的缓存管理部件。
114.图6和图7所示缓存管理部件除了数据缓存功能,还能够实现计算节点所卸载的部分计算功能。
115.图6是根据本公开一个实施例的缓存管理部件的示意性框图。
116.缓存管理部件可以包括数据缓存模块和数据处理及控制模块。
117.数据缓存模块缓存读缓存数据和/或写缓存数据。
118.数据处理及控制模块对读缓存数据和/或写缓存数据进行处理及控制。
119.图7是根据本公开另一个实施例的缓存管理部件的示意性框图。
120.图7中的闪存可以用作图6中缓存读缓存数据和/或写缓存数据的数据缓存模块。图7中除闪存之外的其它部分可以视为图6中数据处理及控制模块。
121.数据处理及控制模块可以包括下述至少一项:逻辑电路,用于基于应用场景对读缓存数据和/或写缓存数据进行逻辑运算;微处理器,用于执行数据处理和/或数据管理;以及硬件加速模块,用于通过硬件方式执行预定数据运算功能。
122.这样,缓存管理部件可以以三种方式实现计算加速。
123.逻辑电路可以由fpga(现场可编程门阵列)实现。fpga可基于多种应用场景实现加速算子的可编程与可修改。
124.微处理器可以通过其所运行的固件实现计算加速。微处理器可运行计算程序实现管控及部分运算功能。
125.硬件加速模块可以通过硬件的方式加速实现一些计算功能。硬件加速模块可以实现一些通用场景下的运算功能,如crc(循环冗余检查)、ec(纠删编码)、压缩、哈希计算、raid(独立盘冗余阵列)等。
126.另外,如图7所示,数据处理及控制模块还可以包括内存、纠删码模块等。
127.内存用于与微处理器配合以执行数据处理。
128.纠错码模块用于对读缓存数据和/或写缓存数据进行纠错编码和/或纠错解码处理。纠错码模块可以包含纠删编码器和纠删解码器,对所存储数据实现保护。
129.缓存管理模块通过pcie接口与所关联的计算节点(计算系统)的计算设备物理连接。
130.计算设备主机端(例如来自网卡或cpu)的数据可以经pcie接口进入fpga,之后可以经fpga与控制器之间的芯片互联接口实现低延迟高吞吐通信。
131.微处理器通过可以介质控制器读写闪存。介质控制器处理与众多闪存之间的数据高速传输,完成介质管理。
132.这样,根据本公开的缓存管理部件使得部分运算更加靠近所缓存的读缓存数据,进一步提升了计算与存储的效率。
133.作为对比,现有方案中,通过引入读缓存和写缓存,存储读写性能虽然也有所改
善,但是计算效能仍然主要依赖于计算节点的cpu,需要往复处理和搬移大量数据,整体工作效率较低。
134.图8示意性地示出了根据本公开的数据处理系统中的数据处理路径。
135.图8所示为缓存管理部件在线上运行时全局视角下的数据路径,其中计算节点和存储节点的存储盘之间的各项处理均可以在缓存管理部件实现。
136.首先,各计算节点可以并发写入分布式缓存系统。缓存管理部件可以包括写缓存空间和读缓存空间。写缓存可以以日志写方式快速承接来自计算节点的数据以完成持久化存储,可以降低写入延迟。
137.写缓存空间累计足够多的数据后,可以完成小数据块的合并,并对大数据块进行下刷。
138.同时,通过硬件加速单元完成crc、ec等常规操作,将ec保护的数据下刷写入到后端存储集群中各存储节点的存储盘。
139.读路径上,基于所运行的计算应用,缓存管理部件的微处理器可以运行预读/预测引擎,对计算节点后续可能需要的数据做出预判,并从存储集群预读数据到读缓存空间。
140.计算发生时,缓存管理部件先对原始数据做预处理(第一数据处理),减少主机cpu的工作量,产生并存放处理后数据,以供计算应用后续加工(第二数据处理)。
141.缓存管理部件可以部署自定义计算函数(第一数据处理),自定义计算函数可以通过在不同应用场景下因地制宜地定制算子来实现,该功能可以由fpga和微处理器协同实现。这样的自定义计算函数例如可以包括分类、过滤、搜索、投影等。
142.这样,计算节点可以直接从缓存管理部件(缓存节点)的读缓存空间读取经过预处理的处理后数据,降低了计算节点的算力消耗。
143.上文中已经参考附图详细描述了根据本发明的计算系统及数据处理系统。
144.本公开的数据处理系统中,在计算集群(分布式计算系统)与存储集群(分布式存储系统)之间部署了缓存集群(分布式缓存系统)。缓存集群的缓存节点可以例如通过pcie总线而物理连接于计算集群的计算节点。
145.实施例中,缓存节点可以集成数据读写缓存功能及加速卸载功能,以提升计算及存储的效能,加速了海量数据读写与高速处理。
146.实施例中,通过将整个缓存集群划分为多个轻量级自定义的分布式缓存子系统,使其例如满足故障域要求,可以实现分布式且具有强数据一致性的数据缓存。
147.实施例中,还可以通过分析计算节点的应用计算特征,预判关联数据,预测接下来需要读取的数据,并选择性地将数据由后端存储集群预读到缓存管理部件的读缓存空间中。
148.实施例中,通过在作为缓存节点的缓存管理部件中以fpga可编程逻辑、asic(专用集成电路)硬件加速、微处理器固件开发等协同组合,可以缩短计算与数据缓存之间的路径。
149.实施例中,通过靠近存储执行计算的模式,在作为缓存节点的缓存管理部件内快速处理一些例如数据密集型运算请求,降低了计算节点主机cpu的运算压力,并提升了所卸载计算的完成效率,缩短了处理延迟。
150.实施例中,作为缓存节点的缓存管理部件在完成数据预读后,还可以基于运算流
程,在该部件内部就近完成对原始数据的预处理,从而更高效地匹配各大数据分析场景,并加快运算结果产出。
151.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
152.此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
153.或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
154.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
155.附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
156.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
技术特征:
1.一种计算系统,包括:计算设备;以及缓存管理部件,连接到计算设备,用于管理来自数据存储系统的读缓存数据和/或要写入到数据存储系统的写缓存数据,其中,计算设备包括网卡,网卡从外部接收数据和/或向外部发送数据,判断接收数据的目的地是计算设备还是缓存管理部件,并将接收数据传送到所判定的目的地。2.根据权利要求1所述的计算系统,其中,网卡为计算设备和缓存管理部件分别分配不同的ip地址,所述发送数据和/或所述接收数据通过所关联的ip地址来标明其对应于计算设备还是缓存管理部件;或者所述发送数据和/或所述接收数据通过指定字段的值来标明其对应于计算设备还是缓存管理部件。3.根据权利要求1所述的计算系统,其中,缓存管理部件通过外设部件互联扩展pcie链路接入到计算设备。4.根据权利要求1所述的计算系统,其中,缓存管理部件基于计算设备的数据处理行为,从分布式存储系统预先读取数据,并作为读缓存数据进行缓存;并且/或者缓存管理部件积累来自计算设备的写缓存数据,并将积累得到的写缓存数据下刷到分布式存储系统。5.根据权利要求1所述的计算系统,其中,缓存管理部件对从分布式存储系统读取的数据进行第一数据处理,得到处理后数据,以供计算设备进行第二数据处理;并且/或者缓存管理部件对来自计算设备的数据进行预处理,得到分配给分布式存储系统的相应存储节点的写缓存数据。6.根据权利要求1所述的计算系统,其中,缓存管理部件能够为多个计算系统的计算设备提供读缓存数据;并且/或者缓存管理部件能够缓存多个计算系统的计算设备产生要下刷到分布式存储系统的写缓存数据;并且/或者缓存管理部件管理的写缓存数据能够被下刷到分布式存储系统中多个存储节点。7.根据权利要求1所述的计算系统,其中,所述缓存管理部件包括:数据缓存模块,用于缓存所述读缓存数据和/或所述写缓存数据;以及数据处理及控制模块,用于对所述读缓存数据和/或所述写缓存数据进行处理及控制。8.根据权利要求7所述的计算系统,其中,所述数据处理及控制模块包括:逻辑电路,用于基于应用场景对所述读缓存数据和/或所述写缓存数据进行逻辑运算;以及/或者微处理器,用于执行数据处理和/或数据管理;以及/或者硬件加速模块,用于通过硬件方式执行预定数据运算功能。9.根据权利要求8所述的计算系统,其中,所述数据处理及控制模块还包括:内存,用于与微处理器配合以执行数据处理;以及/或者纠错码模块,用于对所述读缓存数据和/或所述写缓存数据进行纠错编码和/或纠错解
码处理。10.一种数据处理系统,包括:分布式计算系统;分布式存储系统;以及分布式缓存系统,用于为分布式计算系统和/或分布式存储系统提供全局数据缓存服务,其中,分布式缓存系统缓存来自分布式存储系统的读缓存数据以用于分布式计算系统的数据计算,并且/或者分布式缓存系统缓存来自分布式计算系统的写缓存数据以将所缓存的写缓存数据下刷到分布式存储系统。11.根据权利要求10所述的数据处理系统,包括多个根据权利要求1至9中任何一项所述的计算系统,其中,所述分布式计算系统包括多个所述计算系统中的计算设备,所述分布式缓存系统包括多个所述计算系统中的缓存管理部件。12.根据权利要求10所述的数据处理系统,其中,缓存管理部件为该缓存管理部件所属计算系统的计算设备以及与该缓存管理部件所属计算系统在物理上和/或逻辑上相邻近的计算系统的计算设备提供数据缓存服务。13.根据权利要求12所述的数据处理系统,其中,所述分布式缓存系统包括多个分布式缓存子系统,所述分布式缓存子系统包括至少两个计算系统的缓存管理部件,用于为所述至少两个计算系统的计算设备提供数据缓存服务。14.根据权利要求13所述的数据处理系统,其中,所述分布式缓存子系统所关联的所述至少两个计算系统为物理上和/或逻辑上相邻近的计算系统。
技术总结
本公开涉及一种计算系统及数据处理系统。数据处理系统包括分布式计算系统、分布式存储系统以及分布式缓存系统。分布式缓存系统的缓存节点可以关联到分布式计算系统的计算节点。计算系统包括作为计算节点的计算设备和连接到计算设备作为缓存节点的缓存管理部件。缓存管理部件管理来自数据存储系统的读缓存数据和/或要写入到数据存储系统的写缓存数据。其中,计算设备包括网卡,网卡从外部接收数据和/或向外部发送数据判断接收数据的目的地是计算设备还是缓存管理部件,并将接收数据传送到所判定的目的地。由此,通过对缓存方案进行调整,能够进一步改善分布式数据处理系统的综合效能。效能。效能。
技术研发人员:李舒
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.03.03
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种鸡肉交替双频超声嫩化方法和装置 下一篇:一种农业药材播种装置及其使用方法
