CN111158604B - 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 - Google Patents
一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 Download PDFInfo
- Publication number
- CN111158604B CN111158604B CN201911404306.2A CN201911404306A CN111158604B CN 111158604 B CN111158604 B CN 111158604B CN 201911404306 A CN201911404306 A CN 201911404306A CN 111158604 B CN111158604 B CN 111158604B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- logical page
- time point
- logical
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种闪存颗粒阵列的物联网时间序列数据存储与检索方法,专门针对多类型时间序列数据的读写做了相应的改进。本发明根据各类数据的生命周期从闪存颗粒阵列中预先为其分配空间的物理块建立各自的块级地址映射表,在内存的缓冲区内将数据一页为单位组合成存储单元,缓存一定数量的数据之后并发写入预先为其分配的物理块内,写入时从第一个逻辑块开始依次往里面写入一页数据,保证一轮下来每个块的相同偏移地址出写入数据;构建传感器变化情况记录表记录下数据时间点与逻辑页号,逻辑页号与逻辑块号等参数,查询数据时根据目标数据的时间点带入传感器变化情况记录表的各个参数计算出目标数据所在的地址获取数据。
Description
技术领域
本发明涉及数据库的存储与检索领域,尤其涉及一种闪存颗粒阵列的物联网时间序列数据存储与检索方法。
背景技术
随着物联网技术的不断普及,无线传感网络技术的不断发展,在传感网络的布局中所用的传感器越来越多,传感器的采样率也越来越高,所产生的数据量越来越大,这类数据的最主要的特点是具有时间连续性,数据的类型多样,如何快速地对这么多类型的数据进行快速地存储和检索成了一个需要解决的问题。尤其是指定数据的快速检索,常见的关系型数据库完全无法满足大数据规模下数据检索的时效性;而新型的非关系型数据库无法较好利用时序数据中的时间关系,检索效率直接依赖于硬件投入,性价比不高。
由于物联网时间序列数据是由传感器采集的产生的,对于一个区域的检测需要的大量的传感器来采集数据,这样的数据是周期性地不断产生的,具有海量数据的特点。针对海量数据的存储,传统的数据库一方面受制于磁盘读写速度的限制,另一方面需要构建复杂的索引用于检索数据,索引的更新和维护不便,对于海量的数据存储和检索存在着瓶颈。
闪存颗粒阵列由于其自身结构上的并行优势和读写数据时没有磁盘机械转动时的地址寻道等时间的浪费,在读写速度上比磁盘块很多,适合用于大量数据进行快速读写应用的场景。闪存的读写以页为单位,擦除以块为单位进行擦除,对于数据的更新相较于传统磁盘存储而言也是不同的,闪存由于其自身的限制不能够在原物理地址上对数据进行覆写,其一般采用异地更新的策略,即将要更新的数据写在其他地方的物理页中,重构映射关系,并将原数据页标记为无效用于日后进行擦除操作。对于数据的删除操作,闪存是以块为单位进行操作的,需要将一个块中有价值的数据进行转移到新的物理页当中,然后再对物理块进行擦除操作。每个块都有擦除次数限制,擦除达到一定次数之后该块就会成为一个坏块无法使用,当一个块通过ECC处理机制判定为一个坏块时会被标记为无法使用从而将其隔离,创建相应的映射关系时不会选择这些坏块。
通用的固态硬盘作为一种典型的闪存阵列,其为了保持传统固态盘的通用性,即为了延长闪存的使用寿命,因而需要复杂的垃圾回收和损耗均衡机制来减少闪存的擦除操作增加闪存的使用寿命。这些复杂的机制在一定程度上影响了闪存的使用效率,这些机制在本发明中的闪存阵列中根据时间序列数据的特性和分配方式进行了相应的优化。现有的基于时间序列的工业数据存储与检索的方法在对于时间序列数据的存储和检索存在着一定的局限性,现有方法只是单一考虑的将相同的数据放在同一物理块内,将物理块组合成多个数据文件对数据进行保存,没有对数据在存储介质上存放的物理地址进行相应的优化存储,针对磁盘介质来说,如果文件中的多个物理块在磁盘上过于分散,随机读写的效率会很差,对于闪存阵列来说,存放连续数据的多个物理块如果集中在一个闪存颗粒内读写效率也会变得很差。
此外,现有方法预留数据存储空间来防止采集点增多,采集数据增加的情况缺乏对存储空间的有效利用,如果指定类型采集点数量没有增加,溢出数据区不能用来写入其他类型的数据,存储空间的利用效率较低。对于数据的检索,现有方法采用先查找对应时间段的数据文件,再从数据文件中比较各个数据的时间差来找寻对应时间点的数据,现有方法需要先从文件检索表中根据时间点找到目标数据处于哪个文件中,当数据量不断增加时,数据文件不断增多会导致查询效率变低。
发明内容
针对现有技术中的上述不足,本发明提供的一种闪存颗粒阵列的物联网时间序列数据存储与索引方法针对多类型时间序列数据的读写做了相应的改进。
为了达到以上目的,本发明采用的技术方案为:
本方案提供一种闪存颗粒阵列的物联网时间序列数据存储与检索方法,包括以下步骤:
S1、根据存入数据的生命周期和单位时间采样率以及单个时间点数据的大小,预先从闪存颗粒阵列的不同闪存颗粒中为其分配物理块,并构建相应的块级地址映射表;
S2、根据所述块级地址映射表,在内存的缓冲区内构建以页为大小的存储单元,并将数据按时间顺序写入至存储单元;
S3、根据对传感器的数量和采样率以及块级地址映射表的实时监控,创建和更新传感器变化情况记录表,并记录数据时间点与逻辑页号的关系参数以及逻辑页号和逻辑块号之间的关系参数;
S4、查询传感器变化情况记录表中最后一项的关系参数,带入计算得到数据写入闪存内的偏移地址,完成对物联网时间序列数据的存储;
S5、根据查询传感器变化情况记录表中距离目标时间点之前最近的起始时间所在位置的关系参数,计算得到目标时间点数据所在的地址,完成对物联网时间序列数据的检索。
进一步地,所述步骤S1中闪存颗粒阵列包括传感器采集的数据类型、起始时间t0、起始时间逻辑页lpnfirst、添加块次数i、逻辑页lpni、逻辑块lbni、添加之前的块数Xi-1、当前总块数Xi、传感器数量m以及采样率p。
再进一步地,所述步骤S1中每个物理块分配在不同的闪存内,且每个物理块只存放一类数据,并为每类数据构建一个独立的块级地址映射表。
再进一步地,所述步骤S3中传感器变化情况记录表内包括当前类型数据传感器的数量和采样率,以及当前数量和采样率下的起始时间以及起始时间所在的逻辑页号。
再进一步地,所述步骤S3中传感器变化情况记录表的更新条件为:
当传感器数量增加或减少时,更新传感器变化情况记录表,其中:
当传感器数量减少时,不更新当前总块数Xi;
当传感器数量增加,且需添加新的物理块用于保存数据时,更新当前总块数Xi。
再进一步地,所述步骤S4包括如下步骤:
S401、根据步骤S3得到的关系参数以及传感器变化情况记录表检索目标时间点的数据;
S402、查询与目标时间点最接近的初始时间,并根据所述最接近的初始时间以及记录表时间点与逻辑页的关系参数计算得到目标逻辑页号;
S403、根据所述目标逻辑页与传感器变化情况记录表中记录的最近的逻辑页号进行比较计算出差值;
S404、利用差值计算得到目标时间点数据所在的逻辑块号及其偏移位;
S405、根据所述目标时间点数据所在的逻辑块号及其偏移位得到目标数据所在物理块内的偏移地址,完成基于闪存颗粒阵列的物联网时间序列的数据存储。
再进一步地,所述步骤S402中目标逻辑页号的表达式如下:
其中,LPN表示目标逻辑页号,tn表示目标时间点,t0表示传感器变化情况表记录下变化前最后的时间点,m表示传感器变化后的数量,p表示传感器的采样率,lpnfirst表示数据存放的最后的逻辑页号。
再进一步地,所述步骤S404中目标时间点数据所在的逻辑块号LBN的表达式如下:
lpnlasti=lpni+Xi-lbni
其中,i表示记录表添加新块的次数,初始为0时代表刚开始为数据分配的X块物理块,以后需要为新增加的传感器额外配置物理块时添加,lpn表示目标时间点所在的逻辑页号,lpnlasti表示添加新块之前在旧块内写的最后一个偏移位的逻辑页号,lpni表示第i次添加块时数据当前数据所写入的逻辑页号,lbni表示其所在的逻辑块号,Xi表示第i次添加块之后为其分配的总块数。
再进一步地,所述步骤S404中目标时间点数据所在的偏移位offset的表达式如下:
其中,lpn表示目标时间点所在的逻辑页号,lpnlasti表示添加新块之前在旧块内写的最后一个偏移位的逻辑页号,Xi表示第i次添加块之后为其分配的总块数,Xn表示第n次添加块后的总块数,k表示添加块的次数。
本发明的有益效果:
(1)本发明中利用分类建立多个映射表,将数据顺序写入表中连续的逻辑地址映射的物理地址中,由于每个表中的地址映射创建时优先使用不同闪存芯片内的物理块,这样可以最大化地利用闪存阵列的并行性特征,有效提高数据的并发读写速度,通过传感器变化情况记录表来记录数据查询中时间与逻辑页之间的线性关系参数,通过计算就可以快速地得到数据所在的位置,没有为各类数据额外构建索引的开销,本发明根据时间序列数据自身的特点,很好地规避了传统数据库中数据索引的维护和更新的额外开销问题和闪存存储数据写入代价过高的问题,本发明中过滤掉了以往数据存取方法中由于考虑多方面因素的原因导致的读写效率不高的问题,专门针对时间序列数据,在基于闪存的存储中优化其数据的读写速度;
(2)本发明中对于数据的存储,根据数据的生命周期以及单位时间采样率和单个时间点的大小等参数预先为其分配存放的物理块地址并构建相应的块级地址映射表,为了提高数据的读写速度,本发明在数据写入时注重数据写入的物理地址位分配,为了能达到快速读写的目的,根据闪存阵列并行结构的特点,将数据以页为单位分散写入为其分配的物理块,这样能够保证连续的数据分散地存放在多个物理块,物理块分布在不同的闪存内,这样在读取大量连续的时间序列数据时可以同时从多个闪存内进行读写,有效加快数据的存储速度;
(3)由于数据具有时间相关性,其数据特征在时间上呈现一个先后顺序的线性关系,将数据按时间顺序写入相应的逻辑地址,根据其线性关系可以快速计算出相应的逻辑地址的位置,通过其地址映射快速找到在闪存物理地址上存储的目标数据。由于物理地址是分散在各个闪存芯片里面的,这样范围读取大量数据相当于从多个芯片中同时读取数据,能充分利用闪存阵列结构的并行性,达到对数据进行快速读取的目的;
(4)本发明对于传感器数量增加的情况,需要在该类数据之前创建的块级地址映射表上添加新的干净的物理块用于存储数据,新添加的物理块优先从没为该类数据分配物理块的闪存颗粒中调用干净的物理块并添加到地址映射表中。采用本方法,无需为每一类传感器数据单独预留溢出数据存储空间,当需要增加存储块时按需统一分配即可,提高存储空间的利用效率;
(5)本发明通过构建各自的传感器变化情况记录表可以保证传感器数量变化时存放相应的线性参数,该表在传感器数量发生变化时添加新的内容,这样可以方便快速查询待查时间点的数据位于哪个逻辑页,避免单独构建一个页级表来查询数据的地址。当传感器数量增多导致需要新的物理块来额外存储,按需分配,所述传感器变化情况记录表也记录添加新的物理块之前写入了数据的物理块内部存储空间的使用情况,用于快速查询相关参数并通过计算得到逻辑页号所对应的逻辑块块内偏移;
(6)为了保证传感器数量变化时数据的正常写入和读出,本发明中将维护一张传感器变化情况记录表,该表记录了传感器数量变化的时间及变化时该类传感器已写入的数据规模,该表的内容分为时间点与逻辑页关系部分和逻辑页与逻辑块的关系部分,在该表的基础上,结合块级地址映射表通过简单计算即可得出指定时间、指定类型传感器数据的存储位置;
(7)在物联网数据采集中,由于数据根据其存放的生命周期定时进行统一删除,本发明摒弃了通用SSD中复杂的垃圾回收机制,只需要维护一张简单的坏块表即可满足需求。相较于通用SSD,这种方法还避免了数据的块间迁移操作,从而避免了数据迁移对闪存使用寿命的消耗,间接增加闪存的使用寿命。对于数据的检索操作,根据数据写入时间、传感器变化情况记录表、块级地址映射表即可快速计算出指定数据的存储位置,从而避免了传统数据库复杂的地址检索操作。
附图说明
图1为本发明的方法流程图。
图2为本发明中缓冲区的数据分布及闪存颗粒阵列的读写分布图。
图3为本实施例中数据所在块内分布示意图。
图4为本发明中按需求添加新的存储块以及更新传感器变化情况记录表的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例
本发明公开一种闪存颗粒阵列的物联网时间序列数据存储与检索方法,专门针对多类型时间序列数据的读写做了相应的改进。本发明根据各类数据的生命周期从闪存颗粒阵列中预先为其分配空间的物理块建立各自的块级地址映射表,在内存的缓冲区内将数据一页为单位组合成存储单元,缓存一定数量的数据之后并发写入预先为其分配的物理块内,写入时从第一个逻辑块开始依次往里面写入一页数据,保证一轮下来每个块的相同偏移地址出写入数据;构建传感器变化情况记录表记录下数据时间点与逻辑页号,逻辑页号与逻辑块号之间的关系参数,查询数据时根据目标数据的时间点带入传感器变化情况记录表的各个参数快速计算出目标数据所在的地址获取数据。如图1所示,包括以下步骤:
S1、根据存入数据的生命周期和单位时间采样率以及单个时间点数据的大小,预先从闪存颗粒阵列的不同闪存颗粒中为其分配物理块,并构建相应的块级地址映射表;所述存入的数据包括传感器采集的数据类型、起始时间t0、起始时间逻辑页lpnfirst、添加块次数i、逻辑页lpni、逻辑块lbni、当前总块数Xi、传感器数量m以及采样率p;所述每个物理块分配在不同的闪存内,且每个物理块只存放一类数据,并为每类数据构建一个独立的块级地址映射表;
S2、根据所述块级地址映射表,在内存的缓冲区内构建以页为大小的存储单元,并将数据按时间顺序写入至存储单元;
S3、根据对传感器的数量和采样率以及块级地址映射表的实时监控,创建和更新传感器变化情况记录表,并记录数据时间点与逻辑页号的关系参数以及逻辑页号和逻辑块号之间的关系参数。
本实施例中,数据来自传感器网络中不同类型的传感器,每条数据包含的信息为传感器的数据类型,数据的采样时间以及传感器采集到的数据。将采集到的各类数据写入到内存中的缓冲区,按时间顺序将数据以页的大小为单位对数据进行存储,在缓冲区中将数据组合成多个页之后分别写入闪存颗粒阵列中的各个闪存芯片里面,通过数据存放的生命周期预先为存入数据分配好存储的物理块,每个块都分配在不同的闪存内且只存放一类数据,为每类数据构建一个独立的块级映射表,数据以页为单位写入每个物理块。连续的逻辑页分配在各个逻辑块之内,这样能够保证写入的数据分散地写入闪存颗粒阵列中,可以很好的利用其并行结构,将数据并发写入能够充分利用数据总线的带宽,从而能够快速地存储数据。
本实施例中,如图2所示,图2是内存缓冲区的数据分布及闪存颗粒阵列的读写分布图,从图中可以看到,内存中的缓冲区,在里面为每类数据分配相应的缓冲区间,缓冲区内各个数据的区域根据其采样率和传感器的数量以及预存的时间来设置大小,在每类数据的缓冲区内存储着最近一段时间的数据,当要查询最近时间点的数据时可以直接从内存读取数据,由于闪存以页为单位进行单次写入,需要在缓冲区中将数据组合成页大小的写入单位,否则就放在缓冲区内,同时根据数据的生命周期预先为该类数据分配相应的物理块用于存储数据,假设为某类数据分配了N个物理块,每个物理块都单独处于闪存阵列的一个闪存芯片内,每次往闪存颗粒阵列内写入N页同类数据,即每个闪存内写入一页数据,写入各类数据的页将所在的物理块标记为只存储同类数据,下次写入同类数据时往物理块的下一个偏移页内写入数据,这样写入数据使每种数据在多个闪存芯片中都基本保留有自己独立的物理块,而且经过一轮页的写入保证了N个页的连续时间序列数据在物理块中的偏移量一致,便于构建逻辑页与逻辑块之间的线性映射关系。构建相对应的块级映射表,对于每类数据的地址分配,控制器根据缓冲区内数据类型的标记为每类传感器单独创建和维护一个映射表,每类数据的块级映射表写入数据之前先在N个闪存芯片上每个分配出一个干净的物理块来构建映射表,由于传感器数量和采样率的不同导致每次数据的写入量不同,每类数据的地址映射表所占的物理块的数量也会不同。映射的物理块选择在不同闪存内的物理块,这样能最大限度的利用闪存阵列的并行性进行数据的快速写入,因为闪存的数据删除是以块为单位进行的,当进行数据删除时对某个物理块的擦除不会影响其他类型的数据的映射关系,可以方便闪存的垃圾回收工作。
本实施例中,如图3所示,由于传感器的数量不是固定不变的,可能由于故障等原因造成采集到的数据量发生改变,这样就会导致查找数据的时间点和逻辑页号之间的线性关系发生变化,因为查找数据时是通过时间点计算出逻辑页号,再通过逻辑页和逻辑块之间的地址分配方法来求得数据所在的页地址在块中的位置,当传感器数量不发生变化时,通过一个固定的线性关系式就可以计算出相应的逻辑页号,当其发生变化时需要重构相应的查询关系式,这时需要为每类数据单独建立一个传感器变化情况记录表,该表中包含的信息有当前类型数据传感器的数量,采样率,当前数量和采样率下的起始时间以及当前逻辑页号,即传感器的数量等没发生改变时输入数据的起始时间,该表每当检测到传感器数量发生改变时自动生成新的一行数据,由于传感器数量变化的情况不会频繁发生,该表的日常维护和更新也比较方便,里面记录了时间和逻辑页,逻辑页和逻辑块之间线性关系式的各个参数,便于后面查询时能快速找到对应时间点的数据。连续的时间数据存放在连续的逻辑页里面,由于写入的数据分散在闪存颗粒阵列的一个闪存芯片里面,通过这样的写入方式能够最大化地利用闪存颗粒阵列的并行结构进行数据的写入和读取。逻辑页和逻辑块之间的关系式也会由于传感器的数量增加添加额外的物理块用于存储多出来的数据而发生变化,传统逻辑页和逻辑块之间由静态分配来决定逻辑页在哪个逻辑块内,这样需要提前知道有多少个块用来存储,扩展性不好,本发明中通过传感器变化情况记录表来记录逻辑页与逻辑块之间的关系参数,假设传感器数量增加之前其映射表中有N个块,后面有添加了新的物理块用来存放数据,通过该表来记录之前N个块内存储空间的使用情况,添加新的物理块之前最后一个逻辑页号对应的逻辑块号及其块内偏移,将这些信息记录在表中,该表在添加新的物理块用于存储数据时添加新的内容,新的数据按之前最后一个逻辑页写入的数据的地址偏移位后面为基准,把新的物理块加在后面按顺序依次往每个物理块内依次写一个偏移量的数据,以此循环,通过该表可以快速构建逻辑页和块之间的计算关系。
本实施例中,通过构建各自的传感器变化情况记录表可以保证传感器数量变化时存放相应的线性参数,该表在传感器数量发生变化时添加新的内容,这样可以方便快速查询待查时间点的数据位于哪个逻辑页,避免单独构建一个页级表来查询数据的地址。当传感器数量增多导致需要新的物理块来额外存储,按需分配,上述传感器变化情况记录表也记录添加新的物理块之前写入了数据的物理块内部存储空间的使用情况,用于快速查询逻辑页号和逻辑块块内偏移之间的关系。为了保证传感器数量变化时数据的正常写入和读出,本发明中将维护一张传感器变化情况记录表,该表记录了传感器数量变化的时间及变化时该类传感器已写入的数据规模,该表的内容分为时间点与逻辑页关系部分和逻辑页与逻辑块的关系部分,在该表的基础上,结合块级地址映射表通过简单计算即可得出指定时间、指定类型传感器数据的存储位置。
S4、查询传感器变化情况记录表中最后一项的关系参数,带入计算得到数据写入闪存内的偏移地址,完成对物联网时间序列数据的存储;
S5、根据查询传感器变化情况记录表中距离目标时间点之前最近的起始时间所在位置的关系参数,计算得到目标时间点数据所在的地址,完成对物联网时间序列数据的检索,其中,传感器变化情况记录表的更新条件具体为:
当传感器数量增加或减少时,更新传感器变化情况记录表;当传感器数量减少时,不更新当前总块数Xi;当传感器数量增加,且需添加新的物理块用于保存数据时,更新当前总块数Xi;
所述步骤S4包括如下步骤:
S401、根据步骤S3得到的关系参数以及传感器变化情况记录表检索目标时间点的数据;
S402、查询与目标时间点最接近的初始时间,并根据所述最接近的初始时间以及记录表时间点与逻辑页的关系参数计算得到目标逻辑页号;
所述目标逻辑页号的表达式如下:
其中,LPN表示目标逻辑页号,tn表示目标时间点,t0表示传感器变化情况表记录下变化前最后的时间点,m表示传感器变化后的数量,p表示传感器的采样率,lpnfirst表示数据存放的最后的逻辑页号;
S403、根据所述目标逻辑页与传感器变化情况记录表中记录的最近的逻辑页号进行比较计算出差值;
S404、利用差值计算得到目标时间点数据所在的逻辑块号及其偏移位;
所述目标时间点数据所在的逻辑块号的表达式如下:
lpnlasti=lpni+Xi-lbni
其中,i表示记录表添加新块的次数,初始为0时代表刚开始为数据分配的X块物理块,以后需要为新增加的传感器额外配置物理块时添加,lpn表示目标时间点所在的逻辑页号,lpnlasti表示添加新块之前在旧块内写的最后一个偏移位的逻辑页号,lpni表示第i次添加块时数据当前数据所写入的逻辑页号,lbni表示其所在的逻辑块号,Xi表示第i次添加块之后为其分配的总块数。
如图3所示,初始分配3个物理块用于存储数据,只要在一轮写入之内,其添加新块之前就快内的最后一个偏移量都是一致的,图中在(4,5,6)这一轮数据中只要在缓冲区内写入任何一页时需要添加新的块时带入上面的式子就能得到lpnlasti=6。
所述目标时间点数据所在的偏移位offset的表达式如下:
其中,lpn表示目标时间点所在的逻辑页号,lpnlasti表示添加新块之前在旧块内写的最后一个偏移位的逻辑页号,Xi表示第i次添加块之后为其分配的总块数,Xn表示第n次添加块后的总块数,k表示添加块的次数。
S405、根据所述目标时间点数据所在的逻辑块号及其偏移位得到目标数据所在的物理地址。
本实施例中,如图4所示,图4是数据的检索阶段,由于连续的时间数据是按物理页大小进行写入的,假设一个页能存储n条某类数据,传感器的数量为m,传感器采样率为p,起始时间为t0,求得待查时间点所在的逻辑页号为里面的参数记录在传感器数量情况记录表中,该表当传感器的数量发生变化时会添加新的参数,通过查询相关参数能快速查到相关的时间点所对应的逻辑页号,之前写入时按时间顺序往每个块内依次往后写一页数据,这样可以保证每一轮写入的连续逻辑页使块内数据存储的偏移量相等,新的物理块从偏移量一开始计算,将目标数据的逻辑页号与记录表中记录的最近的逻辑页号进行比较计算出差值,利用差值可以计算出目标逻辑页号所在的逻辑块号及其偏移位,从而得到目标数据所在的物理地址。
本发明中利用分类建立多个映射表,将数据顺序写入表中连续的逻辑地址映射的物理地址中,由于每个表中的地址映射创建时优先使用不同闪存芯片内的物理块,这样可以最大化地利用闪存阵列的并行性特征,有效提高数据的并发读写速度,通过传感器变化情况记录表来记录数据查询中时间与逻辑页,逻辑页与逻辑块之间的线性关系参数,通过计算就可以快速地得到数据所在的位置,没有为各类数据额外构建索引的开销,本发明根据时间序列数据自身的特点,很好地规避了传统数据库中数据索引的维护和更新的额外开销问题和闪存存储数据写入代价过高的问题,本发明中提到了方法过滤掉了以往数据存取方法中由于考虑多方面因素的原因导致的读写效率不高的问题,专门针对时间序列数据,在基于闪存的存储中优化其数据的读写速度。
Claims (3)
1.一种闪存颗粒阵列的物联网时间序列数据存储与检索方法,其特征在于,包括以下步骤:
S1、根据存入数据的生命周期和单位时间采样率以及单个时间点数据的大小,预先从闪存颗粒阵列的不同闪存颗粒中为其分配物理块,并构建相应的块级地址映射表;
所述步骤S1中闪存颗粒阵列包括传感器采集的数据类型、起始时间t0、起始时间逻辑页lpnfirst、添加块次数i、逻辑页lpni、逻辑块lbni、添加之前的块数Xi-1、当前总块数Xi、传感器数量m以及采样率p;
S2、根据所述块级地址映射表,在内存的缓冲区内构建以页为大小的存储单元,并将数据按时间顺序写入至存储单元;
S3、根据对传感器的数量和采样率以及块级地址映射表的实时监控,创建和更新传感器变化情况记录表,并记录数据时间点与逻辑页号的关系参数以及逻辑页号和逻辑块号之间的关系参数;
所述步骤S3中传感器变化情况记录表内包括当前类型数据传感器的数量和采样率,以及当前数量和采样率下的起始时间以及起始时间所在的逻辑页号;
S4、查询传感器变化情况记录表中最后一项的关系参数,带入计算得到数据写入闪存内的偏移地址,完成对物联网时间序列数据的存储;
所述步骤S4包括如下步骤:
S401、根据步骤S3得到的关系参数以及传感器变化情况记录表检索目标时间点的数据;
S402、查询与目标时间点最接近的初始时间,并根据所述最接近的初始时间以及记录表时间点与逻辑页的关系参数计算得到目标逻辑页号;
所述步骤S402中目标逻辑页号的表达式如下:
其中,LPN表示目标逻辑页号,tn表示目标时间点,t0表示传感器变化情况表记录下变化前最后的时间点,m表示传感器变化后的数量,p表示传感器的采样率,lpnfirst表示数据存放的最后的逻辑页号,n'表示数据条数;
S403、根据所述目标逻辑页与传感器变化情况记录表中记录的最近的逻辑页号进行比较计算出差值;
S404、利用差值计算得到目标时间点数据所在的逻辑块号及其偏移位;
所述步骤S404中目标时间点数据所在的逻辑块号LBN的表达式如下:
lpnlasti=lpni+Xi-lbni
其中,i表示记录表添加新块的次数,初始为0时代表刚开始为数据分配的X块物理块,以后需要为新增加的传感器额外配置物理块时添加,lpn表示目标时间点所在的逻辑页号,lpnlasti表示添加新块之前在旧块内写的最后一个偏移位的逻辑页号,lpni表示第i次添加块时数据当前数据所写入的逻辑页号,lbni表示其所在的逻辑块号,Xi表示第i次添加块之后为其分配的总块数;
所述步骤S404中目标时间点数据所在的偏移位offset的表达式如下:
其中,lpn表示目标时间点所在的逻辑页号,lpnlasti表示添加新块之前在旧块内写的最后一个偏移位的逻辑页号,Xi表示第i次添加块之后为其分配的总块数,Xn表示第n次添加块后的总块数,k表示添加块的次数;
S405、根据所述目标时间点数据所在的逻辑块号及其偏移位得到目标数据所在物理块内的偏移地址,完成基于闪存颗粒阵列的物联网时间序列的数据存储;
S5、根据查询传感器变化情况记录表中距离目标时间点之前最近的起始时间所在位置的关系参数,计算得到目标时间点数据所在的地址,完成对物联网时间序列数据的检索。
2.根据权利要求1所述的闪存颗粒阵列的物联网时间序列数据存储与检索方法,其特征在于,所述步骤S1中每个物理块分配在不同的闪存内,且每个物理块只存放一类数据,并为每类数据构建一个独立的块级地址映射表。
3.根据权利要求1所述的闪存颗粒阵列的物联网时间序列数据存储与检索方法,其特征在于,所述步骤S3中传感器变化情况记录表的更新条件为:
当传感器数量增加或减少时,更新传感器变化情况记录表,其中:
当传感器数量减少时,不更新当前总块数Xi;
当传感器数量增加,且需添加新的物理块用于保存数据时,更新当前总块数Xi。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911404306.2A CN111158604B (zh) | 2019-12-31 | 2019-12-31 | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911404306.2A CN111158604B (zh) | 2019-12-31 | 2019-12-31 | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111158604A CN111158604A (zh) | 2020-05-15 |
| CN111158604B true CN111158604B (zh) | 2022-02-11 |
Family
ID=70559534
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911404306.2A Active CN111158604B (zh) | 2019-12-31 | 2019-12-31 | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111158604B (zh) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113918578B (zh) * | 2020-07-10 | 2024-05-24 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
| CN112506936B (zh) * | 2021-02-04 | 2021-05-07 | 杭州罗莱迪思科技股份有限公司 | 一种基于单片机的物联网硬件网关数据处理方法及系统 |
| CN113296731B (zh) * | 2021-05-25 | 2023-04-11 | 电子科技大学 | 一种基于片上网络的多通道数据采集的数据缓存方法 |
| CN114281248B (zh) * | 2021-11-29 | 2022-12-09 | 深圳三地一芯电子有限责任公司 | 一种提升ram读写性能的方法、电子设备及介质 |
| CN114610952B (zh) * | 2022-02-28 | 2023-01-13 | 广州鼎甲计算机科技有限公司 | 一种有效数据索引方法、系统、装置及存储介质 |
| CN117075824B (zh) * | 2023-10-17 | 2024-02-02 | 苏州元脑智能科技有限公司 | 存储设备的控制方法、装置以及存储设备和硬盘阵列卡 |
| CN120179573B (zh) * | 2025-05-22 | 2025-12-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种地址分配方法、装置、存储介质及电子设备 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007058624A1 (en) * | 2005-11-17 | 2007-05-24 | Chee Keng Chang | A controller for non-volatile memories, and methods of operating the memory controller |
| WO2014081719A1 (en) * | 2012-11-20 | 2014-05-30 | Peddle Charles I | Solid state drive architectures |
| WO2019028269A2 (en) * | 2017-08-02 | 2019-02-07 | Strong Force Iot Portfolio 2016, Llc | METHODS AND SYSTEMS FOR DETECTION IN AN INDUSTRIAL ENVIRONMENT OF COLLECTING INTERNET DATA FROM OBJECTS WITH LARGE DATA SETS |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040088474A1 (en) * | 2002-10-30 | 2004-05-06 | Lin Jin Shin | NAND type flash memory disk device and method for detecting the logical address |
| TWI400707B (zh) * | 2009-07-09 | 2013-07-01 | Phison Electronics Corp | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
| US8484414B2 (en) * | 2009-08-31 | 2013-07-09 | Hitachi, Ltd. | Storage system having plurality of flash packages |
| CN101930404B (zh) * | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
| JP6384095B2 (ja) * | 2013-06-06 | 2018-09-05 | 株式会社リコー | 伝送端末、プログラム、画像表示方法、伝送システム |
| TWI517181B (zh) * | 2013-12-20 | 2016-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
-
2019
- 2019-12-31 CN CN201911404306.2A patent/CN111158604B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007058624A1 (en) * | 2005-11-17 | 2007-05-24 | Chee Keng Chang | A controller for non-volatile memories, and methods of operating the memory controller |
| WO2014081719A1 (en) * | 2012-11-20 | 2014-05-30 | Peddle Charles I | Solid state drive architectures |
| WO2019028269A2 (en) * | 2017-08-02 | 2019-02-07 | Strong Force Iot Portfolio 2016, Llc | METHODS AND SYSTEMS FOR DETECTION IN AN INDUSTRIAL ENVIRONMENT OF COLLECTING INTERNET DATA FROM OBJECTS WITH LARGE DATA SETS |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111158604A (zh) | 2020-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111158604B (zh) | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 | |
| CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
| US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
| CN102364474B (zh) | 用于机群文件系统的元数据存储系统和管理方法 | |
| CN103136121B (zh) | 一种固态盘的缓存管理方法 | |
| CN106502587B (zh) | 硬盘数据管理方法和硬盘控制装置 | |
| CN111026329B (zh) | 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法 | |
| CN107368436B (zh) | 一种联合地址映射表的闪存冷热数据分离存储方法 | |
| CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
| CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
| CN104298610A (zh) | 资料储存系统及其管理方法 | |
| CN101354681A (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
| CN104598386B (zh) | 通过追踪和利用二级映射索引重复利用固态驱动器块 | |
| CN109947363A (zh) | 一种分布式存储系统的数据缓存方法 | |
| CN108121670B (zh) | 一种减少固态硬盘元数据回刷频率的映射方法 | |
| CN105955664B (zh) | 一种基于段结构的瓦记录转换层的读写方法 | |
| CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
| CN112685337B (zh) | 一种存储集群中分级缓存读写数据的方法 | |
| CN103823634B (zh) | 一种支持无随机写模式的数据处理方法及系统 | |
| CN111580754A (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
| Shen et al. | Overlapping aware zone allocation for LSM tree-based store on ZNS SSDs | |
| CN113296686B (zh) | 数据处理方法、装置、设备及存储介质 | |
| Fevgas et al. | HyR-tree: a spatial index for hybrid flash/3D XPoint storage | |
| Fevgas et al. | A study of R-tree performance in hybrid flash/3DXPoint storage | |
| CN119149445A (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 |