CN115357593A - 数据传输方法及装置、存储介质及电子设备 - Google Patents

数据传输方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN115357593A
CN115357593A CN202211012270.5A CN202211012270A CN115357593A CN 115357593 A CN115357593 A CN 115357593A CN 202211012270 A CN202211012270 A CN 202211012270A CN 115357593 A CN115357593 A CN 115357593A
Authority
CN
China
Prior art keywords
service data
memory
address space
cache
data
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
Application number
CN202211012270.5A
Other languages
English (en)
Inventor
刘中一
黄向平
白洁
阎松柏
李梦箫
李宁
李亮
武学成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Travelsky Technology Co Ltd
Original Assignee
China Travelsky Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Travelsky Technology Co Ltd filed Critical China Travelsky Technology Co Ltd
Priority to CN202211012270.5A priority Critical patent/CN115357593A/zh
Publication of CN115357593A publication Critical patent/CN115357593A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据传输方法及装置、存储介质及电子设备,该方法包括:接收到交易节点的业务数据更新请求,获取对应的业务数据;为业务数据分配内存地址空间,并根据内存地址空间的地址信息将业务数据存储到管理节点的内存中;将已存储到管理节点的内存中的业务数据以及业务数据的附加信息写入管理节点的缓存区域中,获得待传输的缓存数据;将缓存数据发往交易节点,使得交易节点根据内存地址空间的地址信息将业务数据存储到交易节点的内存中,将已存储到交易节点的内存的业务数据写入交易节点的缓存区域中,以便于交易节点中的交易进程调用业务数据。本发明实施例提供的方法,能够支持节点处理任意大小和任意类型的复杂对象。

Description

