一种交易级内存数据共享方法及装置制造方法及图纸

技术编号:38133503 阅读:10 留言:0更新日期:2023-07-08 09:43
本申请提供了一种交易级内存数据共享方法及装置,方法包括:通过共享内存初始化接口对共享内存进行初始化处理;将待共享的数据通过内存更新接口写入共享内存中以使应用程序通过共享内存读取接口获取共享内存中的数据。本申请通过共享内存实现数据交互,使得同一交易不同程序之间可以交互数据;针对不同程序之间的共享内存,建立一套数据管理方法,实现数据插入、更新、查询等功能,应用于程序间数据共享,提升程序交互性能。通过内存的方式,高效率、低消耗地实现亿级数据的交换,使数据提供者及使用者只需要关心数据内容本身,无需关心共享的细节。共享的细节。共享的细节。

【技术实现步骤摘要】
一种交易级内存数据共享方法及装置


[0001]本申请属于数据共享
,具体地讲,涉及一种交易级内存数据共享方法及装置。

技术介绍

[0002]一般业务处理系统中,一笔业务流程称为一笔交易。在一个交易过程中,由于涉及多访问各类资源,一个交易会拆分成多个程序处理,以实现最大的程序复用。常见的程序之间的交互主要有通讯区、文件、数据库等方式。比如程序A调用程序B,通过通讯区交互,或者程序A写入文件,程序B读取文件,或者程序A写入数据库,程序B读取或更改A写入的数据。通讯区只能用于直接调用的两个程序之间的交互场景,无法实现间隔调用的程序交互;通过文件和数据库交互会涉及到较多磁盘IO,性能效率较低。因此,需要一种访问效率较高且又能实现同一交易多个程序之间数据共享的方法来提升交易的访问性能和业务系统的并发处理能力。

技术实现思路

