电力系统实时库动态扩充增量的方法、配置工具和系统与流程

文档序号:22545285发布日期:2020-10-17 02:13阅读:192来源:国知局

本发明涉及一种电力系统实时库动态扩充增量的方法、配置工具和系统,属于电力系统监控技术领域。



背景技术:

电力调度系统实时库作为电力系统的重要平台组成,不仅与电力生产、经营和服务相关,而且与电网调度和控制系统的安全运行紧密关联,是电力系统安全的重要组成部分。当前电网调度自动化系统的实时数据库大多数采用单数据库结构,即一个实时数据库管理系统管理一个实时库,多个实时数据库需要多个实时数据库管理系统。

面向运行的scada/ems/dts系统不仅仅从用户界面上考虑系统的易用性、集成性,而是从整个系统的结构上、功能上考虑面向用户实际运行需要的易用性、集成性,全面保障系统的内部质量、外部质量和使用质量。现有技术由于实时库内存空间初始化时被固定大小,导致系统运行较长时间后,当批量导入新测点对象时,实时库内存没有足够的空间存储,目前普遍的做法是修改容量表后重启实时库,这种做法对于电力调度系统的稳定性与安全性都是较大冲击,甚至带来停电事故的风险。



技术实现要素:

本发明要解决的技术问题是:现有技术由于实时库内存空间初始化时被固定大小,导致系统运行较长时间后,当批量导入新测点对象时,实时库内存没有足够的空间存储,本发明提供了电力系统实时库动态扩充增量的方法、配置工具和系统。

为实现上述技术目的,本发明采用如下技术方案。

一方面,本发明提供了电力系统实时库动态扩充增量的方法包括以下步骤:实时库根据预先确定的待修改对象点对应的增量信息执行增量操作,所述增量信息内容包括对象标识id、对象类型表标识id以及增量类型;

所述增量操作包括:若所述增量类型为新增,实时库判断该待修改对象对应的对象类型表内存表是否已满,若已满则确定该对象类型表中已有的最大记录数,之后新增内存页并存入该待修改对象,将该对象类型表内存页的最大容量信息更新为该对象类型表中已有的最大记录数;否则直接存入该待修改对象;

实时库重启加载对象数据时根据各对象类型表内存页当前的最大容量信息为各对象类型表分配内存。

实时库响应于接收到的执行增量操作请求执行增量操作;所述执行增量操作请求包括待修改对象点对应的增量信息,还包括提交号,所述提交号为根据存储增量操作相关信息的提交信息表中的记录顺序生成,实时库根据提交号对增量操作版本进行管理以及将接收到的提交号与增量历史表中的提交号进行比对确定是否从增量历史表中加载增量信息,所述增量历史表为存储所有待修改对象的增量信息以及提交号。

第二方面,本发明提供了电力系统实时库动态扩充增量的配置工具,所述配置工具,用于输入待修改对象点对应的增量信息以及增量提交命令,所述增量信息内容包括对象标识id、对象类型表标识id以及增量类型;

所述配置工具,还用于根据待修改对象点对应的增量信息、增量提交命令生成执行增量操作请求,并将执行增量操作请求发送至实时库以使得实时库根据所述执行增量操作请求执行增量操作,所述增量操作包括:若所述增量类型为新增,实时库判断该待修改对象对应的对象类型表内存表是否已满,若已满则确定该对象类型表中已有的最大记录数,之后新增内存页并存入该待修改对象,将该对象类型表内存页的最大容量信息更新为该对象类型表中已有的最大记录数以使得实时库重启加载对象数据时根据各对象类型表内存页当前的最大容量信息为各对象类型表分配内存;否则直接存入该待修改对象。

第三方面,本发明提供了电力系统实时库动态扩充增量的系统,包括配置工具和增量操作执行模块;

所述配置工具,用于输入待修改对象点对应的增量信息以及增量提交命令,所述增量信息内容包括对象标识id、对象类型表标识id以及增量类型;

所述配置工具,用于根据待修改对象点对应的增量信息、增量提交命令生成执行增量操作请求,并将执行增量操作请求发送至实时库以使得增量操作执行模块根据所述执行增量操作请求执行增量操作;

所述增量操作执行模块包括增量增加模块,所述增量增加模块用于根据配置工具确定的待修改对象点对应的增量信息执行增量新增操作;

所述增量操作包括:若所述增量类型为新增,实时库判断该待修改对象对应的对象类型表内存表是否已满,若已满则确定该对象类型表中已有的最大记录数,之后新增内存页并存入该待修改对象,将该对象类型表内存页的最大容量信息更新为该对象类型表中已有的最大记录数;否则直接存入该待修改对象;实时库重启加载对象数据时根据各对象类型表内存页当前的最大容量信息为各对象类型表分配内存。

有益技术效果:

本发明实时库中每个对象表由多个分页对象组成,初始化默认一个对象表一个分页,当扩充后,对象表相应增加一个分页。实时库最大分页数可配置,实时库最小分配空间可配,动态扩充后,实时库空间自动增加。既解决了电力系统建设初期不必分配较大的内存空间,又解决了后期动态扩充,用多少分配多少。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

实施例一、电力系统实时库动态扩充增量的方法,包括以下步骤:实时库根据预先确定的待修改对象点对应的增量信息执行增量操作,所述增量信息内容包括对象标识id、对象类型表标识id以及增量类型;

所述增量操作包括:若所述增量类型为新增,实时库判断该待修改对象对应的对象类型表内存表是否已满,若已满则确定该对象类型表中已有的最大记录数,之后新增内存页并存入该待修改对象,将该对象类型表内存页的最大容量信息更新为该对象类型表中已有的最大记录数(可选地把本次增量涉及到的对象表的最大记录数写到配置库中的容量表中),作为下次实时库重启加载商用库时分配内存的依据;否则直接存入该待修改对象;

实时库重启加载对象数据时根据各对象类型表内存页当前的最大容量信息为各对象类型表分配内存。

在本实施例中,实时库实现增量新增操作时具体包括:

如果增量类型是新增,判断该点对应的内存表是否已满。如果内存表有剩余空间,获取该记录的内存分页号、该分页号下的偏移地址。在哈希索引表中插入该记录信息(对象点id、内存分页号、偏移地址)。

如果内存表中没有剩余空间,先计算该对象类型表中已有的最大记录数,把该数目作为新增内存页的最大容量。把该对象类型表的最大分页对象的下一页指向新增的内存页。初始化该新增的内存页,重新给以下变量赋值:对象类型、容量、下一页、对象id数组、域值矩阵、属性个数等。同理在哈希索引表中插入该记录信息。最后在配置库中读取该点的所有属性值,并写入实时库中。

在本实施例中,所述哈希索引表包括正常哈希节点和冲突哈希节点。每个节点的键为对象id,值为偏移量。偏移量包括实时库分页号和该分页中的偏移值。实时库中每个对象表由多个分页对象组成,初始化默认一个对象表一个分页,当扩充后,对象表相应增加一个分页。实时库最大分页数可配置,但每一页最大记录数为1024*1024,实时库最小分配空间可配,动态扩充后,实时库空间自动增加。

在具体实施例中,为了更方便管理各对象类新的配置库容量,实时库将各对象类型表内存页的最大容量信息保存在配置库中的容量表内。配置库中容量表在每次增量提交时更新。当实时库需要以加载商用库方式重启时,读取该容量表分配内存大小。

在本实施例中,可选地所述增量操作还包括:如果增量类型是删除,从哈希索引表中获取该点的内存分页号和该页处的偏移值;把该分页处的偏移地址对应的标识id置零,同时在哈希索引表中删除该记录;如果增量类型是修改,把确定的待修改对象的属性值重新写入实时库中。

实施例二、在实施例一的基础上,本实施例提供了电力系统实时库动态扩充增量的方法,包括:实时库响应于接收到的执行增量操作请求执行增量操作;所述执行增量操作请求包括待修改对象点对应的增量信息还包括提交号,所述提交号为根据存储增量操作相关信息的提交信息表中的记录顺序生成,实时库根据提交号对增量操作版本进行管理以及将接收到的提交号与增量历史表中的提交号进行比对确定是否从增量历史表中加载增量信息,所述增量历史表为存储所有待修改对象的增量信息以及提交号。

