CN106569747B - 一种大容量采集终端的数据位置存储及检索方法 - Google Patents
一种大容量采集终端的数据位置存储及检索方法 Download PDFInfo
- Publication number
- CN106569747B CN106569747B CN201610947997.0A CN201610947997A CN106569747B CN 106569747 B CN106569747 B CN 106569747B CN 201610947997 A CN201610947997 A CN 201610947997A CN 106569747 B CN106569747 B CN 106569747B
- Authority
- CN
- China
- Prior art keywords
- chained list
- retrieval
- searching
- tail
- last
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种大容量采集终端的数据位置存储及检索方法,在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,以尾号建立检索链表,转换后编号的高位部分组成检索号;检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置。本发明解决了大容量采集终端的编号检索速度问题,减少了检索工作对MCU时间的占用;采用不存尾号的编号长度分组方式,减少存贮数量和提升检索效率。
Description
技术领域
本发明涉及一种大容量采集终端的数据位置存储及检索方法。
背景技术
随着物联网技术的快速发展,一个采集终端往往需要记录大量的被采集设备的数据,而要读取某个被采集设备的数据时,就需要根据其编号查找到具体的数据存贮位置,然后再读取数据。当需要检索的编号只有几百个时,顺序检索即可,花费的时间不是很长,是可以被接受的。但是,当存贮的编号达到成千上万个时,就必须采取快速检索方法,比如多表集抄应用,一个物业小区的集中器,同时存贮了水、电、气、热四表的数据,用户数能达到2000以上,一个表号有6~8个字节,顺序检索一个表号花费的时间要几秒钟,无法接受。
若采用建立索引的方式来进行检索,被采集设备的增减会对索引表进行较大的变更,而采集终端一般采用串行接口的FLASH存贮器,是以数据块方式存贮器,访问时需要先读到SRAM中,而且写Flash花费的时间较长,会影响其它数据的存贮,不是很方便。
另外,考虑到采集终端的成本,一般会尽量压缩FLASH的容量,不能用太多的冗余空间来存贮,而且,采集终端要用大量的时间做数据采集和存贮工作,检索的时间要求占用的MCU资源少,因此,需要一个既能快速检索,又不占用太多存贮空间且符合FLASH存贮器特点的检索方式。
发明内容
为了克服现有大容量采集终端的数据位置存储及检索方法的上述不足,本发明提供一种可实现快速检索的大容量采集终端的数据位置存储及检索方法。
本发明解决其技术问题的技术方案是:一种大容量采集终端的数据位置存储及检索方法,在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:
1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号,因为每个尾号有一个对应的链表,尾号可以不存贮,也就是说原来的6个数字只需要2个字节来存贮了,减少了一个字节的贮存;
2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号,因为前面的部分是偶数个,两个数字组成一个BCD码,因为尾号可以不存贮,因此比原来少用一个字节贮存;
检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;
当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检索号及分配的采集数据贮存位置信息***,如果Last节点满了,则分配一个未用的Flash块***到该检索链表末尾,并标记该Flash块为已用;
当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置;
当要删除某个被采集设备时,先按上面的方法进行检索,获取采集数据贮存位置,清除该贮存位置的相应数据记录,然后将该检索链表中的最后一个检索号与采集数据存贮位置信息复制到正删除的检索号位置,检索链表的最后一个检索号与地址清空,若该检索链表的最后节点没有任何检索号,则标记该节点为未用,并从该链表中删除。
优选的,在检索链表中查找检索号时,先将检索号的低位部分进行比对。
本发明的有益效果在于:1.它解决了大容量采集终端的编号检索速度问题,减少了检索工作对MCU时间的占用;2.采用不存尾号的编号长度分组方式,减少存贮数量和提升检索效率;3.减少了编号检索时从Flash转到SRAM的读取次数;4.没有按编号建立索引,被采集设备的编号增减需要写Flash的次数很少,不影响终端的其它工作。
下面结合具体实施方式对本发明作进一步详细说明。
一种大容量采集终端的数据位置存储及检索方法,在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:
1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号;
2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号;
检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;
当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检索号及分配的采集数据贮存位置信息***,如果Last节点满了,则分配一个未用的Flash块***到该检索链表末尾,并标记该Flash块为已用;
当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置;
当要删除某个被采集设备时,先按上面的方法进行检索,获取采集数据贮存位置,清除该贮存位置的相应数据记录,然后将该检索链表中的最后一个检索号与采集数据存贮位置信息复制到正删除的检索号位置,检索链表的最后一个检索号与地址清空,若该检索链表的最后节点没有任何检索号,则标记该节点为未用,并从该链表中删除。
例如:如果一个被采集设备的编号为14位数字,用7字节BCD码表示,将数字分成高8位和低6位两组,前面的8位为4字节,后面的6位转换成HEX码后,去掉尾号,用2字节存贮,则最后存贮空间为6字节,比原来的7字节少1个字节。如果Flash存贮器的每个数据块是1024字节,每个采集数据位置用2字节表示,总共有30000台被采集设备,则按普通的顺序存贮方式,每个Flash块存贮113台,共需要266个Flash块。而采用本发明的方法,每个Flash块可以存贮128台,加上最多可能出现的16个检索链表Head节点的冗余块,工需要251个Flash块,节约了5.6%的检索用Flash块资源,另外,因为分组后的检索数据量只有原来的1/16,这样检索速度提高了16倍;
本实施中,在检索链表中查找检索号时,先将检索号的低位部分进行比对。在实际应用中,一般一个区域内使用到的被采集设备是由少数几家供应商提供,对于同一供应商的每批次供货,其设备编号呈现出高位部分基本相同,变化的是低位部分,6位数字达到了一百万台,绝大多数情况下,一台采集终端所采集的设备编号的低6位数重复概率非常低,比如采集终端采集3万台设备时,有1个编号低6位数重复的概率仅0.09%,所以基本上比较了低6位数后就基本可以确认了。因为采集终端下的被采集设备的编号有此特点,因此,本发明利用倒序比对的方法进行检索,这样就可以大幅提升检索速度,以前面的例子来分析,如果按从高到低的顺序比对,几乎等于每个被采集设备的编号比对要比对7个字节,而采用本发明的方法,基本是比对经过分组处理后的低2字节就以非常高概率匹配了,这两个字节匹配后,高位的4字节会接近100%会匹配成功。因此,采用倒序检索的方法比对次数只有正序的2/7。
Claims (2)
1.一种大容量采集终端的数据位置存储及检索方法,其特征在于:在对被
采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:
1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号;
2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号;
检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;
当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检索号及分配的采集数据贮存位置信息***,如果Last节点满了,则分配一个未用的Flash块***到该检索链表末尾,并标记该Flash块为已用;
当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置;
当要删除某个被采集设备时,先按上面的方法进行检索,获取采集数据贮存位置,清除该贮存位置的相应数据记录,然后将该检索链表中的最后一个检索号与采集数据存贮位置信息复制到正删除的检索号位置,检索链表的最后一个检索号与地址清空,若该检索链表的最后节点没有任何检索号,则标记该节点为未用,并从该链表中删除。
2.如权利要求1所述的大容量采集终端的数据位置存储及检索方法,其特征在于:在检索链表中查找检索号时,先将检索号的低位部分进行比对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610947997.0A CN106569747B (zh) | 2016-10-27 | 2016-10-27 | 一种大容量采集终端的数据位置存储及检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610947997.0A CN106569747B (zh) | 2016-10-27 | 2016-10-27 | 一种大容量采集终端的数据位置存储及检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569747A CN106569747A (zh) | 2017-04-19 |
CN106569747B true CN106569747B (zh) | 2019-01-11 |
Family
ID=58535092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610947997.0A Active CN106569747B (zh) | 2016-10-27 | 2016-10-27 | 一种大容量采集终端的数据位置存储及检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569747B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1426557A (zh) * | 2000-12-28 | 2003-06-25 | 索尼公司 | 对快速存储器的数据记录装置和数据写入方法 |
CN101609331A (zh) * | 2009-07-30 | 2009-12-23 | 西安科技大学 | 一种适用于工业过程控制中的数据存储和读取方法 |
CN102567209A (zh) * | 2010-12-21 | 2012-07-11 | 厦门市美亚柏科信息股份有限公司 | 闪存芯片数据解析方法和装置 |
CN103823760A (zh) * | 2014-03-03 | 2014-05-28 | 山西科泰微技术有限公司 | 一种高效的数据存储和解析方法 |
-
2016
- 2016-10-27 CN CN201610947997.0A patent/CN106569747B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1426557A (zh) * | 2000-12-28 | 2003-06-25 | 索尼公司 | 对快速存储器的数据记录装置和数据写入方法 |
CN101609331A (zh) * | 2009-07-30 | 2009-12-23 | 西安科技大学 | 一种适用于工业过程控制中的数据存储和读取方法 |
CN102567209A (zh) * | 2010-12-21 | 2012-07-11 | 厦门市美亚柏科信息股份有限公司 | 闪存芯片数据解析方法和装置 |
CN103823760A (zh) * | 2014-03-03 | 2014-05-28 | 山西科泰微技术有限公司 | 一种高效的数据存储和解析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106569747A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579683B2 (en) | Memory system including key-value store | |
US10592348B2 (en) | System and method for data deduplication using log-structured merge trees | |
CN101533408B (zh) | 一种海量数据的处理方法及处理装置 | |
Chen et al. | The dynamic cuckoo filter | |
WO2018064962A1 (zh) | 数据存储方法、电子设备和计算机非易失性存储介质 | |
JP2015512604A (ja) | 暗号ハッシュ・データベース | |
CN105468642A (zh) | 数据的存储方法及装置 | |
JP2005267600A5 (zh) | ||
CN105069111A (zh) | 云存储中基于相似性的数据块级数据去重方法 | |
US10496612B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
CN105912696A (zh) | 一种基于对数归并的dns索引创建方法及查询方法 | |
CN107741947A (zh) | 基于hdfs文件***的随机数密钥的存储与获取方法 | |
KR20170065374A (ko) | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 | |
CN112434085B (zh) | 基于Roaring Bitmap的用户数据统计方法 | |
CN111541617B (zh) | 一种用于高速大规模并发数据流的数据流表处理方法及装置 | |
CN106569747B (zh) | 一种大容量采集终端的数据位置存储及检索方法 | |
CN104111899A (zh) | 一种缓存数据的存储方法及***及读取方法 | |
CN115454353B (zh) | 一种面向空间应用数据的高速写入及查询方法 | |
JP2017021857A (ja) | メモリシステムのローカルコントローラ | |
CN110825747B (zh) | 一种信息存取方法、装置和介质 | |
CN107330002A (zh) | 分布式数据库实现方法及装置 | |
CN118034612B (zh) | 一种数据处理方法、装置和存储介质 | |
CN104199895A (zh) | 一种基于双体内存***的大数据实时排序处理器 | |
JP2016021264A (ja) | メモリシステムのデータ管理方法 | |
CN117033388A (zh) | 一种oracle数据库实时复制环境下的rowid映射数据的存储方法 |
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 | ||
CB02 | Change of applicant information |
Address after: 315300 Ningbo, Cixi, ancient street, the streets of science and technology road, No. 711 Applicant after: Ningbo Canaan intelligent electrical Limited by Share Ltd Address before: 315300 Ningbo, Cixi, ancient street, the streets of science and technology road, No. 711 Applicant before: Ningbo Jianan Electronics Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |