一种数据处理方法以及相关装置与流程

文档序号:34964776发布日期:2023-08-01 09:31阅读:35来源:国知局
一种数据处理方法以及相关装置

本技术实施例涉及电子领域,尤其涉及一种数据处理方法以及相关装置。


背景技术:

1、在早期的对称多处理(symmetric multiprocessing,smp)技术中,一个网络装置上汇集了一组处理器,由于所有的处理器核心(cpu cores)都是通过共享一个北桥来读取内存,随着核数的增长,北桥在响应时间上的性能瓶颈愈加显著。为了突破这个性能瓶颈,把整合内存控制器(integrated memory controller,imc)做了拆分,平均分配到各个芯片(die)上,即cpu和内存被组织为具有一个或多个imc的互联节点,形成一种非一致性内存架构(non-uniform memory access,numa),服务器上广泛应用了numa系统。

2、在numa系统中,cpu访问相同端口(socket)下连接的numa节点内存储的数据时,响应时间较短。如果cpu需要访问不同端口(socket)下连接的numa节点内存储的数据时,就需要通过inter-connect或hyper-transfer通道进行访问,响应时间较长。对于高端的4路,8路或16路服务器,跨端口对数据进行远端访问产生的延迟更大。

3、然而,传统的数据处理方案中,会采用随机存储的方式将数据存储至不同的节点上,远端访问发生的频次较高,访问数据产生的延迟较大,处理业务的速率低。


技术实现思路

1、本技术提供了一种数据处理方法以及相关装置,目标节点上的cpu可以避免进行远端访问,在该目标节点内完成对于第一行数据和第二行数据的访问,降低远端访问发生的频次,进而降低了访问数据产生的延迟,进一步提升了访问数据的速率,处理业务的速率高。

2、本技术第一方面提供了一种数据处理方法,该方法包括:获取第一数据表和第二数据表,所述第一数据表和所述第二数据表均包括第一键值,所述第一数据表中的第一行数据包括所述第一键值,所述第二数据表中的第二行数据包括所述第一键值;将所述第一数据表存储至n个目标节点,所述第一行数据和所述第二行数据存储于同一个所述目标节点。

3、本技术中,首先获取第一数据表和第二数据表。第一数据表和第二数据表均包括第一键值,第一数据表中的第一行数据包括第一键值,第二数据表中的第二行数据包括第一键值。将第一数据表存储至n个目标节点,其中,具有关联性的第一行数据和第二行数据存储至同一个目标节点上,则目标节点上的cpu可以避免进行远端访问,在该目标节点内完成对于第一行数据和第二行数据的访问,降低远端访问发生的频次,进而降低了访问数据产生的延迟,进一步提升了访问数据的速率,处理业务的速率高。

4、在第一方面的一种可能的实现方式中,所述将所述第一数据表存储至n个目标节点,包括:根据所述第一键值获取第一节点编号,所述第一节点编号用于表示所述第一行数据待存入的所述目标节点的编号;根据所述第一节点编号将所述第一行数据存入所述目标节点。

5、该种可能的实现方式中,通过多种方式根据第一键值获取第一行数据待存入的目标节点的编号后,可以获取到第一表数据中包括的所有的第一行数据对应的目标节点的编号,进而可以将第一数据表中的所有的第一行数据可以根据待存入的目标节点的编号存储至多个目标节点中。每个目标节点中还存储有与第一行数据相关联的第二行数据。该种可能的实现方式提供了一种将第一数据表存储至多个目标节点的具体的实现方案。例如,该方案中可以通过基数分区的方式将第一数据表存储至多个目标节点,该方案中还可以通过哈希分区的方式将第一数据表存储至多个目标节点,还可以通过其他的方式将第一数据表存储至多个目标节点,具体此处不做限定。此外,该方案中,数据存储至多个目标节点上可以实现负载均衡,防止单个目标节点上存储数据量过大,进一步提升了数据的处理效率。

6、在第一方面一种可能的实现方式中,所述方法还包括:将所述第二数据表存储至m个所述目标节点,其中,m小于等于n。

7、该种可能的实现方式中,若第二数据表中的数据较大时,可以将第二数据表拆分后存储至m个节点中,以使得拆分后的第二数据表在每个节点中占据的空间较小,节约了单个节点上的存储空间,且有助于实现负载均衡。

8、在第一方面的一种可能的实现方式中,将所述第二数据表存储至m个所述目标节点,包括:根据所述第一键值获取第二节点编号,所述第二节点编号用于表示所述第二行数据待存入的所述目标节点的编号;根据所述第二节点编号将所述第二行数据存入所述目标节点。

9、该种可能的实现方式中,通过多种方式根据第二键值获取第二行数据待存入的目标节点的编号后,可以获取到第二表数据中包括的所有的第二行数据对应的目标节点的编号,进而可以将第二数据表中的所有的第二行数据可以根据待存入的目标节点的编号存储至多个目标节点中。以便每个目标节点中存储有具有关联性的第二行数据和第一行数据。该种可能的实现方式提供了一种将第二数据表存储至多个目标节点的具体的实现方案。例如,该方案中可以通过基数分区的方式将第二数据表存储至多个目标节点,该方案中还可以通过哈希分区的方式将第二数据表存储至多个目标节点,还可以通过其他的方式将第二数据表存储至多个目标节点,具体此处不做限定。此外,该方案中,数据存储至多个目标节点上可以实现负载均衡,防止单个目标节点上存储数据量过大,进一步提升了数据的处理效率。