实时库中记录接收到的提交号,当实时库需要以映射内存文件方式重启时,读取实时库提交号与配置库中增量历史表中的最大提交号比较,如果实时库中提交号小,则需要读取增量历史表加载增量信息。

实施三、本实施例提供了电力系统实时库动态扩充增量的配置工

具,所述配置工具,用于输入待修改对象点对应的增量信息以及增量提交命令,所述增量信息内容包括对象标识id、对象类型表标识id以及增量类型;

所述配置工具,还用于根据待修改对象点对应的增量信息、增量提交命令生成执行增量操作请求,并将执行增量操作请求发送至实时库以使得实时库根据所述执行增量操作请求执行增量操作,所述增量操作包括:若所述增量类型为新增,实时库判断该待修改对象对应的对象类型表内存表是否已满,若已满则确定该对象类型表中已有的最大记录数,之后新增内存页并存入该待修改对象,将该对象类型表内存页的最大容量信息更新为该对象类型表中已有的最大记录数以使得实时库重启加载对象数据时根据各对象类型表内存页当前的最大容量信息为各对象类型表分配内存;否则直接存入该待修改对象。

实施例四、在实施例三的基础上,本实施例提供的电力系统实时库动态扩充增量的配置工具,还用于根据用于存储增量操作相关信息的提交信息表中的记录顺序生成增量信息的提交号,向实时库发送的所述执行增量操作请求中包括提交号,并将各待修改对象的增量信息以及对应的提交号存入增量历史表中,以使得实时库根据提交号对增量操作版本进行管理以及将根据接收到的提交号与增量历史表中的提交号进行比对确定是否从增量历史表中加载增量信息。

用户通过配置工具修改对象数据点,配置工具将在商用库中的增量日志表里记录变化的点信息。包括:对象点id、对象表id、增量类型。

用户通过配置工具提交执行增量提交命令后,所述配置工具根据待修改对象点对应的增量信息、增量提交命令以及提交号生成执行增量操作请求,并将执行增量操作请求发送至实时库。实时库根据接收到的把当前提交号作为版本号,作为增量版本的管理。

可选地,具体实施例中所述配置工具还用于生成所述执行增量操作请求后将当前提交的待修改对象增量操作相关信息按照提交号存入提交信息表,所述提交信息表用于记录增量操作的执行相关信息,如执行增量操作请求提交时间、提交人、增量对象类型、增量对象标识、增量类型等内容。

实施例三和实施例四种的实时库执行增量操作的方法同以上实施例所述方法,再次不再赘述。

实施例五、在以上实施例的基础上,本实施例提供了电力系统实时库动态扩充增量的系统,包括配置工具和增量操作执行模块(可选地所述增量操作执行模块设置在实时库侧);

所述配置工具,用于输入待修改对象点对应的增量信息以及增量提交命令,所述增量信息内容包括对象标识id、对象类型表标识id以及增量类型;

所述配置工具,用于根据待修改对象点对应的增量信息、增量提交命令生成执行增量操作请求,并将执行增量操作请求发送至实时库以使得增量操作执行模块根据所述执行增量操作请求执行增量操作;

所述增量操作执行模块包括增量增加模块,所述增量增加模块用于根据配置工具确定的待修改对象点对应的增量信息执行增量新增操作;

所述增量操作包括:若所述增量类型为新增,实时库判断该待修改对象对应的对象类型表内存表是否已满,若已满则确定该对象类型表中已有的最大记录数,之后新增内存页并存入该待修改对象,将该对象类型表内存页的最大容量信息更新为该对象类型表中已有的最大记录数;否则直接存入该待修改对象;实时库重启加载对象数据时根据各对象类型表内存页当前的最大容量信息为各对象类型表分配内存。

