CN106874124B - 一种基于SQLite快速加载技术的面向对象用电信息采集终端 - Google Patents
一种基于SQLite快速加载技术的面向对象用电信息采集终端 Download PDFInfo
- Publication number
- CN106874124B CN106874124B CN201710201865.8A CN201710201865A CN106874124B CN 106874124 B CN106874124 B CN 106874124B CN 201710201865 A CN201710201865 A CN 201710201865A CN 106874124 B CN106874124 B CN 106874124B
- Authority
- CN
- China
- Prior art keywords
- data
- loading
- acceleration
- acceleration chain
- storage module
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 131
- 230000005611 electricity Effects 0.000 title claims abstract description 33
- 238000005516 engineering process Methods 0.000 title claims abstract description 9
- 230000001133 acceleration Effects 0.000 claims abstract description 175
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 14
- 230000009191 jumping Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000036316 preload Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于SQLite快速加载技术的面向对象用电信息采集终端,包括用电信息数据接口、指令接口、用电信息存储模块、可动态分配内存模块、加速链存储模块,以及相应的内存加载控制模块。本发明通过增设加速链存储模块,并配合相应的内存加载控制方法,在每次出现新的加载顺序组合时,更新所述加速链存储模块中所存储的相应加速链;在加载过程中,通过查询所述加速链存储模块内相应的加速链,来决定加载顺序。由于主站在请求数据时,根据其工作需要,数据的加载顺序存在一定规律。本发明可通过对加速链存储模块进行更新,在主站请求数据的过程中逐渐固化这一顺序规律。进而提高内存所加载的数据的命中率,提高所述用电信息采集终端的数据传输效率。
Description
技术领域
本发明涉及用电信息采集技术,尤其涉及一种能够实现快速加载的用电信息采集终端。
背景技术
SQLite数据库至一种基于关系类型设计的文件数据库。其设计目的主要针对嵌入式开发,提供一种运行空间小、占用资源低且安装配置简单的数据调用存储方式。与现有用电信息采集系统中的数据库不同,SQLite数据库与个人用户开发的应用程序并不工作于同一种客户端与服务器的交互模式。SQLite数据库通过操作引擎,以动态数据库的形式将数据连接到个人应用程序中。因此,数据库文件与用户应用程序之间的数据通信是在编程语言内直接调用API实现的。然而,这种工作方式,在数据库文件较大、数据量存储较多的情况下,数据加载需要消耗大量时间。尤其,由于用电信息采集网络中每个节点都需要采集大量数据,这种数据库读取方式显然并不适用。
为克服上述缺陷,现有的技术要么通过硬件方式,即选择大容量内存,把所有用到的数据都提前加载到内存中,来加快终端运行速度。这样做效率最高,但同时带来高成本。要么通过静态加载,只加载静态的数据到内存。静态加载中,只能加载默认设置的数据,没有设置的数据将永远不会加载。这样的加载效果过于死板,尤其实际用电信息采集现场情况千差万别,不同时期数据需求不尽相同。静态加载技术明显不能满足各种现场的运行环境。
针对以上两方案中硬件成本与加载效率的矛盾,如何在不增加硬件成本的情况下,实现动态的预测(预加载)将要加载的数据显得尤为重要。尤其,考虑到用电信息采集现场数据需求不断变化,如何实现随着使用状况的改变,及时改变加载策略,提高增加预测的准确率,就显得尤为重要。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于SQLite数据库快速加载技术的用电信息采集终端及其对应的用电信息快速加载方法。
首先,为实现上述目的,提出一种基于SQLite数据库的用电信息快速加载方法,包括以下步骤:
第一步,初始化:按照默认加速链的顺序,依次将相应数据加载至可动态分配内存模块;然后跳转至第二步;
其中,所述默认的加速链基于本终端的使用场景而预设,如果是新的使用场景,则默认加速链为供电科院台体使用加速链。
第二步,响应数据加载请求:当接收到数据加载请求后,
首先,判断所请求的数据是否已加载至可动态分配内存模块:若已加载,则从所述可动态分配内存模块输出所请求的数据;否则,查询用电信息存储模块,输出所请求的数据;
然后,记录所述第二步中输出的数据以及上一次输出的数据,形成加速链节点指针;
其中,所述加速链节点指针的起点为所述上一次输出的数据,指向所述第二步中输出的数据。
第三步,更新加速链:查询加速链存储模块,判断是否存在与所述第二步中相同的加速链节点指针,若存在,则将所述加速链节点指针所对应的加载次数加1;否则,存储所述第二步中的加速链节点指针,并将所述加速链节点指针所对应是加载次数设为1;然后跳转至第四步。
第四步,加载新数据:查询所述加速链存储模块,查找以所述第二步中输出的数据为起点,加载次数最多的加速链节点指针,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块;
当接收到新的数据加载请求时,跳转至第二步;否则,结束。
进一步,所述方法第二步中,输出所请求的数据之后,还包括判断并响应重复加载请求的步骤:
若下一加载请求与本次加载请求相同,则保留将本次输出的数据保存至所述可动态分配内存模块中;否则,删除所述可动态分配内存模块中本次输出的数据。本领域技术人员应当理解,如果由于可动态分配内存空间不够,无法存储所述数据,可动态分配内存内本身不存在相应数据,也就不存在删除相应数据的问题。
进一步,所述方法的第三步中,还包括控制加速链节点分支数的步骤:
步骤301,在存储所述第二步中的加速链节点指针之前,先查询与所述第二步中的加速链节点指针具有相同起点的加速链节点指针的数量,若所述加速链中具有相同起点的加速链节点指针的数量超过加速链节点分支数N,则跳转至步骤302;否则直接存储所述第二步中的加速链节点指针;
步骤302,删除与所述第二步中的加速链节点指针具有相同起点的、更新时间最远的加速链节点指针,然后存储所述第二步中的加速链节点指针;
其中,加速链节点分支数N为正整数,N的具体数值根据预置于系统中加速链存储模块的空间确定。
进一步,所述方法的第四步中,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块之前,还包括如下步骤:
步骤401,判断所述加速链节点指针所指向的数据是否能够加载至所述可动态分配内存模块,若能,则加载所述加速链节点指针所指向的数据,否则跳转至步骤202;其中,判断数据是否能够加载至所述可动态分配内存模块的主要依据为所述可动态分配内存模块内的存储空间是否足够存储所述数据。
步骤402,查找以所述无法加载的数据为起点、加载次数最多的加速链节点指针,然后跳转至步骤401。本步骤中,如果遍历所述加速链中的全部节点指针,但始终无法加载相应数据,则放弃本次加载。
进一步的,所述方法的第四步中,若加载次数最多的加速链节点指针不止一个,则将其中更新时间最近的加速链节点指针所指向的数据加载至所述可动态分配内存模块。
其次,为实现上述目的,还提出一种基于SQLite数据库快速加载技术的用电信息采集终端,包括:
用电信息数据接口、用电信息存储模块、可动态分配内存模块、控制模块,其特征在于,还包括加速链存储模块;
所述用电信息数据接口与所述用电信息存储模块的输入端连接,所述用电信息存储模块的输出端连接所述可动态分配内存模块的输入端,所述控制模块双向连接所述可动态分配内存模块、所述用电信息存储模块以及所述加速链存储模块;
所述用电信息数据接口用于接所述用电信息采集终端所获得的用电信息;
所述用电信息存储模块用于存储所述用电信息数据接口获得的用电信息;
所述可动态分配内存模块用于根据所述控制模块的指令加载或输出相应的用电信息;
所述控制模块用于读取所述用电信息存储模块或所述可动态分配内存模块的信息,根据相邻两次读取的数据判断是否需要更新所述加速链存储模块中存储的加速链,根据所述加速链存储模块中的加速链信息确定所述可动态分配内存模块下一次加载的数据;
所述加速链存储模块用于存储所述控制模块在读取数据的过程中发现的加速链信息。
所述电信息采集终端(系统)在可动态分配内存模块没有预先加载相应用电信息数据时,会从电信息存储模块加载相应数据至系统内存,然后进行相应处理。但是由于数据加载过程需要消耗大量时间,因此,这种直接加载的方式不利于提高系统的运行效率。本发明主要是通过所述可动态分配内存模块,按照所述加速链存储模块中归纳的加载顺序,将相应数据预先加载入内存,在系统需要相应数据时可以直接读取内存,以此缩短数据加载的时间,提高系统的运行效率。
进一步的,上述电信息采集终端中,所述加速链存储模块中存储的加速链信息包括:所述加速链中每一个加速链节点指针的起点信息、每一个加速链节点指针的指向信息、每一个加速链节点指针的加载次数以及每一个加速链节点指针的更新时间。所述各加速链节点指针按照所述起点信息分类存储。
进一步的,上述电信息采集终端中,所述控制模块包括两个比较器:第一比较器用于在确定所述可动态分配内存模块下一次加载的数据时,比较起点信息相同的各加速链节点指针的加载次数;
第二比较器用于在确定所述可动态分配内存模块下一次加载的数据时,比较起点信息相同、加载次数相同的各加速链节点指针的更新时间。
进一步的,上述电信息采集终端中,所述加速链存储模块为随机存储模块(RAM)或高速缓存模块(Cache)。
进一步的,上述电信息采集终端中,所述用电信息数据接口根据DL_T698.45协议将用电信息进行分类,每一类用电信息对应一块存储空间,所述电信息采终端根据所述用电信息的分类将其存储至所述用电信息存储模块的相应位置。
有益效果
本发明增设加速链存储模块,在响应数据加载请求的过程中,将新出现的加速链(不同数据之间的加载顺序规律)存储至加速链存储模块中。然后,在每次加载前查询所述加速链存储模块,根据之前一次输出的数据查找对应加速链的加载次数和更新时间,确认应当加载的数据。由于主站在召测终端数据时通常存在一定规律,本发明可以通过在使用过程中逐渐固话这一规律,确认出不同数据之间的加载顺序,根据这一规律安排下一次加载,提高内存加载数据的“命中率”,从而节约因没有加载相应数据而造成的不必要的系统开销和延时,提高加载效率。
由于本发明中的加速链在每次接收加载请求后都会进行相应的更新,因此,终端在工作过一段时间后,会逐渐针对其主站的数据召测规律,形成一条较为明确的加载顺序规律。这一规律完全是在使用过程中根据主站的需求而总结出来的,因而,其“命中率”相对于其他快速加载技术而言会更高。由于所述加速链一直保持动态更新,因而,当主站发生变化,或者数据需求发生变化后,对应的用电信息采集终端仍然能够在使用过程中迅速的重新确定新的加载顺序规律,并及时按照新的规律安排加载。
本发明中,加速链本身所需的存储空间并不多,在保证加载效率的同时并不会过多的消耗系统资源。而且,针对不同终端,本发明可以根据需求,对加速链内的数据进行容量控制,及时删除价值不大的加速链信息,进一步缩减系统开销。
进一步的,本发明所述加速链甚至不需要增加额外的硬件。仅仅辟出一部分存储空间,并对用电信息采集装置的控制模块进行相应更新即可实现。因此,本发明广泛地适用于各种用电信息采集终端,且更新成本较低,易于实现。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明实施例的用电信息采集终端的结构示意图;
图2为根据本发明实施例的用电信息快速加载方法流程图;
图3为根据本发明实施例的用电信息分类示意图;
图4为根据本发明实施例的数据字典架构图;
图5为根据本发明实施例的默认加速链。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为用电信息采集终端的结构示意图,其各模块之间,工作流程如图2。
具体的,所述用电信息采集终端包括用电信息数据接口、用电信息存储模块、可动态分配内存模块、控制模块和加速链存储模块。
所述用电信息数据接口与所述用电信息存储模块的输入端连接,所述用电信息存储模块的输出端连接所述可动态分配内存模块的输入端,所述控制模块双向连接所述可动态分配内存模块、所述用电信息存储模块以及所述加速链存储模块;
所述用电信息数据接口用于接所述用电信息采集终端所获得的用电信息;
所述用电信息存储模块用于存储所述用电信息数据接口获得的用电信息;
所述可动态分配内存模块用于根据所述控制模块的指令加载或输出相应的用电信息;
所述控制模块用于读取所述用电信息存储模块或所述可动态分配内存模块的信息,根据相邻两次读取的数据判断是否需要更新所述加速链存储模块中存储的加速链,根据所述加速链存储模块中的加速链信息确定所述可动态分配内存模块下一次加载的数据;
所述加速链存储模块用于存储所述控制模块在读取数据的过程中发现的加速链信息。
所述电信息采集终端(系统)在可动态分配内存模块没有预先加载相应用电信息数据时,会从电信息存储模块加载相应数据至系统内存,然后进行相应处理。但是由于数据加载过程需要消耗大量时间,因此,这种直接加载的方式不利于提高系统的运行效率。本发明主要是通过所述可动态分配内存模块,按照所述加速链存储模块中归纳的加载顺序,将相应数据预先加载入内存,在系统需要相应数据时可以直接读取内存,以此缩短数据加载的时间,提高系统的运行效率。
进一步地,上述电信息采集终端中,所述加速链存储模块中存储的加速链信息包括:所述加速链中每一个加速链节点指针的起点信息、每一个加速链节点指针的指向信息、每一个加速链节点指针的加载次数以及每一个加速链节点指针的更新时间。所述各加速链节点指针按照所述起点信息分类存储。
进一步的,上述电信息采集终端中,所述控制模块包括两个比较器:第一比较器用于在确定所述可动态分配内存模块下一次加载的数据时,比较起点信息相同的各加速链节点指针的加载次数;
第二比较器用于在确定所述可动态分配内存模块下一次加载的数据时,比较起点信息相同、加载次数相同的各加速链节点指针的更新时间。
进一步的,上述电信息采集终端中,所述加速链存储模块为随机存储模块(RAM)或高速缓存模块(Cache)。
进一步的,上述电信息采集终端中,所述用电信息数据接口根据DL_T698.45协议将用电信息进行分类,每一类用电信息对应一块存储空间,所述电信息采终端根据所述用电信息的分类将其存储至所述用电信息存储模块的相应位置。
所述终端内各模块之间按照如下方法协同工作:
第一步,初始化:所述控制模块按照默认加速链的顺序,依次将相应数据加载至可动态分配内存模块;然后跳转至第二步;
其中,所述默认的加速链基于本终端的使用场景而预设,如果是新的使用场景,则默认加速链为供电科院台体使用加速链。所述供电科院台体使用加速链在初始设置时即存储于用电信息采集终端的加速链存储模块中。
第二步,响应数据加载请求:当控制模块接收到数据加载请求后,首先,判断所请求的数据是否已加载至可动态分配内存模块:若已加载,则从所述可动态分配内存模块输出所请求的数据;否则,查询用电信息存储模块,输出所请求的数据;
然后,记录所述第二步中输出的数据以及上一次输出的数据,形成加速链节点指针;同时,判断并响应重复加载请求:若下一加载请求与本次加载请求相同,则保留将本次输出的数据保存至所述可动态分配内存模块中;否则,删除所述可动态分配内存模块中本次输出的数据;
其中,所述加速链节点指针的起点为所述上一次输出的数据,指向所述第二步中输出的数据。
第三步,更新加速链:所述控制模块查询加速链存储模块,判断是否存在与所述第二步中相同的加速链节点指针,若存在,则将所述加速链节点指针所对应的加载次数加1;否则,跳转至步骤301至303:
步骤301,在存储所述第二步中的加速链节点指针之前,先查询与所述第二步中的加速链节点指针具有相同起点的加速链节点指针的数量,若所述加速链中具有相同起点的加速链节点指针的数量超过加速链节点分支数N,则跳转至步骤302;否则直接存储所述第二步中的加速链节点指针;
步骤302,删除与所述第二步中的加速链节点指针具有相同起点的、更新时间最远的加速链节点指针,然后存储所述第二步中的加速链节点指针;其中,加速链节点分支数N=5,即每个节点可存储5条分支;所述更新时间的先后顺序可直接由存储加速链的堆栈结构直接判定,或者,也可在存储加速链节点指针时增加一维时间数据,根据该时间数据进行判定;
步骤303存储所述第二步中的加速链节点指针,并将所述加速链节点指针所对应是加载次数设为1;然后跳转至第四步。
第四步,加载新数据:所述控制模块查询所述加速链存储模块,查找以所述第二步中输出的数据为起点,加载次数最多的加速链节点指针,然后按照步骤401至步骤402的顺序将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块:
步骤401,判断所述加速链节点指针所指向的数据是否能够加载至所述可动态分配内存模块,若能,则加载所述加速链节点指针所指向的数据,否则跳转至步骤202;
步骤402,查找以所述无法加载的数据为起点、加载次数最多的加速链节点指针,然后跳转至步骤401;若遍历所述加速链中的全部节点指针,但始终无法加载相应数据,则放弃本次加载;若加载次数最多的加速链节点指针不止一个,则将其中更新时间最近的加速链节点指针所指向的数据加载至所述可动态分配内存模块;
当接收到新的数据加载请求时,跳转至第二步;否则,结束。
具体在面向对象规约的用电信息采集现场,根据面向对象规约(用采行业的新规范),将业务进行如图3所示的抽象分类及划分。终端在设计之初,就按照DL_T698.45协议的精神,对业务逻辑也进行了相应的分类,形成了如图4的一份份表格(数据字典)。
由于嵌入式终端内存有限,不可能将所有参数全部缓存到内存中,进而在使用中进行读取加速。根据用采行业多年经验,主站在召测终端参数或数据时,一般是有一定的规律的,体现在设置完参数A后,会设置参数B,设置完B后,一般会设置参数C,上面都设置完后,一般间隔一定的时间后,会召测数据D……然而,这些所谓的规律在各个省市或地方供电局(国家电网公司)运行环境下会根据各方实际运行的需要,配置相应参数。个地方系统在使用过程中仅仅招取其关心的相应数据,综合来看,个地方之间没有所谓的关联规律(但某一地用电信息采集系统又有一定的数据采集规律)。为了解决如上的矛盾,本发明通过对加速链存储模块进行更新,逐渐固话这一规律,并根据这一规律进行相应数据的预先加载,进而节省终端在进行相应数据处理之前的加载阶段而浪费的时间。
运行时,终端在配置文件中加载初始的加速链(如图5所示),依据该加速链内容,结合自身加载上限,首先加载A,B,C,D四种类型的数据(18K,继续加载E就超限20K了)。
理想状况下,终端按照该默认的加速链的顺序加载相应数据并进行数据处理:加载完A,将A从内存中卸载,并根据内存当前情况,继续按照加速路径加载E,由于E过大,无法加载,所以加载F,依次类推。因为加速区容量的限制,有些过大的数据可能始终无法加载。但这种情况只适合于特定实验送检环境,现场很难遇到。
正常的工作状况下,若下一个数据是F,由于没有内存加载,终端的读取速度势必会慢,但是会形成加载路径链,即A->F,这样,根据之前的默认链A->B->C,形成了一条新链A->F,根据这样的思路,以后再碰到处理A完成后,就会查询存储该加速链信息的加速链存储模块。根据查询到的加速链节点指针的加载次数和更新时间判断是按照B->C加载,还是加载F。根据原则,再加载次数相同的情况下,以最新的路径链为优先。
这样,若下次预加载的时候,出现要加载B下面是哪个的时候,会判断B->F的次数大于B->C的次数(若次数一样,则取更新的)。
为了简化设计及资源占用考虑,从任意一个节点分支最多只保留5条。这样,终端在使用完一个数据后,会根据这个节点的后所有的加载节点做一个选择(选择策略参见上述方法部分),选择了加载路径后,会根据内存当前剩余情况,逐一的加载该路径下后面的节点到内存,具体加载多少个节点信息完全由剩余内存量决定。
也就是说,如果剩余内存足够大,则终端会依据路径,将所有的节点信息都可以加载到内存中,所以,在主站获取数据的时候,命中率是100%。当内存减小至所有节点所需一半的时候,如果使用静态加载,理论上平均命中率最多只能够达到50%(因为还有不确定的情况,例如主站只获取数据D,而数据D确不在内存中)。本实施例可以在减小内存的同时,通过主站以往的获取行为,来预测下一个加载的对象,将其加载到内存中。以此提高内存预先加载的命中率,也就提高了设备响应时间了。
当终端读取了可动态分配内存模块中的相应数据后,会根据下一个数据请求,判断是否删除已读取的数据。如果一次读取后便不再需要相应数据,那么,终端就从可动态分配内存模块中删除该数据,并查询加速链存储模块,寻找下一个可能需要加载的数据,将其预先加载至可动态分配内存模块中。
随着终端长时间的运行,这条加载链会越来越固定及清晰。例如,挂载某地市10台终端的加载链经分析,都是内在某种规律的,则,经过数据整理后,可以形成该地市的默认加载链,这样,极大的提升了终端现场运行的速度和效率。
本发明技术方案的优点主要体现在:增设加速链存储模块,并配合相应的内存加载控制方法,将加载过程中新出现的加速链(不同数据之间的加载顺序规律)存储至所述加速链存储模块中。在每次加载前查询所述加速链,根据之前一次输出的数据查找对应加速链的加载次数和更新时间,判断应当加载的数据。这样,在使用过程中逐渐总结出不同数据之间的加载顺序规律,并按照这一规律安排下一次加载,可以提高内存加载数据的“命中率”,节约因没有加载相应数据而造成的不必要的系统开销和延时,提高加载效率。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于SQLite数据库的用电信息快速加载方法,其特征在于,步骤包括:
第一步,初始化加速链:在加速链中存储每一个加速链节点指针的起点信息、每一个加速链节点指针的指向信息、每一个加速链节点指针的加载次数以及每一个加速链节点指针的更新时间,按照默认加速链的顺序,依次将相应数据加载至可动态分配内存模块;然后跳转至第二步;
第二步,响应数据加载请求:当接收到数据加载请求后,
首先,判断所请求的数据是否已加载至可动态分配内存模块:若已加载,则从所述可动态分配内存模块输出所请求的数据;否则,查询用电信息存储模块,输出所请求的数据;
然后,记录所述第二步中输出的数据以及上一次输出的数据,形成加速链节点指针;
其中,所述加速链节点指针的起点为所述上一次输出的数据,指向所述第二步中输出的数据;
第三步,更新加速链:查询加速链存储模块,判断是否存在与所述第二步中相同的加速链节点指针,若存在,则将所述加速链节点指针所对应的加载次数加1;否则,跳转至步骤301至303;然后跳转至第四步;
步骤301,在存储所述第二步中的加速链节点指针之前,先查询与所述第二步中的加速链节点指针具有相同起点的加速链节点指针的数量,若所述加速链中具有相同起点的加速链节点指针的数量超过加速链节点分支数N,则跳转至步骤302;否则直接存储所述第二步中的加速链节点指针;
步骤302,删除与所述第二步中的加速链节点指针具有相同起点的、更新时间最远的加速链节点指针,然后存储所述第二步中的加速链节点指针;其中,加速链节点分支数N=5,即每个节点可存储5条分支;所述更新时间的先后顺序可直接由存储加速链的堆栈结构直接判定,或者,也可在存储加速链节点指针时增加一维时间数据,根据该时间数据进行判定;
步骤303存储所述第二步中的加速链节点指针,并将所述加速链节点指针所对应是加载次数设为1;
第四步,加载新数据:查询所述加速链存储模块,查找以所述第二步中输出的数据为起点,加载次数最多的加速链节点指针,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块;
当接收到新的数据加载请求时,跳转至第二步;否则,结束。
2.如权利要求1所述的基于SQLite数据库的用电信息快速加载方法,其特征在于,所述第二步中,输出所请求的数据之后,还包括判断并响应重复加载请求的步骤:若下一加载请求与本次加载请求相同,则保留将本次输出的数据保存至所述可动态分配内存模块中;否则,删除所述可动态分配内存模块中本次输出的数据。
3.如权利要求1所述的基于SQLite数据库的用电信息快速加载方法,其特征在于,所述第四步中,将所述加速链节点指针所指向的数据加载至所述可动态分配内存模块之前,还包括如下步骤:步骤401,判断所述加速链节点指针所指向的数据是否能够加载至所述可动态分配内存模块,若能,则加载所述加速链节点指针所指向的数据,否则跳转至步骤402;
步骤402,查找以无法加载的数据为起点、加载次数最多的加速链节点指针,然后跳转至步骤401。
4.如权利要求1所述的基于SQLite数据库的用电信息快速加载方法,其特征在于,所述第四步中,若加载次数最多的加速链节点指针不止一个,则将其中更新时间最近的加速链节点指针所指向的数据加载至所述可动态分配内存模块。
5.一种基于权利要求1所述方法的SQLite数据库快速加载技术的用电信息采集终端,包括用电信息数据接口、用电信息存储模块、可动态分配内存模块、控制模块,其特征在于,还包括加速链存储模块;
所述用电信息数据接口与所述用电信息存储模块的输入端连接,所述用电信息存储模块的输出端连接所述可动态分配内存模块的输入端,所述控制模块双向连接所述可动态分配内存模块、所述用电信息存储模块以及所述加速链存储模块;
所述用电信息数据接口用于接所述用电信息采集终端所获得的用电信息;
所述用电信息存储模块用于存储所述用电信息数据接口获得的用电信息;
所述可动态分配内存模块用于根据所述控制模块的指令加载或输出相应的用电信息;
所述控制模块用于读取所述用电信息存储模块或所述可动态分配内存模块的信息,根据相邻两次读取的数据判断是否需要更新所述加速链存储模块中存储的加速链,根据所述加速链存储模块中的加速链信息确定所述可动态分配内存模块下一次加载的数据;
所述加速链存储模块用于存储所述控制模块在读取数据的过程中发现的加速链信息。
6.如权利要求5所述的SQLite数据库快速加载技术的用电信息采集终端,其特征在于,所述加速链存储模块中存储的加速链节点指针按照所述起点信息分类存储。
7.如权利要求6所述的SQLite数据库快速加载技术的用电信息采集终端,其特征在于,所述加速链存储模块为随机存储模块或高速缓存模块。
8.如权利要求7所述的SQLite数据库快速加载技术的用电信息采集终端,其特征在于,所述用电信息数据接口根据DL_T698.45协议将用电信息进行分类,并根据所述用电信息的分类将其存储至所述用电信息存储模块的相应位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710201865.8A CN106874124B (zh) | 2017-03-30 | 2017-03-30 | 一种基于SQLite快速加载技术的面向对象用电信息采集终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710201865.8A CN106874124B (zh) | 2017-03-30 | 2017-03-30 | 一种基于SQLite快速加载技术的面向对象用电信息采集终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874124A CN106874124A (zh) | 2017-06-20 |
CN106874124B true CN106874124B (zh) | 2023-04-14 |
Family
ID=59159592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710201865.8A Active CN106874124B (zh) | 2017-03-30 | 2017-03-30 | 一种基于SQLite快速加载技术的面向对象用电信息采集终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874124B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623588A (zh) * | 2017-08-09 | 2018-01-23 | 国网浙江省电力公司 | 一种基于用电信息采集系统的漏电流检测方法 |
CN107957904B (zh) * | 2017-11-21 | 2020-08-11 | 积成电子股份有限公司 | 基于面向对象的交换协议的用电信息采集任务管理方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001145169A (ja) * | 1999-11-15 | 2001-05-25 | Denso Corp | データ収集システム,データ発生装置及びデータ収集端末並びにデータ収集方法 |
CN101976251A (zh) * | 2010-10-26 | 2011-02-16 | 国电南瑞科技股份有限公司 | 用电信息采集终端嵌入式数据库管理模型的实现方法 |
WO2011063593A2 (zh) * | 2010-08-27 | 2011-06-03 | 北京华鑫志和科技有限公司 | 一种多网融合的智能电网系统 |
WO2013060064A1 (zh) * | 2011-10-25 | 2013-05-02 | 中国电力科学研究院 | 一种用电信息采集终端及远程维护系统 |
CN103294413A (zh) * | 2013-05-08 | 2013-09-11 | 山东地纬计算机软件有限公司 | 支持海量采集终端的分布式内存实时存储装置及方法 |
US8725995B1 (en) * | 2013-11-04 | 2014-05-13 | Symantec Corporation | Systems and methods for updating system-level services within read-only system images |
CN104484456A (zh) * | 2014-12-29 | 2015-04-01 | 哈尔滨工业大学 | 一种基于多线程并行的SQLite数据库快速加载方法 |
CN104639654A (zh) * | 2015-03-05 | 2015-05-20 | 国家电网公司 | 海量用电信息采集终端一体化接入系统及方法 |
CN105426411A (zh) * | 2015-10-31 | 2016-03-23 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
CN106021445A (zh) * | 2016-05-16 | 2016-10-12 | 努比亚技术有限公司 | 一种加载缓存数据的方法及装置 |
CN106453642A (zh) * | 2016-11-28 | 2017-02-22 | 国网四川省电力公司眉山供电公司 | 基于Linux动态链接库实现用电信息采集终端快速升级的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100498740C (zh) * | 2007-09-11 | 2009-06-10 | 腾讯科技(深圳)有限公司 | 一种数据缓存处理方法、系统及数据缓存装置 |
-
2017
- 2017-03-30 CN CN201710201865.8A patent/CN106874124B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001145169A (ja) * | 1999-11-15 | 2001-05-25 | Denso Corp | データ収集システム,データ発生装置及びデータ収集端末並びにデータ収集方法 |
WO2011063593A2 (zh) * | 2010-08-27 | 2011-06-03 | 北京华鑫志和科技有限公司 | 一种多网融合的智能电网系统 |
CN101976251A (zh) * | 2010-10-26 | 2011-02-16 | 国电南瑞科技股份有限公司 | 用电信息采集终端嵌入式数据库管理模型的实现方法 |
WO2013060064A1 (zh) * | 2011-10-25 | 2013-05-02 | 中国电力科学研究院 | 一种用电信息采集终端及远程维护系统 |
CN103294413A (zh) * | 2013-05-08 | 2013-09-11 | 山东地纬计算机软件有限公司 | 支持海量采集终端的分布式内存实时存储装置及方法 |
US8725995B1 (en) * | 2013-11-04 | 2014-05-13 | Symantec Corporation | Systems and methods for updating system-level services within read-only system images |
CN104484456A (zh) * | 2014-12-29 | 2015-04-01 | 哈尔滨工业大学 | 一种基于多线程并行的SQLite数据库快速加载方法 |
CN104639654A (zh) * | 2015-03-05 | 2015-05-20 | 国家电网公司 | 海量用电信息采集终端一体化接入系统及方法 |
CN105426411A (zh) * | 2015-10-31 | 2016-03-23 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
CN106021445A (zh) * | 2016-05-16 | 2016-10-12 | 努比亚技术有限公司 | 一种加载缓存数据的方法及装置 |
CN106453642A (zh) * | 2016-11-28 | 2017-02-22 | 国网四川省电力公司眉山供电公司 | 基于Linux动态链接库实现用电信息采集终端快速升级的方法 |
Non-Patent Citations (4)
Title |
---|
SQLite 数据库在电力抄表集中器中的应用;吴辉 等;《系统开发与应用》;20131231;第11卷(第11期);第82-87页 * |
Tolerating Memory Latency through Push Prefetching for Pointer-Intensive Applications;Chia-Lin Yang 等;《ACM Transactions on Architecture and Code Optimization (TACO)》;20041231;第1卷(第4期);第445-475页 * |
基于双数据库结合技术的用电信息采集终端;金荣江 等;《电力系统自动化》;20100510;第34卷(第9期);第109-122页 * |
缓存技术在甘肃用电信息采集系统中的应用;李红文等;《电工文摘》;20110220(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106874124A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10177970B2 (en) | Method and apparatus for controlling database connection | |
CN103607312B (zh) | 用于服务器系统的数据请求处理方法及系统 | |
CN102263822B (zh) | 一种分布式缓存的控制方法、系统及装置 | |
CN107656807B (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
US20060277178A1 (en) | Table look-up method with adaptive hashing | |
CN107943718A (zh) | 一种清理缓存文件的方法和装置 | |
CN106874124B (zh) | 一种基于SQLite快速加载技术的面向对象用电信息采集终端 | |
CN112068934B (zh) | 一种容器云服务实例收缩的控制系统和方法 | |
CN115617762A (zh) | 文件存储方法及设备 | |
CN110134738A (zh) | 分布式存储系统资源预估方法、装置 | |
CN115964002B (zh) | 一种电能表终端档案管理方法、装置、设备及介质 | |
CN115237885A (zh) | 数据存储系统的参数调整方法及装置 | |
CN117472967B (zh) | 一种基于数据使用热度的数据生命周期管理方法及系统 | |
CN105740077B (zh) | 一种适用于云计算的任务分配方法 | |
CN116860461A (zh) | K8s集群的资源调度方法、设备及存储介质 | |
CN114745275A (zh) | 云服务环境中的节点更新方法、装置和计算机设备 | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
CN105786723A (zh) | 基于链表的应用缓存管理方法及装置 | |
CN112434885A (zh) | 节能小区的业务预测方法和装置 | |
CN113258679B (zh) | 基于服务器实例缩容的电网监控系统通道分配方法 | |
CN112925472A (zh) | 请求处理方法、装置、电子设备及计算机存储介质 | |
KR20200080164A (ko) | 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법 | |
CN113282405B (zh) | 一种负载调整的优化方法及终端 | |
CN104331439A (zh) | 基于hdfs的迭代式回溯算法的负载均衡与计算本地化方法 | |
CN109656926A (zh) | 数据库的管理方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231220 Address after: No. 128, Jiangjun Avenue, Jiangning District, Nanjing, Jiangsu 210000 Patentee after: JIANGSU SUYUAN GUANGYI SCIENCE & TECHNOLOGY Co.,Ltd. Address before: No.86 runqi Road, Jiangning District, Nanjing City, Jiangsu Province 211103 Patentee before: ELEFIRST SCIENCE & TECH Co.,Ltd. |