[0003]本申请提供了一种交易级内存数据共享方法及装置,以至少解决当前交易级内存数据共享无法实现间隔调用且性能效率较低的问题。
[0004]根据本申请的一个方面,提供了一种交易级内存数据共享方法,包括:
[0005]通过共享内存初始化接口对共享内存进行初始化处理;
[0006]将待共享的数据通过内存更新接口写入共享内存中以使其他应用程序能够通过共享内存读取接口获取共享内存中的数据。
[0007]在一实施例中,通过共享内存初始化接口对共享内存进行初始化处理,包括:
[0008]检查共享内存的交易工作区中是否有共享内存地址信息;
[0009]如果否,则向共享内存申请一存储区并初始化共享内存,将地址信息放入交易工作区中;
[0010]如果是,则检查地址保护标签是否一致,如果不一致则报错,正常则初始化完成。
[0011]在一实施例中,应用程序通过共享内存读取接口获取共享内存中的数据,包括:
[0012]通过共享内存读取接口从交易工作区中获取共享内存地址信息;
[0013]通过共享内存地址信息访问共享内存;
[0014]根据应用程序提供的共享资源名称检查共享内存中是否有对应的共享资源。
[0015]在一实施例中,共享内存中的数据包含信息头、资源列表、数据区和数据保护标签;
[0016]在信息头中存放交易的公共信息,在资源列表中存放共享资源的相关信息,在数据区按资源列表的顺序存放共享资源的数据并使用追加的方式写入到数据区中;
[0017]数据保护标签存放在共享内存的头尾,用于防止共享内存被覆盖时错误使用共享数据。
[0018]在一实施例中,交易级内存数据共享方法还包括:
[0019]根据交易名及交易所属的线程名称通过加密算法生成共享内存的保护标签;
[0020]在共享内存地址信息中放置保护标签。
[0021]在一实施例中,当需要跨分区共享数据时,还包括:
[0022]通过内存同步接口访问共享内存并把共享内存全量数据返回给跨分区调用公共模块;
[0023]跨分区调用公共模块将源分区中的待共享内存数据打包成共享包传递给目标分区并进行共享。
[0024]在一实施例中,跨分区调用公共模块将源分区中的待共享内存数据打包成共享包传递给目标分区并进行共享,包括:
[0025]将待共享内存数据打包成共享包并将共享包打包成新的通讯区;
[0026]目标分区跨分区调用公共模块拆分新的通讯区并将共享包写入本分区的共享内存中以完成跨分区数据共享。
[0027]根据本申请的另一个方面,还提供了一种交易级内存数据共享装置,包括:
[0028]初始化单元,用于通过共享内存初始化接口对共享内存进行初始化处理;
[0029]写入共享单元,用于将待共享的数据通过内存更新接口写入共享内存中以使应用程序通过共享内存读取接口获取共享内存中的数据。
[0030]在一实施例中,初始化单元包括:
[0031]地址检查模块,用于检查共享内存的交易工作区中是否有共享内存地址信息;
[0032]地址初始化模块,用于如果否,则向共享内存申请一存储区并初始化共享内存,将地址信息放入交易工作区中;
[0033]用于如果是,说明本交易已做过初始化,检查地址保护标签是否一致,如果不一致则报错,正常则初始化完成。
[0034]在一实施例中,写入共享单元包括:
[0035]共享内存地址获取模块,用于通过共享内存读取接口从交易工作区中获取共享内存地址信息;
[0036]共享内存访问模块,用于通过共享内存地址信息访问共享内存;
[0037]共享资源查询模块,用于根据应用程序提供的共享资源名称检查共享内存中是否有对应的共享资源。
[0038]在一实施例中,共享内存中的数据包含信息头、资源列表、数据区和数据保护标签;
[0039]在信息头中存放交易的公共信息,在资源列表中存放共享资源的相关信息,在数据区按资源列表的顺序存放共享资源的数据并使用追加的方式写入到数据区中;
[0040]数据保护标签存放在共享内存的头尾,用于防止共享内存被覆盖时错误使用共享数据。
[0041]在一实施例中,交易级内存数据共享装置还包括:
[0042]保护标签生成单元,用于根据交易名及交易所属的线程名称通过加密算法生成共享内存的保护标签;
[0043]保护标签放置单元,用于在共享内存地址信息中放置保护标签。
[0044]在一实施例中,当需要跨分区共享数据时,还包括:
[0045]接口访问模块,用于通过内存同步接口访问共享内存并把共享内存全量数据返回给跨分区调用公共模块;
[0046]打包共享模块,用于将跨分区调用公共模块中的待共享内存数据打包成共享包并进行共享。
[0047]在一实施例中,打包共享模块包括:
[0048]新通讯区打包模块,用于将待共享内存数据打包成共享包并将共享包打包成新的通讯区;
[0049]跨分区共享模块,用于拆分新的通讯区并将共享包写入本分区的共享内存中以完成跨分区数据共享。
[0050]本申请的目的在于提供一种交易级内存数据共享方法及装置,提出通过共享内存实现数据交互,使得同一交易不同程序之间可以交互数据;针对不同程序之间的共享内存,建立一套数据管理方法,实现数据插入、更新、查询等功能,应用于程序间数据共享,提升程序交互性能。使程序无需关心数据在哪里写入,数据写到哪里,数据如何从提供者传递给使用者。通过内存的方式,高效率、低消耗地实现亿级数据的交换,使数据提供者及使用者只需要关心数据内容本身,无需关心共享的细节。
附图说明
[0051]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052]图1为本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种交易级内存数据共享方法,其特征在于,包括:通过共享内存初始化接口对共享内存进行初始化处理;将待共享的数据通过内存更新接口写入共享内存中以使应用程序通过共享内存读取接口获取共享内存中的数据。2.根据权利要求1所述的交易级内存数据共享方法,其特征在于,所述通过共享内存初始化接口对共享内存进行初始化处理,包括:检查共享内存的交易工作区中是否有共享内存地址信息;如果否,则向所述共享内存申请一存储区并初始化所述共享内存,将地址信息放入所述交易工作区中;如果是,则检查地址保护标签是否一致,如果不一致则报错,正常则初始化完成。3.根据权利要求2所述的交易级内存数据共享方法,其特征在于,所述应用程序通过共享内存读取接口获取共享内存中的数据,包括:通过共享内存读取接口从所述交易工作区中获取所述共享内存地址信息;通过所述共享内存地址信息访问共享内存;根据应用程序提供的共享资源名称检查共享内存中是否有对应的共享资源。4.根据权利要求1所述的交易级内存数据共享方法,其特征在于,共享内存中的数据包含信息头、资源列表、数据区和数据保护标签;在所述信息头中存放交易的公共信息,在所述资源列表中存放共享资源的相关信息,在所述数据区按所述资源列表的顺序存放共享资源的数据并使用追加的方式写入到数据区中;所述数据保护标签存放在共享内存的头尾,用于防止共享内存被覆盖时错误使用共享数据。5.根据权利要求1所述的交易级内存数据共享方法,其特征在于,还包括:根据交易名及交易所属的线...

【专利技术属性】
技术研发人员:朱小珍谭汉清何楷东苏金水
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1