CN101169628A - 一种数据保存方法和装置 - Google Patents
一种数据保存方法和装置 Download PDFInfo
- Publication number
- CN101169628A CN101169628A CNA2007101881995A CN200710188199A CN101169628A CN 101169628 A CN101169628 A CN 101169628A CN A2007101881995 A CNA2007101881995 A CN A2007101881995A CN 200710188199 A CN200710188199 A CN 200710188199A CN 101169628 A CN101169628 A CN 101169628A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- record
- type record
- item
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000013500 data storage Methods 0.000 title claims abstract description 9
- 238000007689 inspection Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 14
- 241001269238 Data Species 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据保存方法,包括:接收数据后,根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块。本发明还公开了一种数据保存装置。本发明通过采用混合型记录或数据型记录和索引型记录的双重结构模式,当某些位号的数据较少时,则通过一个混合型记录保存所有数据和该数据的索引,当某些位号的数据较多时,则通过数据型记录和索引型记录分别保存数据和索引,对保存结构进行优化,因此无论对于混合型记录还是索引型记录,索引信息均能够高度集中,使得在处理数据量悬殊的位号数据时具有较强的灵活性,且极大提高了数据的检索效率。
Description
技术领域
本发明涉及工业自动化领域,特别涉及一种数据保存方法和装置。
背景技术
工业现场的实时数据具有总量大,且数据流量突发性高等特点。这些实时数据通常是以位号为单位基于时间的顺序数据,位号是工业现场中数据点的抽象,例如智能设备上的电压或电流信号等,典型的位号数据包含数值、时间戳和状态码三个字段,由于位号数据多是实时从设备或控制系统上采集的,因此位号数据中的时间戳通常都是按照时间顺序递进的。一个典型的控制系统包含一千多个位号,如果每个位号在几秒钟内同时产生数据,那么产生的数据总量非常巨大。因此,如何保存这些实时数据以及如何快速检索这些实时数据是急待解决的问题,虽然内存的访问速度比磁盘快,但是由于内存的容量有限,因此数据将不得不保存到磁盘,因此如果能够合理利用磁盘文件结构进行数据保存,并相应建立快速索引文件就能实现对实时数据的读取。
现有技术中的对工业现场产生的实时数据的保存方法流程如图1所示:
步骤101:接收来自工业现场的位号数据。
步骤102:判断对应的存储该位号数据的文件是否存在,若是,则执行步骤103;否则,执行步骤106。
步骤103:将该位号数据写入在该文件中新建的数据记录内。
步骤104:将该位号数据对应的索引信息写入在该文件中新建的索引记录内。
步骤105:将该新建的索引记录与原索引记录进行连接,返回步骤101。
步骤106:新建数据文件,然后返回步骤103。
基于上述的数据保存方法,现有的数据检索流程如图2所示:
步骤201:根据用户查询的位号定位到该位号对应的文件。
步骤202:打开文件头中的第一条索引记录并通过遍历所有索引记录查找符合该位号的数据记录。
步骤203:判断是否检索到合适的数据记录,若是,则执行步骤204;否则,执行步骤205。
步骤204:读取检索到的数据记录并将所有数据记录作为检索结果集返回,结束当前流程。
步骤205:返回不包含数据记录的空结果集,结束当前流程。
由以上对现有技术的描述可知,由于位号众多导致文件数目庞大,相对于处理单个文件,文件处理系统在处理大量文件时的效率将显著下降,而大量的文件容易产生文件碎片,这些碎片导致检索速度的降低;由于文件长度的最小单位为簇,因此即使位号文件的长度为零,由于该文件依然要占用一个簇,因此大量的文件会严重浪费簇资源;由于将位号数据的所有字段未做任何处理就直接保存在文件中,因此不仅浪费了磁盘空间,而且由于没有合理的索引结构,使得在检索时必须通过遍历文件读取大量的数据;由于文件数目庞大,因此用户在进行数据备份时,尤其是基于时间进行数据备份时十分不便,例如用于在月初时需要备份上个月的所有数据,但是由于数据均以位号为单位,分别保存在各个文件中,因此系统必须从每个文件中检索并读取数据后再备份到新的存储介质上,该操作过程耗费了大量时间。
发明内容
本发明的目的在于提供一种数据保存方法,以解决现有技术中数据保存方法占用磁盘空间大且数据保存结构不合理,导致不利于数据检索的问题。
本发明的另一目的在于提供一种数据检索方法,以解决现有技术中数据检索方法速度不高,且耗费大量时间的问题。
为解决上述技术问题,本发明提供如下技术方案:
一种数据保存方法,包括:
接收数据后,根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;
将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块。
所述当前文件中该数据对应位号下的记录的情况包括:
所述位号下没有记录;或所述位号下有混合型记录;或所述位号下同时有数据型记录和索引型记录;
所述混合型记录中同时保存数据和该数据对应的索引信息,所述数据型记录仅保存数据,所述索引型记录仅保存所述索引信息;
所述混合型记录、数据型记录或索引型记录的大小均为文件系统簇大小的整数倍。
所述位号下没有记录时,所述根据记录的情况分配数据块和索引块包括:
新建一条混合型记录;
在所述混合型记录中分配数据块和索引块。
所述位号下有混合型记录时,所述根据记录的情况分配数据块和索引块包括:
判断所述混合型记录中是否存在足够空间存储所述数据及该数据的索引信息;
当所述混合型记录中没有足够空间时,将所述混合型记录转化为索引型记录,并将该混合型记录中的数据块转移至新建的数据型记录中;
在所述新建的数据型记录中分配数据块,并在所述索引型记录中分配索引块。
所述方法进一步包括:
当所述混合型记录中有足够空间时,在所述混合型记录中分配数据块和索引块。
所述位号下同时有数据型记录和索引型记录时,所述根据记录的情况分配数据块和索引块包括:
定位所述数据对应的数据型记录和索引型记录;
判断所述数据型记录和索引型记录中是否有足够空间存储所述数据及该数据的索引信息;
当所述数据型记录和索引型记录没有足够空间时,分配新的数据型记录作为当前数据型记录,并分配新的索引型记录作为当前的索引型记录;
在所述当前数据型记录中分配数据块,并在所述当前索引型记录中分配索引块。
进一步包括:
当所述数据型记录和索引型记录中有足够空间时,在所述数据型记录中分配数据块,并在所述索引型记录中分配索引块。
所述位号下仅能有混合型记录时,所述根据记录的情况分配数据块和索引块包括:
定位所有所述混合型记录中的最后一条记录;
判断所述记录中是否有足够空间存储所述数据及该数据的索引信息;
当所述记录中没有足够空间时新建一条记录;
在所述新建的记录中分配数据块和索引块。
进一步包括:
当所述记录中有足够空间时,在所述最后一条记录中分配数据块和索引块。
所述在接收数据后进一步包括:
根据所述接收数据的数据参数信息检查所述数据是否合法;
当所述数据合法时,执行分配数据块和索引块的步骤;当所述数据不合法时,丢弃所述数据。
所述数据参数包括数据变化率、数据极限值、和时间戳中的至少一种;
所述数据包括位号标识、位号状态位、时间戳和位号数值。
一种数据保存装置,包括:
接收单元,用于接收数据;
操作单元,用于接收数据后根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;
写入单元,用于将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块中。
所述位号下没有记录时,所述操作单元包括:
新建单元,用于新建一条混合型记录;
分配单元,用于在所述混合型记录中分配数据块和索引块。
所述位号下有混合型记录时,所述操作单元包括:
判断单元,用于判断所述混合型记录中是否存在足够空间存储所述数据及该数据的索引信息;
执行单元,用于当所述混合型记录中没有足够空间时,将所述混合型记录转化为索引型记录,并将该混合型记录中的数据块转移至新建的数据型记录中,并在所述新建的数据型记录中分配数据块,在所述索引型记录中分配索引块;当所述混合型记录中有足够空间时,在所述混合型记录中分配数据块和索引块。
所述位号下同时有数据型记录和索引型记录时,所述操作单元包括:
定位单元,用于定位所述数据对应的数据型记录和索引型记录;
判断单元,用于判断所述数据型记录和索引型记录中是否有足够空间存储所述数据及该数据的索引信息;
执行单元,用于当所述数据型记录和索引型记录没有足够空间时,分配新的数据型记录作为当前数据型记录,并分配新的索引型记录作为当前的索引型记录,在所述当前数据型记录中分配数据块,在所述当前索引型记录中分配索引块;当所述数据型记录和索引型记录中有足够空间时,在所述数据型记录中分配数据块,并在所述索引型记录中分配索引块。
所述位号下仅能有混合型记录时,所述执行单元包括:
定位单元,用于定位所有所述混合型记录中的最后一条记录;
判断单元,用于判断所述记录中是否有足够空间存储所述数据及该数据的索引信息;
执行单元,用于当所述记录中没有足够空间时新建一条记录,并在所述新建的记录中分配数据块和索引块;当所述记录中有足够空间时,在所述最后一条记录中分配数据块和索引块。
所述装置进一步包括:
检查单元,用于根据所述接收单元接收数据的数据参数信息检查所述数据是否合法;
执行单元,用于当所述数据合法时,执行所述操作单元的功能,当所述数据不合法时,丢弃所述数据。
由以上本发明提供的技术方案可见,本发明在接收数据后根据当前文件中的记录的情况分配数据块和索引块,将该数据写入所述数据块,并将对应该数据的索引信息写入所述索引块中。本发明保存数据的方法通过采用混合型记录或数据型记录和索引型记录的双重结构模式,当某些位号的数据较少时,则通过一个混合型记录保存所有数据和该数据的索引,当某些位号的数据较多时,则通过数据型记录和索引型记录分别保存数据和索引,对保存结构进行优化,因此无论对于混合型记录还是索引型记录,索引信息均能够高度集中,因此可以通过索引快速查找数据所在的物理地址,使得在处理数据量悬殊的位号数据时具有较强的灵活性,且极大提高了数据的检索效率;进一步,本发明基于文件系统簇大小的记录分配机制,并且由于操作系统在读取和写入文件时采取预读取机制,也就是说即使操作系统只读取一个字节,在缺省情况下也会将该字节所在簇的全部内容都读入到内存中,因此本发明保存数据的结构结合操作系统固有的读缓冲机制会提高磁盘的访问效率;采用记录和数据块的两层索引模式,由于记录和数据块均有时间戳,因此在进行检索时,可以快速跳过大段不需要的数据而不必进行遍历,提高了检索大量历史数据时的效率。
附图说明
图1为现有技术中的数据保存方法流程图;
图2为基于现有数据保存方法的数据检索流程图;
图3为本发明方法的第一实施例流程图;
图4为本发明方法的第二实施例流程图;
图5为本发明方法的第三实施例流程图;
图6为本发明方法的第四实施例流程图;
图7为本发明方法的第五实施例流程图;
图8为本发明混合型记录的结构示意图;
图9为本发明数据型记录和索引型记录的结构示意图;
图10为对应用本发明数据保存方法存储的数据进行检索的流程图;
图11为本发明装置的第一实施例框图;
图12为本发明装置的第二实施例框图。
具体实施方式
本发明的核心是提供一种数据保存方法,在接收数据后根据当前文件中的记录的情况分配数据块和索引块,并将该数据写入所述数据块,将对应该数据的索引信息写入所述索引块中。
为了使本技术领域的人员更好地理解本发明方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明方法的第一实施例流程图如图3所示:
步骤301:接收数据后根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块。
其中,当前文件中该数据对应位号下的记录的情况包括:该位号下没有记录;或该位号下有混合型记录;或该位号下同时有数据型记录和索引型记录;
上述混合型记录中同时保存数据和该数据对应的索引信息,数据型记录仅保存数据,索引型记录仅保存索引信息;
上述混合型记录、数据型记录或索引型记录的大小均为文件系统簇大小的整数倍。
步骤302:将该数据写入数据块,并将对应该数据的索引信息写入索引块。
本发明方法的第二实施例流程如图4所示,该实施例示接收数据对应位号下没有记录时的数据保存过程:
步骤401:接收位号数据。
本发明中接收的位号数据通常采集自工业现场,工业现场的实时数据具有总量大且数据突发性高的特点。
步骤402:根据该数据的数据参数信息检查该数据是否合法,若是,则执行步骤403;否则,执行步骤406。
数据的合法性检查可以包含多重检查,主要根据数据变化率、数据上下限、时间戳等参数信息对数据进行检查,以温度参数的变化为例,假设预先设置的条件是在1秒钟内该温度的上下波动不能超过10度,因此当判断发现波动超过10度时,则说明该数据为不合法数据。
步骤403:新建一条混合型记录。
接收到的位号数据为合法数据,则根据该位号数据中的时间戳可以定位到用于保存该数据的合适的文件。此时,由于当前文件中没有对应该位号的混合型记录,因此需要在该文件中建立对应该位号的混合型记录用于保存该数据及其索引信息。
新建的这条混合型记录的长度可以正好为文件系统的簇大小,这样既可以节约磁盘的存储空间,也可以最大限度地提高文件读写效率。原因在于,操作系统中的文件子系统是以簇为最小单位保存和处理文件的,也就是说一个文件在磁盘中所占的空间,无论其实际内容有多少,均为簇长度的整数倍,因此本发明中以簇为基础分配混合型记录,可以使文件长度为簇长度的整数倍,避免簇浪费。相应的,缺省情况下文件系统从文件中读取数据时也以簇为单位进行读取,即使读取一个字节也要把整个簇都读取到系统缓存中。
步骤404:在该混合型记录中分配数据块和索引块。
步骤405:将位号数据写入数据块并将该数据的索引信息写入索引块,返回步骤401。
将数据写入到数据块中时,同步更新该数据块对应的索引块中的时间记录,新建索引的起始时间将是数据块中第一个数据的时间戳。同时将最后一个数据的时间戳更新到该混合型记录本身的记录结束时间,以标明该混合型记录所对应的最后一个数据的时间。
步骤406:丢弃该位号数据。
本发明方法的第三实施例流程如图5所示,该实施例示出了接收数据对应位号下有混合型记录时的数据保存过程:
步骤501:接收位号数据。
步骤502:根据该数据的数据参数信息检查该数据是否合法,若是,则执行步骤503;否则,执行步骤508。
步骤503:判断混合型记录中是否有足够空间存储该数据及其索引信息,若是,则执行步骤507;否则执行步骤504。
本发明中每个位号对应的第一条记录是特殊的,因为只有第一条记录是混合型记录,也就是说该位号下的数据和该数据的索引信息是混合在一个记录中存储的。这是由于当某个位号下存储的数据较少时,如果分别设置存储数据的数据型记录和存储该数据索引信息的索引型记录,则会由于数据型记录占用的空间较大而实际利用率较小而浪费磁盘空间,因此在数据较少时,可以仅设置一条混合型记录保存数据及其索引信息。
步骤504:将混合型记录转化为索引型记录并将混合型记录中的数据块转移至新建的数据型记录。
由于该位号对应的混合型记录中没有足够空间存储该数据及其索引信息,而每个位号只能对应一个混合型记录,因此需要将混合型记录转化为索引型记录并将混合型记录中的数据块转移至新建的数据型记录中,此时由于混合型记录的空间已经不能再存储更多的数据,因此通过数据型记录和索引型记录分开存储数据及其索引信息。
步骤505:在新建的数据型记录中分配数据块并在索引型记录中分配索引块。
步骤506:将位号数据写入数据块并将该数据的索引信息写入索引块,返回步骤501。
步骤507:在混合型记录中分配数据块和索引块,执行步骤506。
由于该位号对应的混合型记录中有足够空间存储该数据及其索引信息,因此在该混合型记录中分配数据块和索引块即可。
通常在混合型记录中索引信息保证是在记录的最前面部分,因此每次需要重新分配索引的时候将连续分配4个索引块作为预留,如果预留的索引块被用完那么将把最前面的一个数据块移动到后面以便腾出空间用于设置索引块。
步骤508:丢弃该位号数据,结束当前流程。
本发明方法的第四实施例流程如图6所示,该实施例示出了接收数据对应位号下同时有数据型记录和索引型记录时的数据保存过程:
步骤601:接收位号数据。
步骤602:根据该数据的数据参数信息检查该数据是否合法,若是,则执行步骤603;否则,执行步骤609。
步骤603:定位该位号数据对应的数据型记录和索引型记录。
步骤604:判断数据型记录和索引型记录中是否有足够空间存储该数据及其索引信息,若是,则执行步骤608;否则,执行步骤605。
步骤605:分配新的数据型记录作为当前数据型记录并分配新的索引型记录作为当前的索引型记录。
由于当前数据型记录和索引型记录中是没有足够空间存储该数据,则新分配一个数据型记录,由于当前索引型记录中也没有足够空间存储该数据的索引信息,则新分配一个索引记录。数据型记录和索引型记录之间分别通过记录头中的地址偏移相互链接构成一个链表。
步骤606:在当前数据型记录中分配数据块并在当前索引型记录中分配索引块。
步骤607:将位号数据写入数据块并将该数据的索引信息写入索引块,返回步骤601。
将数据写入到数据块中时,同步更新该数据块对应的索引块中的时间记录,新建索引的起始时间将是数据块中第一个数据的时间戳。同时将最后一个数据的时间戳更新到相应的数据型记录和索引型记录的记录结束时间,标明该记录所对应的最后一个数据的时间。
步骤608:判断数据块和索引块中是否有足够空间,若是,则执行步骤607;否则,执行步骤606。
步骤609:丢弃该位号数据,结束当前流程。
本发明方法的第五实施例如图7所示,该实施例示出了接收数据对应位号下仅能有混合型记录时的数据保存过程:
步骤701:接收位号数据。
步骤702:根据该数据的数据参数信息检查该数据是否合法,若是,则执行步骤703;否则,执行步骤709。
步骤703:定位所有混合型记录中的最后一条记录。
步骤704:判断最后一条记录中是否有足够空间存储该数据及其索引信息,若是,则执行步骤708;否则,执行步骤705。
步骤705:新建一条混合型记录。
根据位号数据查找所对应该位号的所有混合型记录,并定位到该位号的最后一条记录,此时由于该位号记录中没有足够空间存储位号数据及其索引信息,因此为该位号创建一个新的混合型记录,混合型记录的大小也都正好是文件系统的簇大小,该实施例中的所有记录都是混合型记录,即数据及其索引信息混合在一起,各条混合型记录之间分别通过记录头中的地址偏移相互链接构成一个链表。
在混合型记录中的索引块保证是在记录的最前面部分,因此每次需要重新分配索引块时候都将连续分配4个索引块作为预留,如果预留的索引块被用完那么将把最前面的一个数据块移动到后面以便为索引块腾出空间。
步骤706:在该记录中分配数据块和索引块。
步骤707:将位号数据写入数据块并将该数据的索引信息写入索引块,返回步骤701。
将数据写入到数据块中,然后同步更新该数据块对应的索引块中的时间记录,新建索引块的起始时间将是数据块中第一个位号数据的时间戳。同时将最后一个位号数据的时间戳更新到相应的索引记录结束时间,标明该记录所对应的最后一个数据的时间。
步骤708:判断数据块和索引块中是否有足够空间,若是,则执行步骤707;否则,执行步骤706。
步骤709:丢弃该位号数据,结束当前流程。
需要说明的是,在上述实施例中,为保证数据精度,所有位号数据中的数值部分全部保留,对于时间戳的部分精度保存到毫秒,并采用相对时间来节约磁盘空间。举例说明:假设数据型记录中已有的一个数据块,在数据块的开头有一个区域专门保存该数据块的基准时间,比如为2007-10-30 12:00:00:000,如果后续接收到一个位号数据,其时间戳为2007-10-30 12:10:00:900,那么该位号数据被写入到数据块时只需要保存一个相对基准时间的偏移值,这里是10分钟加900毫秒,折算成毫秒就是600900毫秒,因此只需要不到3个字节就可以保存该时间偏移值,而如果要保存绝对时间,即保存“12:00:00:000”则需要至少8个字节。
本发明实施例中混合型记录的结构示意图如图8所示:
该混合型记录由记录头、索引和数据组成。其中,记录头包括记录编号、记录类型、前一记录的地址、下一记录的地址、记录的起始时间、记录的结束时间以及本记录中的索引数量。该混合型记录通过前一记录地址和下一记录地址和与其相邻的其它记录链接。其中,当某一位号下的数据量较小时,则可以通过图9所示的混合型记录同时存储位号数据及其索引信息,即索引1对应数据块1,索引2对应数据块2,以此类推。
本发明实施例中数据型记录和索引型记录的结构示意图如图9所示:
索引型记录中包括记录编号、记录类型、前一记录地址、下一记录地址、记录起始时间、记录结束时间、索引数量和填充内容,索引型记录通过前一记录地址和下一记录地址和与其相邻的其它索引型记录链接;数据型记录中包括记录编号、记录类型、前一记录地址、下一记录地址、记录起始时间、记录结束时间以及填充内容,数据型记录通过前一记录地址和下一记录地址和与其相邻的其它数据型记录链接。当文件中某一位号对应的混合型记录空间已经存储满之后,则对应该位号的数据将通过数据型记录和索引型记录分别存储数据及其索引信息,如图10中所示,其中,索引型记录中的索引1与数据型记录中的数据块1对应,索引2与数据块2对应,以此类推。
对应用本发明数据保存方法存储的数据进行检索的流程图如图10所示:
步骤1001:根据用户查询的位号定位该位号对应的文件。
例如,用户查询名称为“Temperature.PV”的位号从2007-10-30 12:00:00:000到2007-10-31 00:00:00:000的所有数据,那么系统首先根据每个文件的文件头所标记的时间范围,定位到包含该数据的文件。
步骤1002:判断是否查找到该位号对应的第一条记录,若是,则执行步骤1003;否则,执行步骤1009。
步骤1003:判断该记录是否为混合型记录,若是,则执行步骤1004;否则,执行步骤1008。
步骤1004:打开混合型记录的索引部分。
步骤1005:遍历查找索引部分获得符合查询条件的索引集。
假设查找到了12条符合要求的记录,分别是记录了从2007-10-3012:00:00:000开始每隔一个小时的数据,那么将这些索引信息形成一个索引集合并保存到缓冲中。
步骤1006:判断索引集是否为空,若是,则执行步骤1009;否则,执行步骤1007。
步骤1007:按照索引集中索引指向的地址读取数据并返回数据结果集,结束当前流程。
由于查询到了12条记录,按照索引集合中的这12记录的索引所指向的地址读取数据块,即根据这12条记录中分别记录的数据块地址,将其中所指向的数据块读取到内存,然后将数据进行拼装,即将数据打包使得其符合调用者的要求,形成数据结果集,并将该数据结果集返回给调用者。
步骤1008:打开索引型记录,返回步骤1005。
步骤1009:返回空结果集,结束当前流程。
与本发明数据保存方法相对应,本发明还提供了数据保存装置,本发明数据保存装置的第一实施例框图如图11所示:
该装置包括:接收单元1110、操作单元1120和写入单元1130。
其中,接收单元1110用于接收数据;操作单元1120用于接收数据后根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;写入单元1130用于将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块中。
本发明数据保存装置的第二实施例框图如图12所示:
该装置包括:接收单元1210、检查单元1220、执行单元1230、操作单元1240和写入单元1250。
其中,接收单元1210用于接收数据;检查单元1220用于根据所述接收单元接收数据的数据参数信息检查所述数据是否合法;执行单元1230用于当所述数据合法时,执行所述操作单元1240的功能,当所述数据不合法时,丢弃所述数据;操作单元1240用于接收数据后根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;写入单元1250用于将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块中。
具体的,当位号下没有记录时,操作单元1240可以包括:新建单元,用于新建一条混合型记录;分配单元,用于在所述混合型记录中分配数据块和索引块。
具体的,当位号下有混合型记录时,所述操作单元1240包括:判断单元,用于判断所述混合型记录中是否存在足够空间存储所述数据及该数据的索引信息;执行单元,用于当所述混合型记录中没有足够空间时,将所述混合型记录转化为索引型记录,并将该混合型记录中的数据块写入新建的数据型记录中,并在所述新建的数据型记录中分配数据块,在所述索引型记录中分配索引块;当所述混合型记录中有足够空间时,在所述混合型记录中分配数据块和索引块。
具体的,当位号下同时有数据型记录和索引型记录时,所述操作单元1240包括:定位单元,用于定位所述数据对应的数据型记录和索引型记录;判断单元,用于判断所述数据型记录和索引型记录中是否有足够空间存储所述数据及该数据的索引信息;执行单元,用于当所述数据型记录和索引型记录没有足够空间时,分配新的数据型记录作为当前数据型记录,并分配新的索引型记录作为当前的索引型记录,在所述当前数据型记录中分配数据块,在所述当前索引型记录中分配索引块;当所述数据型记录和索引型记录中有足够空间时,在所述数据型记录中分配数据块,并在所述索引型记录中分配索引块。
具体的,当位号下仅能有混合型记录时,所述操作单元1240包括:定位单元,用于定位所有所述混合型记录中的最后一条记录;判断单元,用于判断所述记录中是否有足够空间存储所述数据及该数据的索引信息;执行单元,用于当所述记录中没有足够空间时新建一条记录,并在所述新建的记录中分配数据块和索引块;当所述记录中有足够空间时,在所述最后一条记录中分配数据块和索引块。
由以上本发明实施例可见,本发明保存数据的方法通过采用混合型记录或数据型记录和索引型记录的双重结构模式,当某些位号的数据较少时,则通过一个混合型记录保存所有数据和该数据的索引,当某些位号的数据较多时,则通过数据型记录和索引型记录分别保存数据和索引,对保存结构进行优化,因此无论对于混合型记录还是索引型记录,索引信息均能够高度集中,因此可以通过索引快速查找数据所在的物理地址,使得在处理数据量悬殊的位号数据时具有较强的灵活性,且极大提高了数据的检索效率。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (17)
1.一种数据保存方法,其特征在于,包括:
接收数据后,根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;
将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块。
2.根据权利要求1所述的方法,其特征在于,所述当前文件中该数据对应位号下的记录的情况包括:
所述位号下没有记录;或所述位号下有混合型记录;或所述位号下同时有数据型记录和索引型记录;
所述混合型记录中同时保存数据和该数据对应的索引信息,所述数据型记录仅保存数据,所述索引型记录仅保存所述索引信息;
所述混合型记录、数据型记录或索引型记录的大小均为文件系统簇大小的整数倍。
3.根据权利要求2所述的方法,其特征在于,所述位号下没有记录时,所述根据记录的情况分配数据块和索引块包括:
新建一条混合型记录;
在所述混合型记录中分配数据块和索引块。
4.根据权利要求2所述的方法,其特征在于,所述位号下有混合型记录时,所述根据记录的情况分配数据块和索引块包括:
判断所述混合型记录中是否存在足够空间存储所述数据及该数据的索引信息;
当所述混合型记录中没有足够空间时,将所述混合型记录转化为索引型记录,并将该混合型记录中的数据块转移至新建的数据型记录中;
在所述新建的数据型记录中分配数据块,并在所述索引型记录中分配索引块。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
当所述混合型记录中有足够空间时,在所述混合型记录中分配数据块和索引块。
6.根据权利要求2所述的方法,其特征在于,所述位号下同时有数据型记录和索引型记录时,所述根据记录的情况分配数据块和索引块包括:
定位所述数据对应的数据型记录和索引型记录;
判断所述数据型记录和索引型记录中是否有足够空间存储所述数据及该数据的索引信息;
当所述数据型记录和索引型记录没有足够空间时,分配新的数据型记录作为当前数据型记录,并分配新的索引型记录作为当前的索引型记录;
在所述当前数据型记录中分配数据块,并在所述当前索引型记录中分配索引块。
7.根据权利要求6所述的方法,其特征在于,进一步包括:
当所述数据型记录和索引型记录中有足够空间时,在所述数据型记录中分配数据块,并在所述索引型记录中分配索引块。
8.根据权利要求2所述的方法,其特征在于,所述位号下仅能有混合型记录时,所述根据记录的情况分配数据块和索引块包括:
定位所有所述混合型记录中的最后一条记录;
判断所述记录中是否有足够空间存储所述数据及该数据的索引信息;
当所述记录中没有足够空间时新建一条记录;
在所述新建的记录中分配数据块和索引块。
9.根据权利要求8所述的方法,其特征在于,进一步包括:
当所述记录中有足够空间时,在所述最后一条记录中分配数据块和索引块。
10.根据权利要求1至9任意一项所述的方法,其特征在于,所述在接收数据后进一步包括:
根据所述接收数据的数据参数信息检查所述数据是否合法;
当所述数据合法时,执行分配数据块和索引块的步骤;当所述数据不合法时,丢弃所述数据。
11.根据权利要求10所述的方法,其特征在于,所述数据参数包括数据变化率、数据极限值、和时间戳中的至少一种;
所述数据包括位号标识、位号状态位、时间戳和位号数值。
12.一种数据保存装置,其特征在于,包括:
接收单元,用于接收数据;
操作单元,用于接收数据后根据当前文件中该数据对应位号下的记录的情况分配数据块和索引块;
写入单元,用于将所述数据写入所述数据块,并将对应该数据的索引信息写入所述索引块中。
13.根据权利要求12所述的装置,其特征在于,所述位号下没有记录时,所述操作单元包括:
新建单元,用于新建一条混合型记录;
分配单元,用于在所述混合型记录中分配数据块和索引块。
14.根据权利要求12所述的装置,其特征在于,所述位号下有混合型记录时,所述操作单元包括:
判断单元,用于判断所述混合型记录中是否存在足够空间存储所述数据及该数据的索引信息;
执行单元,用于当所述混合型记录中没有足够空间时,将所述混合型记录转化为索引型记录,并将该混合型记录中的数据块转移至新建的数据型记录中,并在所述新建的数据型记录中分配数据块,在所述索引型记录中分配索引块;当所述混合型记录中有足够空间时,在所述混合型记录中分配数据块和索引块。
15.根据权利要求12所述的装置,其特征在于,所述位号下同时有数据型记录和索引型记录时,所述操作单元包括:
定位单元,用于定位所述数据对应的数据型记录和索引型记录;
判断单元,用于判断所述数据型记录和索引型记录中是否有足够空间存储所述数据及该数据的索引信息;
执行单元,用于当所述数据型记录和索引型记录没有足够空间时,分配新的数据型记录作为当前数据型记录,并分配新的索引型记录作为当前的索引型记录,在所述当前数据型记录中分配数据块,在所述当前索引型记录中分配索引块;当所述数据型记录和索引型记录中有足够空间时,在所述数据型记录中分配数据块,并在所述索引型记录中分配索引块。
16.根据权利要求12所述的装置,其特征在于,所述位号下仅能有混合型记录时,所述执行单元包括:
定位单元,用于定位所有所述混合型记录中的最后一条记录;
判断单元,用于判断所述记录中是否有足够空间存储所述数据及该数据的索引信息;
执行单元,用于当所述记录中没有足够空间时新建一条记录,并在所述新建的记录中分配数据块和索引块;当所述记录中有足够空间时,在所述最后一条记录中分配数据块和索引块。
17.根据权利要求12所述的装置,其特征在于,所述装置进一步包括:
检查单元,用于根据所述接收单元接收数据的数据参数信息检查所述数据是否合法;
执行单元,用于当所述数据合法时,执行所述操作单元的功能,当所述数据不合法时,丢弃所述数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101881995A CN100561386C (zh) | 2007-11-14 | 2007-11-14 | 一种数据保存方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101881995A CN100561386C (zh) | 2007-11-14 | 2007-11-14 | 一种数据保存方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101169628A true CN101169628A (zh) | 2008-04-30 |
CN100561386C CN100561386C (zh) | 2009-11-18 |
Family
ID=39390277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101881995A Expired - Fee Related CN100561386C (zh) | 2007-11-14 | 2007-11-14 | 一种数据保存方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100561386C (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692252A (zh) * | 2009-08-31 | 2010-04-07 | 上海宝信软件股份有限公司 | 文件空闲块的分配和回收方法 |
CN102110152A (zh) * | 2011-02-18 | 2011-06-29 | 北京瑞风协同科技股份有限公司 | 通道数据的写入方法及该通道数据的文件头的读取方法 |
CN102215164A (zh) * | 2011-05-25 | 2011-10-12 | 浙江中控软件技术有限公司 | 一种传输数据的方法 |
CN102243884A (zh) * | 2010-05-12 | 2011-11-16 | 杭州华三通信技术有限公司 | 一种存储流媒体数据的方法及装置 |
CN102419752A (zh) * | 2010-09-28 | 2012-04-18 | 上海可鲁系统软件有限公司 | 一种工业数据库报文存储方法 |
CN102841860A (zh) * | 2012-08-17 | 2012-12-26 | 珠海世纪鼎利通信科技股份有限公司 | 一种大数据量信息存储与访问方法 |
CN103970844A (zh) * | 2014-04-28 | 2014-08-06 | 北京创世漫道科技有限公司 | 大数据的写入方法和装置、读取方法和装置及处理系统 |
CN104408041A (zh) * | 2014-10-13 | 2015-03-11 | 深圳市德传技术有限公司 | 一种gps数据的保存方法 |
CN104462141A (zh) * | 2013-09-24 | 2015-03-25 | 中国移动通信集团重庆有限公司 | 一种数据存储与查询的方法、系统及存储引擎装置 |
CN105260395A (zh) * | 2015-09-16 | 2016-01-20 | 中国人民解放军第四军医大学 | 基于倒排索引结构的str数据存储及亲子鉴定排序比对方法 |
CN105653613A (zh) * | 2015-12-24 | 2016-06-08 | 浙江中控技术股份有限公司 | 一种应用于智能粮库的数据存储方法及装置 |
CN106681995A (zh) * | 2015-11-05 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 数据缓存方法、数据查询方法及装置 |
CN109120885A (zh) * | 2017-06-26 | 2019-01-01 | 杭州海康威视数字技术股份有限公司 | 视频数据获取方法及装置 |
CN116204684A (zh) * | 2023-02-01 | 2023-06-02 | 浙江正泰仪器仪表有限责任公司 | 一种电能表的存储方法、装置、设备及介质 |
-
2007
- 2007-11-14 CN CNB2007101881995A patent/CN100561386C/zh not_active Expired - Fee Related
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692252A (zh) * | 2009-08-31 | 2010-04-07 | 上海宝信软件股份有限公司 | 文件空闲块的分配和回收方法 |
CN101692252B (zh) * | 2009-08-31 | 2014-03-26 | 上海宝信软件股份有限公司 | 文件空闲块的分配和回收方法 |
CN102243884A (zh) * | 2010-05-12 | 2011-11-16 | 杭州华三通信技术有限公司 | 一种存储流媒体数据的方法及装置 |
CN102243884B (zh) * | 2010-05-12 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种存储流媒体数据的方法及装置 |
CN102419752A (zh) * | 2010-09-28 | 2012-04-18 | 上海可鲁系统软件有限公司 | 一种工业数据库报文存储方法 |
CN102419752B (zh) * | 2010-09-28 | 2013-09-11 | 上海可鲁系统软件有限公司 | 一种工业数据库报文存储方法 |
CN102110152A (zh) * | 2011-02-18 | 2011-06-29 | 北京瑞风协同科技股份有限公司 | 通道数据的写入方法及该通道数据的文件头的读取方法 |
CN102215164A (zh) * | 2011-05-25 | 2011-10-12 | 浙江中控软件技术有限公司 | 一种传输数据的方法 |
CN102215164B (zh) * | 2011-05-25 | 2013-10-23 | 浙江中控软件技术有限公司 | 一种传输数据的方法 |
CN102841860A (zh) * | 2012-08-17 | 2012-12-26 | 珠海世纪鼎利通信科技股份有限公司 | 一种大数据量信息存储与访问方法 |
CN102841860B (zh) * | 2012-08-17 | 2015-09-16 | 珠海世纪鼎利通信科技股份有限公司 | 一种大数据量信息存储与访问方法 |
CN104462141A (zh) * | 2013-09-24 | 2015-03-25 | 中国移动通信集团重庆有限公司 | 一种数据存储与查询的方法、系统及存储引擎装置 |
CN104462141B (zh) * | 2013-09-24 | 2018-05-22 | 中国移动通信集团重庆有限公司 | 一种数据存储与查询的方法、系统及存储引擎装置 |
CN103970844A (zh) * | 2014-04-28 | 2014-08-06 | 北京创世漫道科技有限公司 | 大数据的写入方法和装置、读取方法和装置及处理系统 |
CN103970844B (zh) * | 2014-04-28 | 2017-11-21 | 北京创世漫道科技有限公司 | 大数据的写入方法和装置、读取方法和装置及处理系统 |
CN104408041A (zh) * | 2014-10-13 | 2015-03-11 | 深圳市德传技术有限公司 | 一种gps数据的保存方法 |
CN104408041B (zh) * | 2014-10-13 | 2018-03-30 | 深圳市德传技术有限公司 | 一种gps数据的保存方法 |
CN105260395A (zh) * | 2015-09-16 | 2016-01-20 | 中国人民解放军第四军医大学 | 基于倒排索引结构的str数据存储及亲子鉴定排序比对方法 |
CN105260395B (zh) * | 2015-09-16 | 2018-05-01 | 中国人民解放军第四军医大学 | 基于倒排索引结构的str数据存储及亲子鉴定排序比对方法 |
CN106681995B (zh) * | 2015-11-05 | 2020-08-18 | 菜鸟智能物流控股有限公司 | 数据缓存方法、数据查询方法及装置 |
CN106681995A (zh) * | 2015-11-05 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 数据缓存方法、数据查询方法及装置 |
CN105653613A (zh) * | 2015-12-24 | 2016-06-08 | 浙江中控技术股份有限公司 | 一种应用于智能粮库的数据存储方法及装置 |
CN109120885A (zh) * | 2017-06-26 | 2019-01-01 | 杭州海康威视数字技术股份有限公司 | 视频数据获取方法及装置 |
CN116204684A (zh) * | 2023-02-01 | 2023-06-02 | 浙江正泰仪器仪表有限责任公司 | 一种电能表的存储方法、装置、设备及介质 |
CN116204684B (zh) * | 2023-02-01 | 2024-06-04 | 浙江正泰仪器仪表有限责任公司 | 一种电能表的存储方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100561386C (zh) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101169628A (zh) | 一种数据保存方法和装置 | |
JP4249267B2 (ja) | ファイル・システムにおけるディスク・スペースの解放 | |
KR101377147B1 (ko) | 직접적인 데이터 파일 저장 메모리들에서의 데이터 통합 및가비지 수집 | |
CN101692252B (zh) | 文件空闲块的分配和回收方法 | |
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN100565530C (zh) | 一种快照系统及其使用方法 | |
CN105760113B (zh) | 基于nand闪存的高速存储设备及文件管理方法 | |
CN106708427A (zh) | 一种适用于键值对数据的存储方法 | |
CN101137981A (zh) | 用于管理文件系统中的内容存储的方法和装置 | |
CN101178693A (zh) | 一种数据缓存方法及系统 | |
CN101241472A (zh) | 映射管理方法及系统 | |
CN102637142A (zh) | 一种实现日志管理的计算机系统及其方法 | |
CN107256196A (zh) | 基于闪存阵列的支持零拷贝的缓存系统及方法 | |
EP2511826B1 (en) | Level-to-level management method and system of storage resources | |
CN100507919C (zh) | 一种fat文件系统及其处理方法 | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
CN103500206A (zh) | 基于文件存储数据的存储方法及装置 | |
CN109558335A (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
CN102243884B (zh) | 一种存储流媒体数据的方法及装置 | |
CN101303667B (zh) | 建立磁盘空簇表及查找磁盘空簇的方法和装置 | |
CN101196916A (zh) | 一种分段存储文件的方法及装置 | |
CN108829345A (zh) | 日志文件的数据处理方法和终端设备 | |
CN100375063C (zh) | 一种现场可编程门阵列中管理发送缓冲区的方法和装置 | |
CN110008188B (zh) | 一种文件系统级的应用软件外存限额系统 | |
CN108376121B (zh) | 一种Flash存储器的数据存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091118 Termination date: 20121114 |