数据传输方法及装置、存储介质及电子设备
技术领域
本发明涉及计算机技术领域,特别涉及一种数据传输方法及装置、存储介质及电子设备。
背景技术
随着互联网尤其移动互联网的蓬勃发展,大幅流量对电子商务后台系统的高并发和高性能要求越来越高,在此类后台系统中,通常需要在短时间内通过高频读取数据库或请求调用基础支撑服务,以获得大量的复杂业务数据。
由此在一些不要求严格一致性、不要求完全准确性的场景中,往往使用缓存(Cache)技术,来作为交易系统与数据来源(数据库/基础服务)之间的缓冲,缓存可以使交易系统能更快地得到数据,同时为下层数据来源抵挡大部分的压力冲击。这是业界的常用方式,其实现方式包括简单易用的内存数据库服务Redis、Memcached等,或嵌入式数据库Berkeley DB、Level DB等,以及更进一步的纯内存嵌入式数据库LMDB。然而,现有技术无法支持复杂对象,也无法支撑较大规模分布式缓存集群的数据处理。
发明内容
本发明所要解决的技术问题是提供一种数据传输方法,能够支持节点处理任意大小和任意类型的复杂对象。
本发明还提供了一种数据传输装置,用以保证上述方法在实际中的实现及应用。
一种数据传输方法,包括:
在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
一种数据传输装置,包括:
接收单元,用于在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
执行单元,用于为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
写入单元,用于将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
传输单元,用于将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
一种存储介质,所述存储介质包括存储指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上所述的数据传输方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的数据传输方法。
基于上述本发明提供的一种数据传输方法及装置、存储介质及电子设备,该方法包括:在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。能够支持节点处理任意大小和任意类型的复杂对象,并且能够支持大规模集群的数据处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种数据传输方法的方法流程图;
图2为本发明提供的又一种数据传输方法的方法流程图;
图3为本发明提供的一种实施场景示例图;
图4为本发明提供的又一种数据传输方法的方法流程图;
图5为本发明提供的一种管理机制示例图;
图6为本发明提供的一种分布式场景冷却时间示意图;
图7为本发明提供的一种数据传输装置的结构示意图;
图8为本发明提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例提供了一种数据传输方法,该方法可以应用于管理节点中,管理节点可以是各种类型的电子设备,在一些应用场景中,管理节点可以是集群中的服务器,集群中还包括至少一个交易节点,集群中的每一交易节点运行有至少一个交易进程,管理节点与各个交易节点处于同一个多播网络中,所述数据传输方法的方法流程图如图1所示,具体包括:
S101:在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据。
在本实施例中,业务数据更新请求的数量可以为一个或多个;业务数据更新请求可以是交易节点在自身缓存中不存在当前交易业务所需的且未过期的数据的情况下发送的。
可选的,管理节点在接收到数据更新请求后,可以先获取到业务数据更新请求对应的业务数据,业务数据可以是交易节点当前交易业务所需的数据。
S102:为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中。
在本实施例中,内存地址空间可以是管理节点中的待分配的内存地址空间区间中的一段连续的虚拟地址空间。
可选的,可以通过管理节点的操作系统基于内存地址空间为业务数据分配内存,管理节点将业务数据写入到操作系统已分配的内存中。
S103:将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息。
在本实施例中,附加信息还可以包含业务数据过期时间、业务数据在管理节点的第一失效冷却时间和业务数据在交易节点的第二失效冷却时间中的至少一种。
S104:将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
在本实施例中,可以通过多播网络将缓存数据发往交易节点。
应用本发明实施例提供的方法,能够支持节点处理任意大小和任意类型的复杂对象,并且能够支持大规模集群的数据处理。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述为所述业务数据分配内存地址空间,如图2所示,包括:
S201:确定所述业务数据的数据量。
在本实施例中,业务数据可以是任意数据量大小的数据,例如,可以为10KB、1MB或1GB等大小的数据。
S202:通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
在本实施例中,地址空间管理器可以对虚拟地址空间进行管理,具体可以对一整块地址空间进行分组、分割和标记,可以按业务数据的数据量大小进行地址空间配给,例如,在业务数据的数据量大小为10KB的情况下,可以从虚拟地址空间分配池中划分出容量大小至少为10KB的连续的内存地址空间,并在分配该内存地址空间时进行加锁,虚拟地址空间分配池可以是一个内存地址空间区间。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中,包括:
基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
将所述业务数据存储至已申请到的所述内存中。
在本实施例中,内存地址空间的地址信息可以是相对地址,可以向管理节点的申请与内存地址空间的容量相匹配的内存,以获得操作系统分配的内存,该内存的容量大小与内存地址空间的容量大小一致。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中之后,还包括:
到达预设的业务数据过期时间后,对所述管理节点的所述缓存区域进行冷却,以避免针对所述缓存区域的新增访问;
到达预设的第一失效缓存冷却时间后,对所述管理节点的缓存区域中的所述业务数据以及所述附加信息进行释放,并回收所述内存地址空间;
其中,所述第一失效缓存冷却时间大于所述业务数据在所述交易节点的第二失效缓存冷却时间,所述第二失效缓存冷却时间大于所述交易节点中的交易进程的交易最长允许时间,所述第二失效缓存冷却时间指的是所述业务数据在所述交易节点中被冷却的时间。
在本实施例中,对管理节点的缓存区域进行冷却的一种可行的方式,可以是将该缓存区域从管理节点的缓存列表中摘下,并放到冷却池中,在到达第一失效缓存冷却时间后,将地址空间还给地址空间管理器,并擦除当中的数据,将内存交还操作系统。
可选的,第一失效缓存冷却时间大于第二失效缓存冷却时间,可以避免网络传输和瞬断等带来的影响,由于在退出流程中,交易节点可能有交易进程正在使用缓存,因此,设置第二失效缓存冷却时间大于交易最长允许时间,能够保障交易进程完成交易处理,再对交易节点中的内存地址空间进行回收,在交易节点中的内存地址空间进行回收后,进行管理节点的内存地址空间回收。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述获取所述业务数据更新请求对应的业务数据,包括:
获取所述业务数据更新请求中包含的业务数据标识;
根据所述业务数据标识调用预设的外部系统,获得所述业务数据更新请求对应的业务数据。
在本实施例中,可以基于业务数据标识从外部系统中获取到交易节点所需的业务数据。
参见图3,为本发明实施例提供的一种实施场景示例图,图3示出的实施场景可以是包含了集群缓存管理节点Server和多个分布式交易节点Node的分布式嵌入式缓存集群系统MMCache,集群缓存管理节点也即上述的管理节点,分布式交易节点也即上述的交易节点,集群缓存管理节点和分布式交易节点可以是集群中的服务器。
在本实施例中,参见图4,为本发明实施例提供的又一种数据传输方法的方法流程图,Node负责使用缓存数据,并将缓存失效信息报告至Server。具体的,在Node的交易过程中,需要某种业务数据时,在Node的缓存中查找该数据,若未查询到该业务数据,则生成更新请求,Node中的缓存管理进程将收集由各交易进程汇聚来的更新请求,上报至Server,同时负责将集群多播中的高频更新消息写入到本地缓存。Node中的交易进程则可以直接以进程内存的形式使用缓存数据,各Node之间完全独立,互相没有感知。
在本实施例中,Server负责与外部数据库或数据提供系统交互,并生成、下发、管理缓存数据。具体的,Server中的缓存管理进程将收集由各个Node汇聚来的更新请求,负责与外部系统进行数据交换,并将更新后的数据写入缓存,通过多播网络更新到各Node。
具体的,整个MMCache工作场景中,需要进行三种管理:
1、MMCache缓存用地址空间管理,为了循环利用预先指定的地址空间进行任意大小的分配。
2、节点内存管理,不需要应用关心,依赖于操作系统,不再细述。
3、MMCache缓存本身状态的管理。如即时状态、占用地址、内存情况、LRU列表等。
其中,参见图5,为本发明实施例提供的MMCache的管理机制示例图,Server负责整个集群的缓存管理与同步。由于MMCache需要在集群间支持复杂对象、任意大小,因此需要MMCache进行较复杂的内存方面的管理,完成在指定范围地址空间中进行地址空间的管理、申请和分配,缓存使用的资源将被长时间反复回收利用,因此支持任意大小缓存需要对地址空间进行管理,在本发明中,Server将根据预设配置,使用某段进程虚拟地址空间作为分配池,以支持任意大小缓存的循环利用。其中,地址空间是几乎没有成本的,而且长度远大于实际内存,此处需要预设配置,能够预防其与其他采用内存映射技术的数据库或缓存相互冲突。
Slab算法可以很好胜任内存资源管理工作,本发明中将它创新性应用于虚拟地址空间管理,对一整块地址空间进行分组、分割和标记,按照实际缓存大小申请,合理快速地进行地址空间配给,并对不再使用的空间资源进行快速回收、整理、合并等。在此种设计中,当Server需要进行缓存存储时,将向“地址空间管理器”发起申请请求;得到地址空间进行使用;并在使用完毕释放缓存时,将地址空间归还管理器。注意,Slab分配地址空间时需要加锁,但由于此操作只有在各节点缓存管理进程中进行此操作,因此不会造成写入阻塞。
Server可以将复杂对象存储于映射内存中,并最终以内存块形式传递至Node,后者再以相同的方法打开使用,全程保证了无需进行序列化与反序列化,利用同一方法对任意对象的内存读写,最大限度地降低了缓存集群通信成本。
由于内存不足、缓存过期或其他原因被删掉的缓存的退出机制,尤其在分布式集群中,退出机制的同步变得更加重要。这部分使用了差异化冷却池技术,为了保证Sever中已在退出流程中的缓存在Node中仍然可用(可能有交易进程正在使用),且保证Server中已回收的可用空间在Node中也已进行了回收,将为每个即将退出的缓存设置额外的两种信息:Server退出时间和Node退出时间,Node退出时间只要保证长于一个交易的最长允许时间即可,Server退出时间需保证比Node长足够的时间,以抵消网络传输、瞬断等带来的影响。在退出流程中,相关缓存将被首先从缓存列表中摘下,保证不会新增访问,放到冷却池冷却。冷却池中达到退出时间的缓存,地址空间将还给空间管理器,数据将被擦除,内存交还操作系统。
在本实施例中,局域网可靠多播技术来作为集群内部协议,进行管理控制信息及缓存数据流的传输。采用多播的方式,可以最大化利用局域网带宽,且可以进行自适应传输。整个集群的数据传播是1->n,使用此协议,将避免Server节点的网络带宽成为缓存更新速度瓶颈,使整个集群的缓存传输带宽可达到GB级。传输的可靠性保证了一旦有个别Node没有接收到或者虽然接收到但并不完整,可以根据配置策略,要求重发或忽略或等待下一次缓存更新。
在本实施例中的应用层,通过多播技术将已经转储为缓存文件的内存映射与业务数据附加数据,业务数据附加数据主要包括操作、使用虚拟地址空间、过期时间和删除时间等;一并由Server发送至Node,并在Node上根据虚拟地址空间就地展开,缓存数据以及内部的指针、复杂结构、容器立即可用。此操作无需经过任何序列化、反序列化,与缓存文件数据的复杂性无关,与缓存大小无关,均可支持极致的读取速度。
在本发明提供的一实施例中,为了更好地理解本发明的技术方案,在此举例进行说明。
一、使用场景及配置预设。
在某分布式服务场景,服务A在交易中需要调用服务B以获得某些数据及关系,这种数据及关系的变化频率不定,服务A对数据变化迟滞也有一定容忍性。且A对来自B的数据及关系信息访问极为高频巨量,但服务B对压力非常敏感。这种情况即比较适合在服务A的集群中使用MMCache。
首先保证服务A集群处于同一局域网中,网络满足多播条件。其次保证服务A的各交易节点配置相同或相近,且操作系统版本相近,具体可以处于同一大版本中,以保证C++内存布局一致。
其次确定服务B提供的数据及关系的粒度,即估算缓存块平均大小,并以此估算缓存框架允许的总内存上限及预分配的地址空间区间。例如:单个缓存大小约为5KB,总上限为50GB,可容纳千万级别的缓存,可用地址空间区间大小为4TB,区间为0x100000000000~0x140000000000,比实际内存大的多的地址空间,保证了地址空间管理可以在一个相对宽松的环境中进行。在本发明实施例中,并不限制缓存中表达的方式,可以包含指针、容器等,但指向仅限于本缓存块(没有进行复杂的级联管理)。
最终,服务A集群需要增加Server节点并启用MMCache管理服务,并在Node上同时启用MMCache管理服务,管理服务将启动并占用所有节点上进程内的0x100000000000~0x140000000000部分。所有的节点都配置为可多播状态。
二、缓存的使用与更新触发。
由于缓存是基于共享内存的内存映射方式实现的,因此在服务A的各交易节点进程中,可以如同使用进程内内存一样方便和迅速地使用缓存。假设在某次交易中,需要用到数据a、b,其中a已经被缓存在MMCache中,且尚未过期或删除,则进程可以直接使用;b尚未被缓存或被缓存后太久没有更新已经过期,需要从服务B中获取。则:
1.交易进程将此项报告给本节点的管理进程,然后挂起本段逻辑,开始进行下一步无阻塞,如无法挂起,则一直检查并等待。
2.本节点管理进程将更新请求上交给Sever节点,Sever节点调用服务B得到最新数据及关系。
三、缓存的写入与分发管理。
Server得到最新数据b后:
步骤一:根据b的大小(此处假设为10KB),向“地址空间管理器”中申请10KB的地址空间。“地址空间管理器”内部将根据Slab算法,在0x100000000000~0x1400000000000区间中提供未用的至少连续10KB空间,返回为相对地址ptr。
步骤二:使用绝对地址内存映射方式向操作系统申请10KB大小内存,并保证其首地址为ptr。
步骤三:将数据b整体装入ptr中,有必要的话需要对其中的容器allcator进行改造,使之使用的内存均在ptr中。
步骤四:增加业务过期时间、ptr本身地址等附加信息,保留Server退出时间、Node退出时间为空(有值代表需要在若干时间后释放资源)。
步骤五:将ptr挂入缓存hash中。具体可以采用无锁技术,通过原子操作将新的缓存块直接挂载相应哈希桶的首位。
步骤六:打包缓存块,并通过多播网络向Node进行传输,并随时准备响应Node发来的重传请求。
四、缓存的接收与读取管理。
Node中的管理进程完整接收到新的缓存数据后,依据其ptr地址,在Node上重复Server执行的步骤二到步骤五,将缓存写入本地缓存中。如果有未完整接受的数据,可选择忽略丢弃或再次向Server请求。此时,在Node中一直等待的交易进程检查到数据b的时间已经更新,可以读取内容进行后续业务处理。
只要是通过MMCache访问到的缓存,本地进程将永远可以相信访问到的处于失效时间之前的缓存块。且各个节点、各个进程均互不影响,都可以以读取本地内存的速度访问缓存。
五、特殊操作:缓存的刷新和删除流程。
在本实施例中,缓存块的刷新(refresh)和删除(delete)都被视作新增缓存块,将新的缓存块无锁原子插入到原缓存列表之前,删除时使用空白块;插入操作后,原缓存块已不可再被新的交易访问到,因此将被从缓存列表中摘下,放入冷却池。
上述操作将在Server和Node上都进行一次。但在Server中同时将写入Server退出时间:300秒、Node退出时间:60秒。而服务A最长交易时间为:30秒;Server退出时间即为上述的第一失效缓存冷却时间,Node退出时间即为上述的第二失效缓存冷却时间。
30秒后,如图6所示,交易时间最短,所以Node上访问原有缓存(已在冷却池中)的交易都已经结束,即表示可回收。由于访问采用的是最原始的直接指针,因此此处是否结束访问没有标识可以检查,只能通过时间推测。
60秒后,此缓存块的Node退出时间到,Node将废弃的缓存从冷却池拿出,地址空间交还管理器,内存释放。
300秒后,此缓存块的Server退出时间到,Server将废弃的缓存从冷却池拿出,地址空间交还管理器,内存释放。
应用本发明实施例提供的技术方案,具有以下优点:
1.卓越读写性能。MMCache本质是对本地内存的读写,已经达到了极致的读写性能,大约百纳秒级。其读取效率不随着并发增加而衰减,也不随着数据复杂度增加而衰减。可以被广泛应用于只读、读多写少的高性能场景。MMCache已经达到使用缓存和使用进程内存相同的成本。
2.支持复杂对象。支持任意类型缓存的存取。MMCache可以支持任意已有类型、STL容器、自定义类型及其相互嵌套、组合。这一特性允许在缓存内进行集群级别的复杂关系/对象的共享,大大扩展了缓存集群的能力。
3.支持快速更新。任一节点的缓存更新请求都将触发整体缓存集群的更新,且数据可以在无视带宽的情况,通过多播网络快速更新到集群所有节点。且更新速度会随着集群规模、系统压力的增加而加快。
4.支持任意大小。MMCache拥有管理地址空间的机制,因此可以支持任意大小的缓存单元被写入、分发、管理。此特性可使MMCache可以长时间运行而不用担心预置的地址空间由于碎片太多而不可用,或由于无法支持任意大小而被浪费。
本发明实施例提供的方案中,这种缓存将很适合一些对数据一致性依赖不高、对数据或服务要进行高频读取、数据内部关系复杂且大小各异的超高性能、有高并发要求的场景。例如,可以应用于国际、国内运价的计算、搜索系统中。
与图1所述的方法相对应,本发明实施例还提供了一种数据传输装置,用于对图1中方法的具体实现,本发明实施例提供的数据传输装置可以应用于管理节点中,其结构示意图如图7所示,具体包括:
接收单元701,用于在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
执行单元702,用于为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
写入单元703,用于将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
传输单元704,用于将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
在本发明提供的一实施例中,基于上述的方案,可选的,所述执行单元702,包括:
确定子单元,用于确定所述业务数据的数据量;
分配子单元,用于通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
在本发明提供的一实施例中,基于上述的方案,可选的,所述执行单元702,包括:
执行子单元,用于基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
存储子单元,用于将所述业务数据存储至已申请到的所述内存中。
在本发明提供的一实施例中,基于上述的方案,可选的,所述数据传输装置,还包括:
冷却单元,用于到达预设的业务数据过期时间后,对所述管理节点的所述缓存区域进行冷却,以避免针对所述缓存区域的新增访问;
释放单元,用于到达预设的第一失效缓存冷却时间后,对所述管理节点的缓存区域中的所述业务数据以及所述附加信息进行释放,并回收所述内存地址空间;
其中,所述第一失效缓存冷却时间大于所述业务数据在所述交易节点的第二失效缓存冷却时间,所述第二失效缓存冷却时间大于所述交易节点中的交易进程的交易最长允许时间,所述第二失效缓存冷却时间指的是所述业务数据在所述交易节点中被冷却的时间。
在本发明提供的一实施例中,基于上述的方案,可选的,所述接收单元701,被配置为:
获取所述业务数据更新请求中包含的业务数据标识;
根据所述业务数据标识调用预设的外部系统,获得所述业务数据更新请求对应的业务数据。
上述本发明实施例公开的数据传输装置中的各个单元和模块具体的原理和执行过程,与上述本发明实施例公开的数据传输方法相同,可参见上述本发明实施例提供的数据传输方法中相应的部分,这里不再进行赘述。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述数据传输方法,所述方法具体包括:
在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
上述的方法,可选的,所述为所述业务数据分配内存地址空间,包括:
确定所述业务数据的数据量;
通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
上述的方法,可选的,所述根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中,包括:
基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
将所述业务数据存储至已申请到的所述内存中。
上述的方法,可选的,所述将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中之后,还包括:
到达预设的业务数据过期时间后,对所述管理节点的所述缓存区域进行冷却,以避免针对所述缓存区域的新增访问;
到达预设的第一失效缓存冷却时间后,对所述管理节点的缓存区域中的所述业务数据以及所述附加信息进行释放,并回收所述内存地址空间;
其中,所述第一失效缓存冷却时间大于所述业务数据在所述交易节点的第二失效缓存冷却时间,所述第二失效缓存冷却时间大于所述交易节点中的交易进程的交易最长允许时间,所述第二失效缓存冷却时间指的是所述业务数据在所述交易节点中被冷却的时间。
上述的方法,可选的,所述获取所述业务数据更新请求对应的业务数据,包括:
获取所述业务数据更新请求中包含的业务数据标识;
根据所述业务数据标识调用预设的外部系统,获得所述业务数据更新请求对应的业务数据。
本发明实施例还提供了一种电子设备,其结构示意图如图8所示,具体包括存储器801,以及一个或者一个以上的指令802,其中一个或者一个以上指令802存储于存储器801中,且经配置以由一个或者一个以上处理器803执行所述一个或者一个以上指令802进行以下操作:
在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
根据本公开的一个或多个实施例,图1的实施例提供了一种数据传输方法,该方法包括:
在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
上述的方法,可选的,所述为所述业务数据分配内存地址空间,包括:
确定所述业务数据的数据量;
通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
上述的方法,可选的,所述根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中,包括:
基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
将所述业务数据存储至已申请到的所述内存中。
上述的方法,可选的,所述将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中之后,还包括:
到达预设的业务数据过期时间后,对所述管理节点的所述缓存区域进行冷却,以避免针对所述缓存区域的新增访问;
到达预设的第一失效缓存冷却时间后,对所述管理节点的缓存区域中的所述业务数据以及所述附加信息进行释放,并回收所述内存地址空间;
其中,所述第一失效缓存冷却时间大于所述业务数据在所述交易节点的第二失效缓存冷却时间,所述第二失效缓存冷却时间大于所述交易节点中的交易进程的交易最长允许时间,所述第二失效缓存冷却时间指的是所述业务数据在所述交易节点中被冷却的时间。
上述的方法,可选的,所述获取所述业务数据更新请求对应的业务数据,包括:
获取所述业务数据更新请求中包含的业务数据标识;
根据所述业务数据标识调用预设的外部系统,获得所述业务数据更新请求对应的业务数据。
根据本公开的一个或多个实施例,图7的实施例提供了一种数据传输装置,该装置包括:
接收单元,用于在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
执行单元,用于为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
写入单元,用于将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
传输单元,用于将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
在本发明提供的一实施例中,基于上述的方案,可选的,所述执行单元,包括:
确定子单元,用于确定所述业务数据的数据量;
分配子单元,用于通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
在本发明提供的一实施例中,基于上述的方案,可选的,所述执行单元,包括:
执行子单元,用于基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
存储子单元,用于将所述业务数据存储至已申请到的所述内存中。
在本发明提供的一实施例中,基于上述的方案,可选的,所述数据传输装置,还包括:
冷却单元,用于到达预设的业务数据过期时间后,对所述管理节点的所述缓存区域进行冷却,以避免针对所述缓存区域的新增访问;
释放单元,用于到达预设的第一失效缓存冷却时间后,对所述管理节点的缓存区域中的所述业务数据以及所述附加信息进行释放,并回收所述内存地址空间;
其中,所述第一失效缓存冷却时间大于所述业务数据在所述交易节点的第二失效缓存冷却时间,所述第二失效缓存冷却时间大于所述交易节点中的交易进程的交易最长允许时间,所述第二失效缓存冷却时间指的是所述业务数据在所述交易节点中被冷却的时间。
在本发明提供的一实施例中,基于上述的方案,可选的,所述接收单元,被配置为:
获取所述业务数据更新请求中包含的业务数据标识;
根据所述业务数据标识调用预设的外部系统,获得所述业务数据更新请求对应的业务数据。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种数据传输方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种数据传输方法,其特征在于,应用于管理节点,包括:
在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
2.根据权利要求1所述的方法,其特征在于,所述为所述业务数据分配内存地址空间,包括:
确定所述业务数据的数据量;
通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
3.根据权利要求1所述的方法,其特征在于,所述根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中,包括:
基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
将所述业务数据存储至已申请到的所述内存中。
4.根据权利要求1所述的方法,其特征在于,所述将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中之后,还包括:
到达预设的业务数据过期时间后,对所述管理节点的所述缓存区域进行冷却,以避免针对所述缓存区域的新增访问;
到达预设的第一失效缓存冷却时间后,对所述管理节点的缓存区域中的所述业务数据以及所述附加信息进行释放,并回收所述内存地址空间;
其中,所述第一失效缓存冷却时间大于所述业务数据在所述交易节点的第二失效缓存冷却时间,所述第二失效缓存冷却时间大于所述交易节点中的交易进程的交易最长允许时间,所述第二失效缓存冷却时间指的是所述业务数据在所述交易节点中被冷却的时间。
5.根据权利要求1所述的方法,其特征在于,所述获取所述业务数据更新请求对应的业务数据,包括:
获取所述业务数据更新请求中包含的业务数据标识;
根据所述业务数据标识调用预设的外部系统,获得所述业务数据更新请求对应的业务数据。
6.一种数据传输装置,其特征在于,应用于管理节点,包括:
接收单元,用于在接收到预设的交易节点的业务数据更新请求的情况下,获取所述业务数据更新请求对应的业务数据;
执行单元,用于为所述业务数据分配内存地址空间,并根据所述内存地址空间的地址信息将所述业务数据存储到所述管理节点的内存中;
写入单元,用于将已存储到所述管理节点的内存中的所述业务数据以及所述业务数据的附加信息写入所述管理节点的缓存区域中,获得待传输的缓存数据,所述附加信息至少包括所述内存地址空间的地址信息;
传输单元,用于将所述缓存数据发往所述交易节点,使得所述交易节点根据所述内存地址空间的地址信息将所述业务数据存储到所述交易节点的内存中,将已存储到所述交易节点的内存的所述业务数据写入所述交易节点的缓存区域中,以便于所述交易节点中的交易进程调用所述业务数据。
7.根据权利要求6所述的装置,其特征在于,所述执行单元,包括:
确定子单元,用于确定所述业务数据的数据量;
分配子单元,用于通过预设的地址空间管理器基于所述数据量为所述业务数据分配连续的内存地址空间;所述为所述业务数据分配的内存地址空间的容量大于或等于所述业务数据的数据量。
8.根据权利要求6所述的装置,其特征在于,所述执行单元,包括:
执行子单元,用于基于所述内存地址空间的地址信息,向所述管理节点的操作系统申请与所述内存地址空间的容量相匹配的内存,所述内存的首地址与所述内存地址空间的地址信息一致;
存储子单元,用于将所述业务数据存储至已申请到的所述内存中。
9.一种存储介质,其特征在于,所述存储介质包括存储指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~5任意一项所述的数据传输方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1~5任意一项所述的数据传输方法。
CN202211012270.5A 2022-08-23 2022-08-23 数据传输方法及装置、存储介质及电子设备 Pending CN115357593A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211012270.5A CN115357593A (zh) 2022-08-23 2022-08-23 数据传输方法及装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211012270.5A CN115357593A (zh) 2022-08-23 2022-08-23 数据传输方法及装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN115357593A true CN115357593A (zh) 2022-11-18

