一种业务数据管理方法及系统与流程
未命名
08-15
阅读:87
评论:0

1.本技术涉及通信技术领域,具体来讲涉及一种业务数据管理方法及系统。
背景技术:
2.在通信设备上为完成各种网络功能,会在设备的内存和硬盘中保存数据,例如bgp协议(border gateway protocol,边界网关协议)在完成bgp路由学习后会在内存中保存路由表项数据,acl(access control lists,访问控制列表)模块在接收到网管下发的配置后会生成芯片需要的acl表项数据,dhcp(dynamic host configuration protocol,动态主机配置协议)模块在完成ip地址分配后会保存分配数据,这些数据我们统称为业务数据。
3.业务数据一般是保存在通过常见的数据结构(如树、数组、链表)中,存放于通信设备的ram(random access memory,随机存取存储器)中。
4.通信设备在运行过程中会根据各不同场景对业务数据进行不同的处理。例如,
5.1.设备因各种原因需要重启,若要重启后能直接恢复业务数据,则需要在重启前业务数据保存到硬盘上。
6.2.设备为了保证可靠性,会设计主备两个主控制板,进行冗余备份。在此场景需要实现业务数据从主控制板到备控制板的备份处理,设备上的各业务模块需要编写备份代码将业务数据通过消息,发送到备控制板的ram中。
7.3.为了保证网络服务的不中断。在升级软件版本时,先通过调用数据库的写接口将数据保存到数据库中,待升级成功后,业务模块再通过数据库读接口将数据恢复到ram中。
8.现有的业务数据管理方式存在如下问题:
9.(1)业务模块需要感知上述不同场景事件进行数据传输、备份和恢复的处理,由于各业务数据结构不尽相同,需要针对不同的数据结构编写大量不同的代码。虽然可以采用数据库技术对数据持久化存储,简化了存储到硬盘的实现的复杂度,也无法实现将存储在硬盘中的数据自动恢复到业务定制的内存数据结构中。
10.(2)由于通信设备上运行业务是固定,并且都会预先设计好,各业务的规格。若是按各业务场景预算的最大规格来设计硬件内存,将大大提高硬件成本,硬件资源有限。实际设备在运行过程中并且不会使用到所有场景,并且也不能所有场景都运行到最大规格,这就造成了硬件资源的浪费。若是设计的硬件内存过小,在基于linux的操作系统的通信设备上,操作系统发现系统内存不足时,会将内存中不常访问的数据保存到swap分区(交换分区)上,这个过程没有识别业务的重要性,有可能会将重要的业务数据保存到硬盘上,降低重要业务处理的实时性。
技术实现要素:
11.本技术实施例提供一种业务数据管理方法及系统,可以避免编写大量代码,在有限资源的情况下,提高业务处理性能。
12.第一方面,提供了一种业务数据管理方法,包括步骤:
13.在基于linux系统的网络设备上关闭swap分区;
14.通过程序设计语言定义业务数据结构并添加注释后,再解析生成业务数据模型,该注释用于体现业务数据的重要性和不同场景的处理策略;
15.网络设备读取业务数据模型,根据业务数据的重要性动态调整业务数据的存储位置;根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动。
16.在一些实施例中,所述注释中通过特定关键字描述业务数据的名称、数据类型、优先级、是否支持不中断业务升级、是否支持主备、以及是否支持掉电恢复。
17.在一些实施例中,添加注释后的业务数据通过脚本语言进行解析,解析后生成的预设格式文件和网络设备的应用程序一起放在网络设备上,当网络设备上电启动后,读取所述预设格式文件内容生成业务数据模型。
18.在一些实施例中,根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动,包括将业务数据从内存移动到硬盘:对内存中即将访问的业务数据加锁,根据业务数据模型定义的数据类型进行遍历访问,将读取到的该数据类型需要移动的业务数据写入硬盘数据库,或者按自定义的数据类型写入硬盘中;释放原有内存中的业务数据,并标记对应的业务数据在硬盘上,释放数据锁。
19.在一些实施例中,根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动,包括将业务数据由硬盘移动到内存:对硬盘中即将访问的业务数据加锁,从硬盘中读取将访问的业务数据,根据业务数据模型定义的数据类型,得到业务数据对应的位置,将读取的业务数据恢复成内存中的业务数据。
20.在一些实施例中,根据业务数据的重要性动态调整业务数据的存储位置,包括业务数据在内存不足时,按重要性进行调度:
21.根据业务模型中各字段的数据类型,计算出各单个业务数据条目的内存占用情况,根据业务数据条目的增删记录获得业务数据的条数;
22.预留部分内存,周期性获取业务数据占用网络设备剩余内存空间大小,若剩余内存空间小于预留内存,将重要性低的业务数据移动至硬盘。
23.在一些实施例中,所述重要性通过权重数值表示,权重数值基于业务数据的优先级和单位时间内的访问次数确定,优先将权重数值小的业务数据移动至硬盘。
24.在一些实施例中,当网络设备插入备用控制板时,查找需要备份的数据类型,找到主用控制板上需要备份的业务数据;
25.若该业务数据在主用控制板的内存中,根据数据类型进行遍历访问,将读取到的该数据类型的需要备份的业务数据写入备用控制板的内存;
26.若该业务数据在主用控制板的硬盘中,根据数据类型进行遍历访问,从硬盘中读取业务数据,将读取到的该数据类型的业务数据写入备用控制板的硬盘。
27.在一些实施例中,当业务需要不中断业务升级时,从内存中查找需要进行不中断业务升级场景的备份的业务数据,将读取到的业务数据写入硬盘数据库,释放原有内存中的业务数据;
28.不中断业务升级后,从硬盘中读取所述不中断业务升级服务场景的备份的业务数据,根据对应的数据类型的位置,将读取的业务数据恢复到内存中。
29.第二方面,提供一种基于任一所述方法的业务数据管理系统,包括:
30.网络功能处理模块,用于网络设备上完成网络功能;
31.业务数据模型,是通过程序设计语言定义业务数据结构并添加注释后,再解析生成的模型;
32.业务数据代理模块,设置于网络功能处理模块内,用于从业务数据服务模块获取业务数据,提供业务数据的访问接口;
33.业务数据服务模块,设置于网络设备,用于解析并加载业务数据模型,读取业务数据模型并存储,感知不同场景并发送给业务数据代理模块;根据业务数据的重要性动态调整业务数据的存储位置;根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动。
34.本技术提供的技术方案带来的有益效果包括:
35.本技术禁用linux操作系统swap分区,通过程序设计语言定义业务数据结构并添加注释,解析生成业务数据模型,由于注释可以用于体现业务数据的重要性和不同场景的处理策略,当业务数据存储后,可以根据不同的场景,自动执行业务数据移动或者复制,避免根据不同数据结构编写大量不同代码;相对于采用数据库技术对数据持久化存储,可以将硬盘中的业务数据自动恢复到内存中。
36.本技术中注释用于体现业务数据的重要性,当内存不足时,不再由linux操作系统做内存与硬盘的业务数据交换,而是根据业务的重要性动态调整业务数据存储位置,将重要性最低的业务数据交接到硬盘上;与固定选择使用某种内存结构或数据库相比,提供了一种更加灵活的业务数据调度管理方式,调度算法更加适合嵌入式设备,在有限的资源情况下,不用提高硬件成本,并且能够提高网络设备日常业务处理性能。
附图说明
37.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本发明实施例业务数据管理方法流程图;
39.图2为本发明实施例增加业务数据流程图;
40.图3位本发明实施例业务数据管理系统示意图。
41.附图标记:
42.1、网络功能处理模块;2、业务数据模型;3、业务数据服务模块;4、业务数据代理模块。
具体实施方式
43.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.本技术实施例提供了一种业务数据管理方法,其能解决现有技术中心根据不同数
据编写大量不同代码的问题,还可以解决在硬件成本有限的情况下,如何提高业务处理性能的问题。
45.如图1所示,提供业务数据管理方法的实施例,包括步骤:
46.s1.在基于linux系统的网络设备上关闭swap分区。
47.s2.通过程序设计语言定义业务数据结构,并添加注释,再通过脚本语言对添加过注释的代码进行自动解析,生成业务数据模型。该注释用来体现业务数据的重要性和不同场景的处理策略。本实施例中,程序设计语言可以为c语言,其他实施例中,程序设计语言还可以是c++语言、go语言等。
48.s3.网络设备读取业务数据模型,根据业务数据的重要性动态调整业务数据的存储位置;根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动。
49.上述步骤s2中,通过在注释中增加特定的关键字,用来描述业务数据的名称、数据类型、优先级、是否支持不中断业务升级(in-service software upgrade,issu)、是否支持主备、以及是否支持掉电恢复等属性。本实施例中,可以通过优先级来体现业务数据的重要性,通过是否支持issu、是否支持主备、以及是否支持掉电恢复等属性,来体现业务数据在不同场景的处理策略。添加注释后的业务数据通过脚本语言进行解析,脚本语言在解析业务数据时,能通过注释的内容提取此业务数据的重要性,如何备份处理,如何保存到数据库或文件中等等。
50.解析后生成的预设格式文件和网络设备的应用程序一起放在网络设备上,当网络设备上电启动后,读取所述预设格式文件内容生成业务数据模型。上述脚本语言可以是python,也可以是其他解析代码提取出信息的技术。解析后生成的预设格式文件可以是json、xml、或者ini等格式。
51.根据上述步骤,对业务常见的数据接口结构进行修改,嵌入业务数据调度管理逻辑,在平时业务通过这些接口读写业务数据直接操作内存,当需要时,可以将业务数据移动到硬盘,或者是复制到备用控制板上。当业务数据需要从硬盘中恢复时,可以自动从硬盘中读取数据,恢复成常见的数据结构。
52.每个上述业务数据模型对应一种数据类型,运行时,网络设备保存了当前数据类型所处的位置。每个业务模型在实际运行时会有多个数据条目。
53.如图2所示,是运行时增加一个业务数据条目的流程,步骤如下:
54.a1增加一个业务数据条目。
55.a2判断当前增加的该业务数据条目的数据类型是否保存在内存中,如果是,进入a3;如果否,进入a4。
56.a3将该业务数据条目保存在用户指定的内存数据结构中,结束。
57.a4将该业务数据条目保存到硬盘中,结束。
58.同理,当运行时需要删除一个业务数据条目的时候,修改业务数据时,判断需要修改的业务数据条目的数据类型是否保存在内存中,如果是,在内存中修改对应业务数据条目;如果否,在硬盘中修改业务数据条目。
59.查询业务数据时,判断需要查询的业务数据条目的业务数据类型是否保存在内存中,如果是,调出内存中的该业务数据条目;如果否,在硬盘中调出该业务数据条目。
60.上述步骤s3中,根据不同场景对应的处理策略,将业务数据在内存和硬盘件移动,
包括将业务数据从内存移动到硬盘、以及将业务数据由硬盘移动到内存。
61.当需要将业务数据从内存移动到硬盘时,对内存中即将访问的业务数据加锁,根据业务数据模型定义的数据类型进行遍历访问,读取到该数据类型需要移动的业务数据,可以通过数据库的接口写入硬盘数据库,或者自己定义写入的数据类型,按照该数据类型写入硬盘中。写入完成后,原有内存中对应的业务数据释放,并且标记对应的业务数据当前已在硬盘上,释放数据锁。当再次访问该业务数据时,因为对应的业务数据已被标记在硬盘上,则所有的读写操作都在硬盘上。本技术中业务数据移动时,可以是移动一个业务数据条目,也可以是移动多个业务数据条目。
62.当网络设备上电启动后,或者系统内存充足时,需要将硬盘的业务数据移动到内存时,对硬盘中即将访问的业务数据加锁,从硬盘中读取将访问的业务数据,根据业务数据模型定义的数据类型,得到业务数据对应的位置,将读取的业务数据恢复成内存中的业务数据。
63.在一些实施例中,网络设备原来只有一个主用控制板,当插入备用控制板时,上述步骤s3中还包括将主用控制板上的业务数据备份到备用控制板的处理。根据业务数据模型查找需要进行主备备份的数据类型,在主用控制板上找到需要备份的业务数据,如果该业务数据在主用控制板的内存中,根据数据类型进行遍历访问,将读取到的该数据类型的业务数据写入备用控制板的内存;如果该业务数据在主用控制板的硬盘中,根据数据类型进行遍历访问,从硬盘中读取业务数据,将读取到的该数据类型的业务数据写入备用控制板的硬盘。
64.在一些实施例中,上述步骤s3中还包括业务在issu场景下的处理策略。当业务需要issu时,从内存中根据数据类型,查找需要进行issu场景的备份的业务数据,将读取到的业务数据写入硬盘数据库,释放原有内存中的业务数据;issu后,从硬盘中读取issu服务场景的备份的业务数据,根据对应的数据类型的位置,将读取的业务数据恢复到内存中。
65.上述步骤s3中,通过linux系统接口可以获取网络设备的内存占用情况,网络设备可以根据业务数据的重要性动态调整业务数据的存储位置。根据业务模型中各字段的数据类型,可以计算出各单个业务数据条目的内存占用情况,根据业务数据条目的增删记录,可以获得业务数据的条数。为了应对突发的内存申请,提前为网络设备预留部分内存,本实施例中预留10%的内存,约为300mb。周期性获取业务数据占用网络设备剩余内存空间大小、提及各业务数据占用情况,若剩余内存空间小于预留内存,则触发业务数据的调度,将重要性低的业务数据移动至硬盘。本实施例中,周期可以定为1分钟。
66.在一些实施例中,重要性可以通过权重数值表示,权重数值可以通过多种方式计算,根据系统需要进行调整。本实施例中权重数值基于业务数据的优先级和单位时间内的访问次数确定,优先将权重数值小的业务数据移动至硬盘。例如,某业务数据优先级x,最近1分钟访问次数y,可以使用公式100*x+y计算得出权重数值,优先将权重数值最小的业务数据放到硬盘。
67.假设系统上目前上运行4种业务,存在5种业务数据,业务1数据a,业务2数据b,业务3数据c,业务4数据d,业务4数据e。当系统在某一时刻,剩余内存240mb,小于预留的300mb内存,内存情况如表1。
68.表1
[0069][0070]
通过上述公式100*x+y计算得出权重数值如表2。
[0071]
表2
[0072]
业务数据权重数值业务1数据a300业务2数据b9030业务3数据c250业务4数据d10040业务4数据e160
[0073]
可以看出,业务数据按照权重数值从高到低排序分别是d>b>a>c>e。那么,优先将业务4数据e从内存移动硬盘,调整后内存剩余空间290mb,还是小于预留的300mb内存,则继续将业务3数据c从内存移动到硬盘,调整后内存剩余空间340mb,大于预留的300mb内存,此次因系统内存不足而触发的业务数据调度结束。
[0074]
如图3所示,提供一种业务数据管理系统的实施例,可以用来实施上述方法实施例。业务数据管理系统包括网络功能处理模块1、业务数据模型2、业务数据服务模块3、以及业务数据代理模块4。
[0075]
网络功能处理模块1,用于网络设备上完成网络功能,例如处理系统、bgp协议、以及dhcp协议。并且,基于linux系统的网络设备上已关闭swap分区。
[0076]
业务数据模型2,是通过程序设计语言定义业务数据结构并添加注释后,再由脚本工具通过解析含有注释的源代码生成的,可以是json、xml、ini等格式,该注释用于体现业务数据的重要性和不同场景的处理策略。程序设计语言可以是c语言、c++语言、go语言等。
[0077]
业务数据代理模块4,设置于网络功能处理模块1内,用于从业务数据服务模块3获取业务数据,提供业务数据的访问接口。
[0078]
业务数据服务模块3,设置于网络设备,用于解析并加载业务数据模型2,读取业务数据模型2并存储,获取业务数据的管理信息,还用于感知不同场景,如issu、设备上电恢复、背板插入等场景,并将这些信息发送给业务数据代理模块4。业务数据服务模块3还可以将存储在业务数据服务模块3的业务数据发送给业务数据代理模块4。
[0079]
进一步的,业务数据管理系统还可以包括备用控制板的相关模块,也就是在备用
控制板上,设置有主用控制板上模块的备份模块。
[0080]
运行时,业务数据服务模块3加载业务数据模型2,网络功能处理模块1使用业务数据代理模块4提供的数据访问接口对业务数据条目进行增加、删除、修改以及查询,业务数据管理系统根据网络设备的剩余内存空间、是否存在备用控制板等场景,对业务数据条目进行调度管理。业务数据可以根据业务选择,既可以保存在内存中,也可以保存在硬盘里。
[0081]
本实施例中,业务数据模型2通过c语言定义业务数据结构,以如下定义的业务数据的数据结构为例,其保存了dhcp服务器的地址分配信息。具体的,包含两个信息,一个是接口索引信息,字段名为if_index,一个是分配的ip地址信息,字段名为ipaddr。
[0082][0083]
通过在注释中增加特定的关键字来描述业务数据的名称、优先级、是否支持issu、是否支持主备和是否要支持掉电恢复等属性,脚本语言在解析业务数据结构定义时,能通过注释内容提取此业务数据的重要性、如何备份处理、或者如何保存到数据库或文件中。
[0084]
例如,注释的格式为:
[0085]
@注释功能关键字(注释字段="字段值",....,可以有多个注释字段)
[0086]
注释的具体内容定义可以参考表1,还可以根据实际需要增加注释的关键字和注释字段。
[0087]
表3
[0088]
[0089][0090]
其中,entity说明这个数据结构是业务数据表项,并且使用默认的业务数据解析规则,即结构体名对应业务数据表中表名,结构体成员名即表中的字段名。column注释也可以不使用,那么脚本解析程序直接使用默认值,column元数据定义了映射到业务数据表的列的所有属性:列名,是否唯一,默认值。
[0091]
根据上述所列的业务数据注释规则,对业务数据注释进行修改。
[0092][0093]
上面这个示例中,有两种注释:
[0094]
1.对结构体进行总体注释,主要是描述整个业务数据的属性。
[0095]
@entity(service="dhcp",
[0096]
name="dhcp4bind",level="10",issu="false",slave="true",persistence="tru e")含义是这个业务数据,归属于dhcp业务,业务数据名称为dhcp4bind,业务的优先级为10,不需要支持issu升级,需要支持主备备份,需要支持设备重启后的数据恢复,ramtype没有定义,则使用默认,表示在内存中红黑树进行组织。
[0097]
2.对结构体成员进行注释,主要是描述业务数据中具体内容的属性。
[0098]
@column(name="ifindex",unique="true")含义是这个业务数据的if_index,在数据传输或持久化保存到硬盘文本文件或数据库文件中,字段名称为ifindex,并且这个字段值是唯一的,可以做为key值。
[0099]
上面这个示例中的ipaddr没有使用注释,那么就表示:字段名为ipaddr不做修改,数据类型为unsigned int,字段值非唯一,不做key值。
[0100]
完成此业务数据的定义和注释后,通过脚本语言,如python,对此定义进行语法语义解析。由于脚本文解析代码,提取出信息的技术比较成熟,涉及的具体解析技术就不再赘述了。
[0101]
脚本提取出业务数据信息后,按指定的格式生成json、xml、ini等格式的文件。本实施例中生成json文件,具体格式是专为业务数据设计。具体定义如下,可以根据实际需要增删字段:
[0102][0103][0104]
脚本解析带注释的dhcp4_bind的结构体定义源码后,会生成如下json内容:
[0105][0106]
至此,完成一个业务数据模型2的编码和涉及过程。需要说明的是,json内容与前
面面注释内容大部分一样,需要将注释通过脚本解析成json格式,是因为这种专为业务数据设计格式更容易被通信设备上的应用程序加载解析。不直接写json而是先写注释原因是,相比于json,注释的写法更容易被业务模型开发人员掌握,编写方便,而且json中大量字段的信息可以通过脚本解析c语言的源代码自动生成,减少开发人员写json的工作量。
[0107]
业务数据管理系统通过json文件获取业务数据信息的方法,将脚本解析生成的json文件和网络设备的应用程序一起放到网络设备上,当网络设备上电启动,业务数据管理系统启动后读取json文件的内容,将读取到业务数据模型2放到树结构中,并将此信息通过进程间通信消息发给业务数据代理模块4。
[0108]
当网络设备将业务数据由硬盘移动到内存时,对即将访问的业务数据加锁,从硬盘中读取出业务数据,根据业务数据模型2定义的数据类型,将业务数据恢复成内存中数据类型的业务数据。由于业务数据管理系统保存了业务数据在内存数据结构中的类型,数据恢复到内存的过程不需要网络功能处理模块1的参与,就可以恢复成需要的数据结构。
[0109]
例如dhcp4bind在json中定义的内存数据结构的数据类型为红黑树。业务数据管理系统在恢复数据时,就会使用红黑树数据类型的接口,将获取到的业务数据存入到内存中,形成红黑树。完成读取恢复操作后,释放硬盘数据锁。dhcp业务就可以访问在内存中的dhcp4bind数据了。
[0110]
本技术通过c语言注释来定义业务数据模型,当业务数据存入业务数据管理系统后,会根据不同的场景,自动执行业务数据移动或复制,减少网络设备功能编码量。
[0111]
根据业务的重要性来动态调整业务数据存储位置,与固定选择使用某种内存结构或数据库相比,提供了一种更加灵活的业务数据调度管理方式,调度算法更加适合嵌入式设备,在有限的资源情况下,有效提高设备日常运行性能。
[0112]
需要说明的是,在本技术中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0113]
以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种业务数据管理方法,其特征在于,包括步骤:在基于linux系统的网络设备上关闭swap分区;通过程序设计语言定义业务数据结构并添加注释后,再解析生成业务数据模型,该注释用于体现业务数据的重要性和不同场景的处理策略;网络设备读取业务数据模型,根据业务数据的重要性动态调整业务数据的存储位置;根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动。2.如权利要求1所述的业务数据管理方法,其特征在于,所述注释中通过特定关键字描述业务数据的名称、数据类型、优先级、是否支持不中断业务升级、是否支持主备、以及是否支持掉电恢复。3.如权利要求1所述的业务数据管理方法,其特征在于,添加注释后的业务数据通过脚本语言进行解析,解析后生成的预设格式文件和网络设备的应用程序一起放在网络设备上,当网络设备上电启动后,读取所述预设格式文件内容生成业务数据模型。4.如权利要求1所述的业务数据管理方法,其特征在于,根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动,包括将业务数据从内存移动到硬盘:对内存中即将访问的业务数据加锁,根据业务数据模型定义的数据类型进行遍历访问,将读取到的该数据类型需要移动的业务数据写入硬盘数据库,或者按自定义的数据类型写入硬盘中;释放原有内存中的业务数据,并标记对应的业务数据在硬盘上,释放数据锁。5.如权利要求1所述的业务数据管理方法,其特征在于,根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动,包括将业务数据由硬盘移动到内存:对硬盘中即将访问的业务数据加锁,从硬盘中读取将访问的业务数据,根据业务数据模型定义的数据类型,得到业务数据对应的位置,将读取的业务数据恢复成内存中的业务数据。6.如权利要求1所述的业务数据管理方法,其特征在于,根据业务数据的重要性动态调整业务数据的存储位置,包括业务数据在内存不足时,按重要性进行调度:根据业务模型中各字段的数据类型,计算出各单个业务数据条目的内存占用情况,根据业务数据条目的增删记录获得业务数据的条数;预留部分内存,周期性获取业务数据占用网络设备剩余内存空间大小,若剩余内存空间小于预留内存,将重要性低的业务数据移动至硬盘。7.如权利要求6所述的业务数据管理方法,其特征在于,所述重要性通过权重数值表示,权重数值基于业务数据的优先级和单位时间内的访问次数确定,优先将权重数值小的业务数据移动至硬盘。8.如权利要求1所述的业务数据管理方法,其特征在于,当网络设备插入备用控制板时,查找需要备份的数据类型,找到主用控制板上需要备份的业务数据;若该业务数据在主用控制板的内存中,根据数据类型进行遍历访问,将读取到的该数据类型的需要备份的业务数据写入备用控制板的内存;若该业务数据在主用控制板的硬盘中,根据数据类型进行遍历访问,从硬盘中读取业务数据,将读取到的该数据类型的业务数据写入备用控制板的硬盘。9.如权利要求1所述的业务数据管理方法,其特征在于,当业务需要不中断业务升级时,从内存中查找需要进行不中断业务升级场景的备份的业务数据,将读取到的业务数据写入硬盘数据库,释放原有内存中的业务数据;
不中断业务升级后,从硬盘中读取所述不中断业务升级服务场景的备份的业务数据,根据对应的数据类型的位置,将读取的业务数据恢复到内存中。10.一种基于权利要求1-9任一所述方法的业务数据管理系统,其特征在于,包括:网络功能处理模块,用于网络设备上完成网络功能;业务数据模型,是通过程序设计语言定义业务数据结构并添加注释后,再解析生成的模型;业务数据代理模块,设置于网络功能处理模块内,用于从业务数据服务模块获取业务数据,提供业务数据的访问接口;业务数据服务模块,设置于网络设备,用于解析并加载业务数据模型,读取业务数据模型并存储,感知不同场景并发送给业务数据代理模块;根据业务数据的重要性动态调整业务数据的存储位置;根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动。
技术总结
本申请涉及一种业务数据管理方法及系统,涉及通信技术领域,方法包括:在基于Linux系统的网络设备上关闭SWAP分区;通过程序设计语言定义业务数据结构并添加注释后,再解析生成业务数据模型,该注释用于体现业务数据的重要性和不同场景的处理策略;网络设备读取业务数据模型,根据业务数据的重要性动态调整业务数据的存储位置;根据不同场景对应的处理策略,将业务数据在内存和硬盘间移动。本申请可以避免编写大量代码,在有限资源的情况下,提高业务处理性能。处理性能。处理性能。
技术研发人员:林杨宝 许亮 赵于意 吕华
受保护的技术使用者:南京第三代通信科技有限公司
技术研发日:2023.05.12
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:机电工程用调试系统及调试方法与流程 下一篇:一种信号处理方法、装置及存储介质与流程