一种数据管理系统技术方案

技术编号:38896329 阅读:15 留言:0更新日期:2023-09-22 14:17
本发明专利技术提出了一种数据管理系统,所述系统包括输入模块、初始化模块、文件操作模块、读取模块、写入模块、查找模块、清空模块;所述系统用于借助硬盘以文件形式实现对有序数据的存储、读取、查找,代替内存作为程序运行中的数据交互中心;采用的固定文件大小、连续多份文件存储数据,有利于硬盘读写速率的最大化利用,有效规避碎片空间不连续使用。有效规避碎片空间不连续使用。有效规避碎片空间不连续使用。

【技术实现步骤摘要】
一种数据管理系统


[0001]本专利技术涉及计算机
,具体涉及一种数据管理系统。

技术介绍

[0002]在一般软件运行过程中,采用内存作为程序运行时的数据中心。但在采集软件中,常遇到大量频繁的数据输入,对于内存容量要求更大,从而提升了采集软件的应用成本。
[0003]例如,在采集控制软件中,每台下位机通过网线连接交换机,交换机通过网线连接软件所在电脑。每台下位机以100hz的频率,每通道向上发送110字节长的内容。若存在两台下位机,每台下位机共有32个通道,则采集软件每秒接收到110*64*100=704000字节长的内容,约687.5KB,而每110字节长内容,又可以解析出166字节长的采集数据内容。由此可见,在采集软件运行中内存将面大量的数据输入,极大提升了硬件成本。
[0004]为了解决上述问题,当前普遍借助虚拟内存和内存映射技术用硬盘代替部分内存,降低硬件成本。然而由于硬盘的读写性能远低于内存,导致无法完全使用硬盘代替内存。

技术实现思路