10、在第一方面的一种可能的实现方式中,所述方法还包括:将所述第二数据表复制m份;将m份所述第二数据表存储至m个所述目标节点,其中,m小于等于n,每一个所述目标节点中包括一份所述第二数据表。

11、该种可能的实现方式中,若第二数据表中的数据较少时,可以采用复制的方式将第二数据表复制m分,分别将m份完整的第二数据表存入m个节点中,避免了划分第二数据表时所产生的开销,进一步提升了数据的处理速度,提升了业务效率。

12、在第一方面的一种可能的实现方式中,所述目标节点包括第一节点和第二节点,所述方法还包括:通过所述第一节点根据部分所述第二数据表在所述第一节点和所述第二节点生成地址索引表,所述地址索引表用于表示所述第一行数据和所述第二行数据在所述第一节点中的存储地址。

13、该种可能的实现方式中,通过细粒度复制写策略,以便每个目标节点中都存储有完整的地址索引表。增加了创建阶段的跨节点远端写入开销,以保证在每个节点的物理内存中都构建一个独立完整的哈希表数据结构,使得查询阶段每个工作线程对哈希表数据结构的访问都能在该节点的内存中完成,完全消除了跨节点远端读哈希桶数据结构所产生的延迟。

14、在第一方面的一种可能的实现方式中,所述目标节点包括第一节点和第二节点,所述方法还包括:通过所述第一节点根据部分所述第二数据表生成地址索引表,所述地址索引表用于表示所述第一行数据和所述第二行数据在所述第一节点中的存储地址;通过所述第一节点将所述地址索引表复制到所述第二节点。

15、该种可能的实现方式中,实现了各工作线程在节点内构建独立的哈希表或向量索引,再在各节点之间用基于块的粗粒度复制的方式生成地址索引表,进一步减少跨节点远程写入产生的开销。在查询阶段中,各工作线程也只访问该节点的内存中的哈希表或向量索引。该策略所产生的额外代价是基于块的粗粒度复制写代价以及查询阶段中各线程需要对多个哈希表或向量索引进行探测代价。

16、在第一方面的一种可能的实现方式中,所述目标节点包括第一节点和第二节点,所述方法还包括:根据所述第一键值对所述第二数据表排序;通过所述第一节点根据排序后的部分所述第二数据表生成地址索引表,所述地址索引表用于表示所述第一行数据和所述第二行数据在所述第一节点中的存储地址;通过所述第一节点将所述地址索引表复制到所述第二节点。

17、该种可能的实现方式中,通过对第二数据表排序的代价优化了复制阶段的粗粒度复制代价以及查询阶段多次节点内的探测代价。当r表数据量较少时,该算法以创建阶段额外的排序成本代价,减少了查询阶段的多次探测成本,适用于第二数据表排序代价对算法影响性能较小的负载。在实际数据库系统中,系统会自动为主键的表创建聚簇索引,可以消除排序成本。

18、在第一方面的一种可能的实现方式中,所述方法还包括:将所述第一数据表分为多个第一列数据。

19、该种可能的实现方式中,将第一数据表划分为多个第一列数据存入目标节点中,在查询阶段查询数据时,目标节点可以根据指令选择需要查询的列数据。例如,假设第一数据表中的列名包括姓名、语文、数学和英语,查询学号为1的学生的姓名和语文成绩,目标节点便可以根据指令查询出姓名、语文这两列的结果,无需显示其他结果,节约了开销,提升了数据的查询速度。

20、在第一方面的一种可能的实现方式中,所述目标节点为端口节点,或者,所述目标节点为numa节点。

21、该种可能的实现方式中,目标节点可以是端口节点,端口节点中包括多个与同一个端口(socket)连接的numa节点,目标节点还可以是numa节点,目标节点还可以是其他的实现方式。该种可能的实现方式提供了多种目标节点的具体实现方式,提升了方案的可实现性。

22、在第一方面的一种可能的实现方式中,接收数据查询请求,所述数据查询请求中包括第一键值;根据所述数据查询请求返回部分或全部所述第一行数据以及部分或全部所述第二行数据。

23、本技术第二方面提供一种网络装置,该网络装置包括至少一个处理器和存储器。处理器与存储器耦合。存储器用于存储指令,处理器用于执行该指令,该指令在被处理器执行时,使得所述网络装置执行上述第一方面或第一方面的任意可能的实现方式中的方法。

24、本技术第三方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得所述网络装置执行上述第一方面或第一方面的任意可能的实现方式中的方法。

25、本技术第四方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当所述计算机执行指令被所述处理器执行时,所述处理器执行上述第一方面或第一方面任意一种可能实现方式的方法。

26、本技术第五方面提供一种芯片,该芯片包括处理器和通信接口,所述处理器与所述通信接口耦合,所述处理器用于读取指令执行上述第一方面或第一方面任意一种可能实现方式的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1