计算存储分离系统及其数据访问方法、介质和电子设备技术方案

技术编号:29584124 阅读:15 留言:0更新日期:2021-08-06 19:42
提供一种计算存储分离系统及其数据访问方法、介质和电子设备,属于计算机技术领域,能够保障数据一致性并支持低延迟高吞吐的块访问服务。一种计算存储分离系统的数据访问方法,包括:获取数据访问请求;基于数据访问请求的类型,获取计算存储分离系统的主节点上的索引表或主节点及其从节点的同步元数据信息;若数据访问请求为数据读请求,则查询索引表中待读取数据块的索引项,基于索引项查询结果读取待读取数据块,其中索引表的索引项至少包括存储位置属性和存储地址属性;和/或若数据访问请求为数据写请求,则基于同步元数据信息将待写入数据块写入到从节点上的持久内存的空闲空间中,其中同步元数据信息指示持久内存的空间占用与空闲情况。

【技术实现步骤摘要】
计算存储分离系统及其数据访问方法、介质和电子设备
本公开涉及计算机
,具体地,涉及一种计算存储分离系统及其数据访问方法、介质和电子设备。
技术介绍
主从节点(Master-Slave)结构是分布式系统中一种经典的计算存储分离系统的配置方案。其中,主节点主要用于响应用户操作,处理资源调度和业务计算等;从节点主要用于数据存储和响应主节点的请求。从节点逻辑上从属于主节点,受主节点支配。现有的计算存储分离系统在从节点上只部署了固态硬盘(SolidStateDisk,SSD),通过主节点与从节点双边通信的方式完成数据块的读写。此外,现有的计算存储分离系统使用的网络数据传输主要是基于传输控制协议(TransferControlProtocol,TCP)/网际协议(InternetProtocol,IP)的。因此,现有的计算存储分离系统存在三个方面的昂贵开销:第一,网络开销,主要指单次数据访问导致的主节点-从节点的网络数据传输开销和TCP/IP软件栈开销;第二,CPU开销,主要指从节点在等待主节点的请求所占用的时间开销和多重数据拷贝开销;第三,存储开销,主要指数据在从节点上从内存的页缓存写入到SSD所占用的输入/输出(Input/Output,I/O)开销。这些开销都在数据访问的关键路径上,会形成系统整体性能的瓶颈。
技术实现思路
提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。第一方面,本公开提供一种计算存储分离系统的数据访问方法,包括:获取数据访问请求;基于所述数据访问请求的类型,获取所述计算存储分离系统的主节点上的索引表或者所述主节点及其从节点的同步元数据信息;在所述数据访问请求为数据读请求的情况下,查询所述索引表中待读取数据块的索引项,基于索引项查询结果来读取所述待读取数据块,其中,所述索引表的索引项至少包括存储位置属性和存储地址属性;和/或在所述数据访问请求为数据写请求的情况下,基于所述同步元数据信息,将待写入数据块写入到所述从节点上的持久内存的空闲空间中,其中,所述同步元数据信息用于指示所述持久内存的空间占用与空闲情况。第二方面,本公开提供一种计算存储分离系统,包括:索引缓存模块,位于所述计算存储分离系统的主节点上,用于建立和维护索引表和缓存表,其中,所述索引表的索引项至少包括关于数据块的存储位置属性和存储地址属性,所述缓存表用于缓存所述主节点本地的数据块;第一远程过程调用交互模块和第二远程过程调用交互模块,所述第一远程过程调用交互模块位于所述主节点上,所述第二远程过程调用交互模块位于所述计算存储分离系统的从节点上,所述第一远程过程调用交互模块和所述第二远程过程调用交互模块用于存储所述主节点与所述从节点的同步元数据信息,所述同步元数据信息用于指示所述从节点上的持久内存的空间占用与空闲情况;持久存储模块,用于管理所述主节点上的持久内存与固态硬盘的存储空间;以及数据访问模块,位于所述主节点上,用于获取数据访问请求,基于所述数据访问请求的类型,获取所述索引表或者所述同步元数据信息,在所述数据访问请求为数据读请求的情况下,查询所述索引表中待读取数据块的索引项,基于索引项查询结果来读取所述待读取数据块,和/或在所述数据访问请求为数据写请求的情况下,基于所述同步元数据信息,将待写入数据块写入到所述持久内存的空闲空间中。第三方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开第一方面所述方法的步骤。第四方面,本公开提供一种电子设备,包括:存储装置,其上存储有计算机程序;处理装置,用于执行所述存储装置中的所述计算机程序,以实现本公开第一方面所述方法的步骤。通过采用上述技术方案,由于能够负责建立和维护针对数据块的索引表和缓存表,基于索引表或基于主节点与从节点的同步元数据信息,将数据访问请求转化为到从节点上的持久内存上的数据的访问或到缓存表的访问,因此使得根据本公开实施例的计算存储分离系统能够支持计算业务与存储业务的解耦合部署,在保障数据一致性的同时支持低延迟和高吞吐的块访问服务,降低了数据访问的网络开销、CPU开销和存储开销。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:图1是根据本公开实施例的计算存储分离系统的整体架构示意图。图2展示了索引表的数据结构示意图。图3示出了双指针持久内存空间管理的示意图。图4示出了根据本公开实施例的计算存储分离系统的数据访问方法的流程图。图5示出了数据访问请求为数据读请求的情况下块数据的读操作流程图。图6示出了数据访问请求为数据写读请求的情况下块数据的写操作流程图。图7示出了一种示例性的日志数据结构。图8a-8l示出了持久内存上的数据同步到SSD中的流程示意图。图9是根据本公开一种实施例的电子设备的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。首先,对根据本公开实施例的计算存储分离系统的整体架构进行描述。如图1所示,根据本公开实施例的计算存储分离系统包括位于主节点上的数据访问模块10、索引缓存模块20、第一远程过程调用(RemoteProcessC本文档来自技高网...

【技术保护点】
1.一种计算存储分离系统的数据访问方法,其特征在于,该方法包括:/n获取数据访问请求;/n基于所述数据访问请求的类型,获取所述计算存储分离系统的主节点上的索引表或者所述主节点及其从节点的同步元数据信息;/n在所述数据访问请求为数据读请求的情况下,查询所述索引表中待读取数据块的索引项,基于索引项查询结果来读取所述待读取数据块,其中,所述索引表的索引项至少包括存储位置属性和存储地址属性;和/或/n在所述数据访问请求为数据写请求的情况下,基于所述同步元数据信息,将待写入数据块写入到所述从节点上的持久内存的空闲空间中,其中,所述同步元数据信息用于指示所述持久内存的空间占用与空闲情况。/n

【技术特征摘要】
1.一种计算存储分离系统的数据访问方法,其特征在于,该方法包括:
获取数据访问请求;
基于所述数据访问请求的类型,获取所述计算存储分离系统的主节点上的索引表或者所述主节点及其从节点的同步元数据信息;
在所述数据访问请求为数据读请求的情况下,查询所述索引表中待读取数据块的索引项,基于索引项查询结果来读取所述待读取数据块,其中,所述索引表的索引项至少包括存储位置属性和存储地址属性;和/或
在所述数据访问请求为数据写请求的情况下,基于所述同步元数据信息,将待写入数据块写入到所述从节点上的持久内存的空闲空间中,其中,所述同步元数据信息用于指示所述持久内存的空间占用与空闲情况。


2.根据权利要求1所述的方法,其特征在于,所述基于索引项查询结果来读取所述待读取数据块,包括:
若查询到的索引项的存储位置属性指示所述待读取数据块被存储在所述主节点本地的缓存表中,则基于查询到的索引项的存储地址属性从所述缓存表中读取所述待读取数据块;
若查询到的索引项的存储位置属性指示所述待读取数据块被存储在所述持久内存上,则通过远程直接内存访问的方式基于查询到的索引项的存储地址属性从所述持久内存中读取所述待读取数据块;
若查询到的索引项的存储位置属性指示所述待读取数据块被存储在所述从节点上的固态硬盘上,则通过远程过程调用的方式基于查询到的索引项的存储地址属性从所述固态硬盘上读取所述待读取数据块;
若未查询到所述待读取数据块的索引项,则通过所述远程过程调用的方式从所述从节点上读取所述待读取数据块。


3.根据权利要求2所述的方法,其特征在于,在所述通过远程直接内存访问的方式基于查询到的索引项的存储地址属性从所述持久内存中读取所述待读取数据块之后,所述方法还包括:
检查所读取的数据块的有效性;
在所读取的数据块失效的情况下,通过所述远程过程调用的方式从所述固态硬盘上读取所述待读取数据块。


4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在成功读取所述待读取数据块之后,更新所述索引表和所述缓存表。


5.根据权利要求1所述的方法,其特征在于,所述将待写入数据块写入到所述从节点上的持久内存的空闲空间中,包括:
对所述待写入数据块进行封装;
通过远程直接内存访问的方式将封装后的待写入数据块写入所述空闲空间中。


6.根据权利要求5所述的方法,其特征在于,所述对所述待写入数据块进行封装,包括:
将所述待写入数据块封装为日志结构的待写入数据块,其中,所述日志结构的待写入数据块包括所述待写入数据块本身、块标识以及数据完整性标识。


7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在执行写入之前,基于所述同步元数据信...

【专利技术属性】
技术研发人员:黄凯欣张扬
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1