[0005]针对上述存在的拘束局限性,本专利技术提出了一种数据管理系统,基于虚拟内存和内存映射技术,完全采用硬盘代替内存,作为程序运行时的数据中心。
[0006]为实现上述目的,本专利技术采用了以下技术方案:一种数据管理系统;所述系统用于借助硬盘以文件形式实现对有序数据的存储、读取、查找,代替内存作为程序运行中的数据交互中心。所述有序数据是指时间上连续的数据流。
[0007]所述系统包括输入模块、初始化模块、文件操作模块、读取模块、写入模块、查找模块、清空模块。
[0008]所述输入模块用于获得输入的本地存储路径;所述初始化模块用于实现系统的初始化操作;所述文件操作模块用于打开、关闭文件;所述读取模块用于从文件中读取数据;所述写入模块用于将数据写入文件内;所述查找模块用于根据目标查找数据;所述清空模块用于清空数据。
[0009]所述系统按照以下方式实现上述数据管理功能:(1)输入模块获得本地存储路径;初始化模块进行系统初始化操作;(2)在进行数据读取、写入时,均需要借由文件操作模块进行文件操作;(3)若进行数据读取,则由读取模块从文件中循环读取文件中的数据;(4)若进行数据写入,则由写入模块将数据循环写入文件;(5)若进行数据查找,则由查找模块查找对应文件,通过二分法查找具体位置,通过顺序查找法符合条件的位置,并返回结果;(5)若需要清空数据,则由清空模块循环清空所有文件,删除文件信息。
[0010]本专利技术与现有技术相对比,本专利技术具有以下优点:(1)基于虚拟内存、内存映射技术,完全采用硬盘代替内存,作为程序运行时的数据中心,解决了采集软件中遇到的容量局限问题,降低了硬件成本;(2)通过定位文件位置和文件中数据位置,精准打开相应硬盘位置,做到资源效果一对一,提升读写效率;(3)支持多线程操作,进一步提升读写查的效率,同时保证运行安全;(4)采用的固定文件大小、连续多份文件存储数据,有利于硬盘读写速率的最大化利用,有效规避碎片空间不连续使用。
[0011]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
[0012]图1为本专利技术实施例提供的一种数据管理系统的结构图。
[0013]图2为本专利技术实施例提供的一种打开文件的步骤图。
[0014]图3为本专利技术实施例提供的一种数据读取操作的步骤图。
[0015]图4为本专利技术实施例提供的一种数据写入操作的步骤图。
具体实施方式
[0016]以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为了进一步了解本专利技术,下面结合最佳实施例对本专利技术作进一步的详细说明。
[0017]本专利技术的专利技术点是提供一种数据管理系统;所述系统用于借助硬盘以文件形式实现对有序数据的存储、读取、查找,代替内存作为程序运行中的数据交互中心。所述有序数据是指时间上连续的数据流。
[0018]参考图1,所述系统包括输入模块、初始化模块、文件操作模块、读取模块、写入模块、查找模块、清空模块。
[0019]所述输入模块用于获得输入的本地存储路径;所述初始化模块用于实现系统的初始化操作;所述文件操作模块用于打开、关闭文件;所述读取模块用于从文件中读取数据;所述写入模块用于将数据写入文件内;所述查找模块用于根据目标查找数据;所述清空模块用于清空数据。
[0020]所述系统按照以下方式实现上述数据管理功能:(1)输入模块获得本地存储路径;初始化模块进行系统初始化操作;(2)在进行数据读取、写入时,均需要借由文件操作模块进行文件操作;(3)若进行数据读取,则由读取模块从文件中循环读取文件中的数据;(4)若进行数据写入,则由写入模块将数据循环写入文件;(5)若进行数据查找,则由查找模块查找对应文件,通过二分法查找具体位置,通
过顺序查找法符合条件的位置,并返回结果;(5)若需要清空数据,则由清空模块循环清空所有文件,删除文件信息。
[0021]进一步地,由写入模块将数据写入文件时,文件大小限制为128MB,即单文件固定大小为128M。
[0022]需要说明的是,单文件固定大小设置为128M,既可以避免因文件过小导致频繁创建,也可以避免文件过大导致空间浪费。同时,单文件固定大小设置为128M时,内存映射效率高,这样一方面有利于硬盘读写速率的最大化利用,一方面能有效规避碎片空间不连续使用。
[0023]还需说明的是,数据的读取、写入、查找的操作可以多线程方式同时进行(即开启三个线程分别进行数据读取、数据写入、数据查找),在多线程下进行读取、写入操作时,因为是对不同文件的不同区域操作和加锁,故能保证不在同一硬盘区域即可不互斥操作,既解决了运行安全问题,又解决了效率问题。
[0024]所述初始化模块用于实现系统的初始化操作,所述初始化操作包括以下步骤:步骤11、创建uuid(通用唯一识别码);步骤12、在所述本地存储路径下创建子文件夹,并将子文件夹路径作为实际数据存储路径;所述子文件夹的名称为步骤11创建的uuid;步骤13、初始化读写锁;步骤14、数组总数置为0。
[0025]需要说明的是,数据总数为所述系统的基本参数,数据总数采用系统级原子保存,用以保证多线程的安全;在读取模块、写入模块及查找模块进行相应操作时,获得的是数据总数的副本值,保证系统功能的统一性。
[0026]所述文件操作模块用于打开、关闭文件;打开文件时将获得数据地址。
[0027]需要说明的是,在本系统中,数据以文件的形式进行存储和操本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据管理系统,其特征在于,所述系统包括输入模块、初始化模块、文件操作模块、读取模块、写入模块、查找模块、清空模块;所述系统按照以下方式实现数据管理功能:(1)输入模块获得本地存储路径;初始化模块进行系统初始化操作;(2)在进行数据读取、写入时,均需要借由文件操作模块进行文件操作;(3)若进行数据读取,则由读取模块从文件中循环读取文件中的数据;(4)若进行数据写入,则由写入模块将数据循环写入文件;(5)若进行数据查找,则由查找模块查找对应文件,通过二分法查找具体位置,通过顺序查找法符合条件的位置,并返回结果;(5)若需要清空数据,则由清空模块循环清空所有文件,删除文件信息。2.根据权利要求1所述的系统,其特征在于,所述初始化模块用于实现系统的初始化操作,所述初始化操作包括以下步骤:步骤11、创建uuid;步骤12、在所述本地存储路径下创建子文件夹,并将子文件夹路径作为实际数据存储路径;步骤13、初始化读写锁;步骤14、数组总数置为0。3.根据权利要求1所述的系统,其特征在于,所述文件操作模块进行文件操作包括打开文件;所述文件操作模块打开文件通过以下步骤实现:步骤211、获得文件路径、操作类型、数据结构大小、数据开始位置、数据个数;步骤212、获取系统内存粒度;步骤213、根据数据开始位置、数据结构大小、内存粒度、数据个数计算字节偏移与字节长度;步骤214、按照所述操作类型打开文件,若文件不存在则创建文件;步骤215、按照操作类型配置文件读写锁,具体包括:若操作类型为只读,则文件读写锁进行读保护;若操作类型为读写,则文件读写锁进行写保护;文件读写锁操作的数据长度为字节偏移加字节长度;步骤216、按照操作类型创建文件的文件映射对象;步骤217、将文件映射对象中的目标内容映射到进程内,得到基址;步骤218、根据基址计算数据地址,并输出所述数据地址;所述数据地址的计算方法为:;其中address为数据地址,base为基址,start为数据开始位置,datasize为数据结构大小,offset为字节偏移。4.根据权利要求3所述的系统,其特征在于,
所述字节偏移的计算方式为:;其中offset为字节偏移,start为数据开始位置,datasize为数据结构大小,granulesize为内存粒度;所述字节长度的计算方式为:;其中blength为字节长度,start为数据开始位置,datasize为数据结构大小,offset为字节偏移,datanum为数据个数。5.根据权利要求1所述的系统,其特征在于,所述读取模块按照以下步骤进行数据读取操作:步骤31、获得第一输入地址、第一输入位置及第一输入个数;步骤32、打开清空锁的读保护;步骤33、获得此时的数据总数,并获得第一目标数据结构大小及第一单文件最大数据数;步骤34、进行读取初始化,循环读取数据;步骤35、关闭清空锁的读保护,返回第一输出个数。6.根据权利要求5所述的系统,其特征在于,步骤34中,所述循环读取数据包括以下步骤:步骤3421、判断当前的文件整体位置与第一输入位置的关系以及当前的第一输出个数与第一输入个数的大小关系;若文件整体位置不小于第一输入位置或第一输出个数不小于第一输入个数,则执行步骤35;否则执行步骤3422;步骤3422、调用文件操作模块,打开当前第一文件编号对应的文件;步骤3423、若成功打开文件,则取出第一目标数据量的数据,第一文件编...

【专利技术属性】
技术研发人员:陈天李煜薛旭洪盛经纬
申请(专利权)人:北京昆迈医疗科技有限公司
类型:发明
国别省市:

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

1