Family

ID=84003305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211012270.5A Pending CN115357593A (zh) 2022-08-23 2022-08-23 数据传输方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN115357593A (zh)

Similar Documents

Publication Publication Date Title
JP3199718B2 (ja) キャッシュ整合性維持方法
KR101038963B1 (ko) 캐쉬 할당을 위한 장치, 시스템, 방법 및 기계 액세스가능 매체
US7949839B2 (en) Managing memory pages
US8055851B2 (en) Line swapping scheme to reduce back invalidations in a snoop filter
KR101974491B1 (ko) 축출 시스템, 축출 방법 및 컴퓨터 판독가능 매체
US20050234867A1 (en) Method and apparatus for managing file, computer product, and file system
US8443149B2 (en) Evicting data from a cache via a batch file
CN112000287B (zh) 一种io请求处理装置、方法、设备及可读存储介质
JP2004511840A (ja) 他のノードのキャッシュに基づくあるノードのキャッシュ内のデータの置換管理
CN112084258A (zh) 一种数据同步方法和装置
CN101127008A (zh) 用于预测性选择预取操作的范围的数据处理系统和方法
CN107341114B (zh) 一种目录管理的方法、节点控制器和系统
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
CN109960662B (zh) 一种内存回收方法及设备
CN111406251B (zh) 数据预取方法及装置
US20200042184A1 (en) Cost-Effective Deployments of a PMEM-Based DMO System
EP3249539B1 (en) Method and device for accessing data visitor directory in multi-core system
CN113138851B (zh) 一种数据管理方法、相关装置及系统
US8533398B2 (en) Combination based LRU caching
US20230088344A1 (en) Storage medium management method and apparatus, device, and computer-readable storage medium
US7836248B2 (en) Methods and systems for managing persistent storage of small data objects
WO2023035694A1 (zh) 业务系统、内存管理方法及装置
CN115357593A (zh) 数据传输方法及装置、存储介质及电子设备
CN109376001A (zh) 一种资源分配的方法及设备
US20240168645A1 (en) Methods and systems for limiting data traffic while processing computer system operations

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