实施例六、在实施例五的基础上,配置工具,还用于根据用于存储增量操作相关信息的提交信息表中的记录顺序生成增量信息的提交号,向增量操作执行模块(实时库)发送的所述执行增量操作请求中包括提交号,并将各待修改对象的增量信息以及对应的提交号存入增量历史表中,以使得实时库根据提交号对增量操作版本进行管理以及将根据接收到的提交号与增量历史表中的提交号进行比对确定是否从增量历史表中加载增量信息。

可选地所述增量操作执行模块还包括增量删除模块和增量修改模块;所述增量删除模块,用于判断如果增量类型是删除,从哈希索引表中获取该点的内存分页号和该页处的偏移值;把该分页处的偏移地址对应的标识id置零,同时在哈希索引表中删除该记录;所述增量修改模块如果增量类型是修改,把通过配置工具确定的待修改对象的属性值重新写入实时库中。

本实施例的工作原理为:当用户在配置库中做增删改操作时,配置工具将在商用库中的增量日志表里记录变化的点的增量信息,包括对象标识id、对象类型表标识id以及增量类型,可选地增量日志表为临时表。用户执行增量提交后,配置工具根据存储增量操作相关信息的提交信息表中的记录顺序生成增量信息的提交号,配置工具根据待修改对象点对应的增量信息、增量提交命令以及提交号生成执行增量操作请求。实时库读取执行增量操作请求确定增量信息,判断该记录的增量类型。

如果增量类型是新增,判断该点对应的内存表是否已满。如果内存表有剩余空间,获取该记录的内存分页号、该分页号下的偏移地址。在哈希索引表中插入该记录信息(对象点id、内存分页号、偏移地址)。如果内存表中没有剩余空间,先计算该对象类型表中已有的最大记录数,把该数目作为新增内存页的最大容量。把该对象类型表的最大分页对象的下一页指向新增的内存页。初始化该新增的内存页,重新给以下变量赋值:对象类型、容量、下一页、对象id数组、域值矩阵、属性个数等。同理在哈希索引表中插入该记录信息。最后在配置库中读取该点的所有属性值,并写入实时库中。

哈希索引表包括正常哈希节点和冲突哈希节点。每个节点的键为对象id,值为偏移量。偏移量包括实时库分页号和该分页中的偏移值。实时库中每个对象表由多个分页对象组成,初始化默认一个对象表一个分页,当扩充后,对象表相应增加一个分页。实时库最大分页数可配置,但每一页最大记录数为1024*1024,实时库最小分配空间可配,动态扩充后,实时库空间自动增加。

如果增量类型是删除,从哈希索引表中获取该点的内存分页号和该页处的偏移值。把该分页处的偏移地址对应的id置零,同时在哈希索引表中删除该记录。

如果增量类型是修改,把配置库中对应的记录点属性值重新写入实时库中。

把本次增量涉及到的对象表的最大记录数写到配置库中的容量表中,作为下次实时库重启加载商用库时分配内存的依据。把当前提交号写入实时库中,作为增量版本的管理。实时库中记录提交号,当实时库需要以映射内存文件方式重启时,读取实时库提交号与配置库中增量历史表最大提交号比较,如果实时库中提交号小,则需要读取增量历史表加载增量信息。

本发明针对现有技术由于实时库内存空间初始化时被固定大小,导致系统运行较长时间后,当批量导入新测点对象时,实时库内存没有足够的空间存储,目前普遍的做法是修改容量表后重启实时库,这种做法对于电力调度系统的稳定性与安全性都是较大冲击,甚至带来停电事故的风险。只有实现实时库的动态扩充才能从根本上解决增量提交的问题。实时库中每个对象表由多个分页对象组成,初始化默认一个对象表一个分页,当扩充后,对象表相应增加一个分页。实时库最大分页数可配置,实时库最小分配空间可配,动态扩充后,实时库空间自动增加。既解决了电力系统建设初期不必分配较大的内存空间,又解决了后期动态扩充,用多少分配多少。利用这种方法,用户无需再修改参数重启实时库,确保电力调度系统的可靠性、安全性和连续性。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法来描述的。应理解可由计算机程序指令实现本发明。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在说明书提供方法的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现本说明书中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现说明书中指定的功能的步骤。

以上对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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