CN111581247B - 数据管理器、时序数据库及信息处理系统 - Google Patents
数据管理器、时序数据库及信息处理系统 Download PDFInfo
- Publication number
- CN111581247B CN111581247B CN201910944900.4A CN201910944900A CN111581247B CN 111581247 B CN111581247 B CN 111581247B CN 201910944900 A CN201910944900 A CN 201910944900A CN 111581247 B CN111581247 B CN 111581247B
- Authority
- CN
- China
- Prior art keywords
- request
- storage
- module
- data
- command
- 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
- 230000010365 information processing Effects 0.000 title claims abstract description 23
- 238000003780 insertion Methods 0.000 claims abstract description 26
- 230000037431 insertion Effects 0.000 claims abstract description 26
- 238000012217 deletion Methods 0.000 claims abstract description 19
- 230000037430 deletion Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 58
- 238000013507 mapping Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 15
- 230000001133 acceleration Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000013500 data storage Methods 0.000 description 11
- 239000007787 solid Substances 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000004064 recycling Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了数据管理器、时序数据库及信息处理系统。其中,数据管理器包括插入模块和存储模块,数据管理器接收第一命令,第一命令为插入元素、删除元素命令、搜索元素命令或替换元素命令;所述第一命令为插入元素命令时,第一命令携带第一时间标签;所述插入模块为所述第一时间标签分配所述存储模块的第一存储空间,并操作所述存储模块在所述第一存储空间内保存所述第一时间标签和第一存储地址,所述第一存储地址与所述第一时间标签对应,所述第一存储地址是用于访问与所述数据管理器耦合的存储设备的地址。
Description
技术领域
本申请涉及存储技术,特别地,涉及数据管理器、时序数据库及信息处理系统。
背景技术
时序数据库也称为时间序列数据库,用于存储和提供对时间序列数据的使用。图1A展示了时序数据库的框图。主机120耦合并使用时序数据库150。主机120使用时间序列数据访问时序数据库150。时间序列数据是带时间标签的数据。时间标签是可排序的,用传统的关系型数据库存储时间序列数据是低效的,因而通常使用专门针对时间序列数据优化的时序数据库。
时序数据库要维护时间标签与数据存储地址之间的映射。时序数据库的插入、查询、删除等操作,都涉及对时间标签与数据存储地址的映射的访问。
在插入操作中,待插入的时间序列数据包括至少时间标签与数据。时序数据库为之分配存储地址,建立时间标签与分配的存储地址之间的索引,并将数据(可选地也包括时间标签)存储在分配的存储地址指示的存储设备中。
在查询操作中,指示时序数据库根据时间标签或者时间段查询对应数据。问时序数据库从时间标签与存储地址的索引中获取匹配的存储地址,并用存储地址访问存储设备以读出数据。
在删除操作中,指示问时序数据库根据时间标签或者时间段删除对应数据。问时序数据库从时间标签与存储地址的索引中获取匹配的存储地址,并在存储设备中删除这些存储地址记录的数据,以及也删除这些存储地址对应的索引。
在申请号为201910874351.8的中国专利申请中提供了“使用加速器处理读(Get)/Put(写)请求的方法及其信息处理系统”,在申请号为201910874345.2的中国专利申请中提供了“用于聚类计算的加速器”,将其全文通过引用合并于此。
发明内容
使用问时序数据库时,访问时间标签与数据存储地址之间的映射的操作影响问时序数据库的性能。希望提供硬件加速器维护和管理对时间标签与数据存储地址之间的映射的操作,将这样的硬件加速器称为数据管理器。采用作为硬件加速器的数据管理器,提高了问时序数据库的处理速度与延迟,降低了软件管理时间标签与数据存储地址映射的开销,减少了对运营软件的主机资源的消耗。
数据管理器提供的数据存储地址,是用于存储设备的地址。从而问时序数据库包括数据管理器与存储设备。也参看图1B,展示了包括数据管理器152与存储设备154的时序数据库150。存储设备154是例如现有技术中的接收逻辑地址或物理地址以访问存储空间的存储设备,例如,固态硬盘或者OCSSD(Open-Channel SSD,开放通道固态硬盘)。特别地,在存储设备154是OCSSD时,数据管理器152还充当了存储设备的FTL(Flash TranslationLayer闪存转换层)。
数据管理器接收时间或时间范围,输出同接收的时间或时间范围对应的一个或多个数据存储地址。
当存储设备是固态硬盘或者OCSSD(以下统称为固态硬盘)时,由于固态硬盘有垃圾回收/磨损均衡等操作会改变数据的存储位置,作为响应也更新数据管理器所维护的数据存储地址。
根据本申请的数据管理器/问时序数据库是例如独立的产品,或者是例如集成到存储设备中,并将数据管理器集成到存储设备的控制部件中。
根据本申请实施例的数据管理器/问时序数据库也可应用于申请号为201910874351.8的中国专利申请中提供的“使用加速器处理读(Get)/Put(写)请求的方法及其信息处理系统”中。当读(Get)/Put(写)请求中携带了时间标签,用根据本申请实施例的数据管理器替代申请号为201910874351.8的中国专利申请中的映射管理器,并向提供了映射管理器的地址分配请求/地址获取请求中添加时间标签,以请求数据管理器提供对应的数据存储地址,并用数据存储地址访问存储设备。
根据本申请的第一方面,提供了根据本申请的第一方面的第一数据管理器,包括插入模块和存储模块,其中,所述数据管理器接收第一命令,所述第一命令为插入元素命令、删除元素命令、搜索元素命令或替换元素命令;所述第一命令为插入元素命令时,第一命令携带第一时间标签;所述插入模块为所述第一时间标签分配所述存储模块的第一存储空间,并操作所述存储模块在所述第一存储空间内保存所述第一时间标签和第一存储地址,所述第一存储地址与所述第一时间标签对应,所述第一存储地址是用于访问与所述数据管理器耦合的存储设备的地址。
根据本申请的第一方面的第一数据管理器,提供了根据本申请的第一方面的第二数据管理器,其中,所述第一存储地址为与所述数据管理器耦合的外部单元向所述数据管理器发送的;或者,所述数据管理器还包括分配模块,所述插入模块接收到所述第一命令后,向所述分配模块发送所述第一时间标签;所述分配模块接收到所述第一时间标签之后,为所述第一时间标签分配所述第一存储地址,并向所述插入模块发送所述第一存储地址。
根据本申请的第一方面的第一或第二数据管理器,提供了根据本申请的第一方面的第三数据管理器,其中,所述插入模块分配所述第一存储空间时,所述插入模块根据所述第一时间标签查找所述存储模块中的第二存储空间,并确定所述第二存储空间相邻的未保存数据的存储空间为所述第一存储空间,其中,所述第二存储空间为所述存储模块中保存的多个时间标签中与所述第一时间标签差值最小的时间标签所在的存储空间。
根据本申请的第一方面的第一或第二数据管理器,提供了根据本申请的第一方面的第四数据管理器,其中,所述插入模块从所述存储模块中分配同已保存数据的存储空间相邻的未保存数据的存储空间为所述第一存储空间。
根据本申请的第一方面的第三数据管理器,提供了根据本申请的第一方面的第五数据管理器,其中,所述插入模块按照物理地址从小到大或从大到小的顺序,读取所述存储模块中的至少一个存储空间中保存的时间标签,并在至少一个时间标签中确定与所述第一时间标签差值最小的时间标签。
根据本申请的第一方面的第一至第五数据管理器之一,提供了根据本申请的第一方面的第六数据管理器,所述第六数据管理器还包括搜索模块,所述第一命令为所述搜索元素命令或所述删除元素命令时,所述第一命令携带一个或两个第二时间标签;所述搜索模块根据所述一个或两个第二时间标签,在所述存储模块中的至少一个存储空间中,搜索与所述一个或两个第二时间标签对应的第三存储空间。
根据本申请的第一方面的第六数据管理器,提供了根据本申请的第一方面的第七数据管理器,其中,所述第一命令携带两个第二时间标签,所述两个第二时间标签分别指示了第一时刻和第二时刻,则所述搜索模块在所述至少一个存储空间中,搜索其保存的时间标签处于所述第一时刻和所述第二时刻之间的所述第三存储空间。
根据本申请的第一方面的第六数据管理器,提供了根据本申请的第一方面的第八数据管理器,其中,所述第一命令携带一个第二时间标签,若所述一个第二时间指示开始时刻,所述搜索模块在所述存储模块中保存的数据中,搜索时间标签处于所述开始时刻与最大时刻之间的所述第三存储空间;若所述一个第二时间标签包括结束时刻,所述搜索模块在所述至少一个存储空间中,搜索保存的时间标签处于最小时刻与所述结束时刻之间的所述第三存储空间;其中,所述最大时刻为所述存储模块中保存的至少一个时间标签对应的至少一个时刻中最大的时刻,所述最小时刻为所述至少一个时刻中最小的时刻。
根据本申请的第一方面的第六数据管理器,提供了根据本申请的第一方面的第九数据管理器,其中,若所述第二时间标签包括第三时刻和时间流向,则所述搜索模块根据所述时间流向确定所述第三时刻为开始时刻或结束时刻;其中,若所述时间流向表征搜索大于所述第三时刻的时间标签,则所述搜索模块确定所述第三时刻为开始时刻,所述搜索模块在所述至少一个存储空间中,搜索保存的时间标签处于所述开始时刻与最大时刻之间的所述第三存储空间;若所述时间流向表征搜索小于所述第三时刻的时间标签,则所述搜索模块确定所述第一时刻为结束时刻,所述搜索模块在所述至少一个存储空间中,搜索保存的时间标签处于最小时刻与所述结束时刻之间的所述第三存储空间。
根据本申请的第一方面的第六至第九数据管理器之一,提供了根据本申请的第一方面的第十数据管理器,还包括获取模块,所述第一命令为所述搜索元素命令时,所述搜索模块在搜索到所述第三存储空间之后,向所述获取模块发送所述第一命令和所述第三存储空间对应的物理地址;所述获取模块从所述存储模块中读取所述第三存储空间中保存的第一数据;所述获取模块读取到所述第一数据之后,向与所述数据管理器耦合的外部单元发送至少一个第二存储地址,所述第一数据包括所述至少一个第二存储地址,所述至少一个第二存储地址是用于访问所述存储设备的地址。
根据本申请的第一方面的第六至第九数据管理器之一,提供了根据本申请的第一方面的第十一数据管理器,还包括删除模块,所述第一命令为所述删除元素命令时,所述搜索模块在搜索到所述第三存储空间之后,向所述删除模块发送所述第一命令和所述第三存储空间对应的物理地址;所述删除模块从所述存储模块中获取所述第三存储空间中保存的第一数据,并操作所述存储模块删除所述第一数据;所述删除模块还向与所述数据管理器耦合的外部单元发送至少一个第二存储地址,所述第一数据包括所述至少一个第二存储地址,所述至少一个第二存储地址是用于访问所述存储设备的地址。
根据本申请的第一方面的第一至第十一数据管理器之一,提供了根据本申请的第一方面的第十二数据管理器,所述第十二数据管理器还包括替换模块,所述第一命令为替换元素命令时,所述第一命令携带的变更前的存储地址和变更后的存储地址,所述变更前的存储地址与所述变更后的存储地址都是用于访问所述存储设备的地址;所述替换模块根据所述变更前的存储地址,获取所述存储模块中存储了所述变更前的存储地址的第四存储空间,并将所述第四存储空间中的所述变更前的存储地址替换为所述变更后的存储地址。
根据本申请的第一方面的第一至第十二数据管理器之一,提供了根据本申请的第一方面的第十三数据管理器,所述存储模块根据索引值分区域保存数据,其中,具有相同索引值的数据保存在同一区域内,具有不同索引值的数据保存在不同区域内。
根据本申请的第一方面的第十三数据管理器,提供了根据本申请的第一方面的第十四数据管理器,所述第一命令还携带第一索引值,所述第一索引值指向所述存储模块中的第一区域。
根据本申请的第一方面的第十四数据管理器,提供了根据本申请的第一方面的第十五数据管理器,所述第一命令为插入元素命令时,所述插入模块确定所述第一区域内的所述第一存储空间,并操作所述存储模块在所述第一存储空间内保存所述第一时间标签和所述第一存储地址。
根据本申请的第一方面的第十四或第十五数据管理器,提供了根据本申请的第一方面的第十六数据管理器,所述映射模块根据所述第一索引值向所述插入模块提供对所述第一区域的指示;所述插入模块确定所述第一存储空间时,所述插入模块根据所述第一时间标签查找所述第一区域中的第二存储空间,以及确定所述第二存储空间相邻的未保存数据的存储空间为所述第一存储空间,其中,所述第二存储空间为所述存储模块中保存的多个时间标签中与所述第一时间标签差值最小的时间标签所在的存储空间。
根据本申请的第一方面的第十六数据管理器,提供了根据本申请的第一方面的第十七数据管理器,所述插入模块按照物理地址从小到大或从大到小的顺序,读取所述第一区域中的至少一个存储空间中保存的时间标签,并在至少一个时间标签中确定与所述第一时间标签差值最小的时间标签。
根据本申请的第一方面的第十四至第十七数据管理器之一,提供了根据本申请的第一方面的第十八数据管理器,所述第一命令为所述搜索元素命令或所述删除元素命令时,所述映射模块根据所述第一索引值向所述搜索模块提供对所述第一区域的指示;所述搜索模块根据所述一个或两个第二时间标签,在所述第一区域中的至少一个存储空间中,搜索与所述一个或两个第二时间标签对应的第三存储空间。
根据本申请的第一方面的第十八数据管理器,提供了根据本申请的第一方面的第十九数据管理器,所述第一命令携带两个第二时间标签和所述第一索引值,所述两个第二时间标签的每个分别对应于第一时刻和第二时刻,则所述搜索模块在所述第一区域中的所述至少一个存储空间中,搜索保存的时间标签处于所述第一时刻和所述第二时刻之间的所述第三存储空间。
根据本申请的第一方面的第十八数据管理器,提供了根据本申请的第一方面的第二十数据管理器,所述第一命令携带一个第二时间标签和所述第一索引值,若所述一个第二时间标签包括开始时刻,所述搜索模块在所述第一区域中保存的数据中,搜索时间标签处于所述开始时刻与最大时刻之间的所述第三存储空间;若所述一个第二时间标签包括结束时刻,所述搜索模块在所述至少一个存储空间中,搜索保存的时间标签处于最小时刻与所述结束时刻之间的所述第三存储空间;其中,所述最大时刻为所述第一区域中保存的至少一个时间标签对应的至少一个时刻中最大的时刻,所述最小时刻为所述至少一个时刻中最小的时刻。
根据本申请的第一方面的第十八数据管理器,提供了根据本申请的第一方面的第二十一数据管理器,若所述第二时间标签包括所述第一索引值、第三时刻和时间流向,则所述搜索模块根据所述时间流向信息确定所述第三时刻为开始时刻或结束时刻;其中,若所述时间流向信息表征搜索大于所述第三时刻的时间,则所述搜索模块确定所述第三时刻为开始时刻,所述搜索模块在所述至少一个存储空间中,搜索保存的时间标签处于所述开始时刻与最大时刻之间的所述第三存储空间;若所述时间流向信息表征搜索小于所述第三时刻的时间,则所述搜索模块确定所述第一时刻为结束时刻,所述搜索模块在所述至少一个存储空间中,搜索保存的时间标签处于最小时刻与所述结束时刻之间的所述第三存储空间。
根据本申请的第一方面的第十八至第二十一数据管理器之一,提供了根据本申请的第一方面的第二十二数据管理器,所述第一命令为所述搜索元素命令时,所述搜索模块在搜索到所述第三存储空间之后,向所述获取模块发送所述第三存储空间;
所述获取模块从所述第一区域中读取所述第三存储空间中保存的第一数据;
所述获取模块读取到所述第一数据之后,向与所述数据管理器耦合的外部单元发送至少一个第二存储地址,所述第一数据包括所述至少一个第二存储地址,所述至少一个第二存储地址是用于访问所述存储设备的地址。
根据本申请的第一方面的第十八至第二十一数据管理器之一,提供了根据本申请的第一方面的第二十三数据管理器,所述第一命令为所述删除元素命令时,所述搜索模块在搜索到所述第三存储空间之后,向所述删除模块发送所述第三存储空间;所述删除模块从所述第一区域中读取所述第三存储空间中保存的第一数据,并操作所述存储模块删除所述第一数据;所述删除模块还向与所述数据管理器耦合的外部单元发送至少一个第二存储地址,所述第一数据包括所述至少一个第二存储地址,所述至少一个第二存储地址是用于访问所述存储设备的地址。
根据本申请的第一方面的第十四至第二十三数据管理器之一,提供了根据本申请的第一方面的第二十四数据管理器,所述第一命令为替换元素命令时,所述第一命令携带变更前的存储地址和变更后的存储地址,所述变更前的存储地址与所述变更后的存储地址都是用于访问所述存储设备的地址;所述替换模块根据所述变更前的存储地址,获取所述第一区域中存储了所述变更前的存储地址的存储空间,并将其中从存储的所述变更前的存储地址替换为所述变更后的存储地址。
根据本申请的第二方面,提供了根据本申请的第二方面的第一时序数据库,包括数据管理器和存储设备,其中,所述时序数据库接收数据写入命令,所述数据写入命令指示待写入的数据与第一时间标签;所述数据管理器为所述数据写入命令分配第一存储地址,所述第一存储地址为用于访问所述存储设备的地址;所述数据管理器将第一存储地址和所述第一时间标签相关联地保存在第一存储空间内,所述第一存储空间为所述数据管理器内的存储空间;所述存储设备根据所述第一存储地址保存所述待写入的数据。
根据本申请的第二方面的第一时序数据库,提供了本申请第二方面的第二时序数据库,所述数据管理器中保存多个时间地址数据,所述数据管理器根据时间标签增加或减小的顺序保存所述多个时间地址数据,所述时间地址数据包括时间标签和存储地址,所述存储地址是用于访问所述存储设备的地址。
根据本申请的第二方面的第一或第二时序数据库,提供了本申请第二方面的第三时序数据库,所述时序数据库还包括处理器,所述处理器接收外部单元发送的数据处理命令,并根据所述数据处理命令生成用于所述数据管理器的第一命令,所述数据处理命令包括数据写入命令、数据删除命令、数据查询命令和数据替换命令,所述第一命令包括插入元素命令、删除元素命令、搜索元素命令和替换元素命令。
根据本申请的第二方面的第三时序数据库,提供了本申请第二方面的第四时序数据库,所述时序数据库接收数据查询命令,所述数据查询命令指示一个或两个第二时间标签,所述处理器根据所述数据查询命令生成所述第一命令,并向所述数据管理器发送所述搜索元素命令;所述数据管理器根据所述搜索元素命令携带的第二时间标签,从自身保存的数据中获取与所述第二时间标签对应的至少一个第二存储地址;所述存储设备根据所述至少一个第二存储地址提供所述至少一个第二存储地址中存放的数据。
根据本申请的第二方面的第一至第四时序数据库之一,提供了本申请第二方面的第五时序数据库,所述处理器接收数据删除命令,所述数据删除命令指示一个或两个第三时间标签,并根据所述数据删除命令生成并向所述数据管理器发送所述元素删除命令;所述数据管理器根据所述删除元素命令携带的第三时间标签,从自身保存的数据中获取与所述第三时间标签对应的至少一个第三存储地址,并删除自身保存的与所述第三时间标签和所述至少一个第三存储地址;所述存储设备删除所述第三存储地址中的存放的数据。
根据本申请的第二方面的第一至第五时序数据库之一,提供了本申请第二方面的第六时序数据库,响应于将所述存储设备中的第四存储地址的数据搬移到第五存储地址,所述处理器接收数据替换命令,所述处理器根据所述数据替换命令生成并向所述数据管理器发送替换元素命令,所述替换元素命令携带所述第四存储地址和所述第五存储地址;所述数据管理器根据所述替换元素命令将自身保存的所述第四存储地址替换为所述第五存储地址。
根据本申请的第二方面的第六时序数据库,提供了本申请第二方面的第七时序数据库,响应于将所述存储设备中的第四存储地址的数据搬移到第五存储地址,所述存储设备向所述处理器发送所述数据替换命令。
根据本申请的第二方面的第一至第六时序数据库之一,提供了本申请第二方面的第八时序数据库,所述数据管理器根据索引值分区域保存数据,具有相同索引值的数据保存在同一区域内,具有不同索引值的数据保存在不同区域内,其中,所述数据写入命令、数据查询命令、数据替换命令或数据删除命令还携带第一索引值。
根据本申请的第二方面的第一至第八时序数据库之一,提供了本申请第二方面的第九时序数据库,所述数据管理器是上述第一方面中的任意一种数据管理器。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A为现有技术中的时序数据库的示意图;
图1B为根据本申请实施例的时序数据库的框图;
图2A为本申请实施例中的数据管理器的一种结构示意图;
图2B为本申请实施例中的存储模块存放数据的一种示意图;
图3A为本申请实施例中的数据管理器的又一种结构示意图;
图3B为本申请实施例中的存储模块存放数据的又一种示意图;
图4本申请实施例的时序数据库的一种结构示意图;
图5A为本申请实施例的信息处理系统的一种结构示意图;
图5B-图5C为本申请实施例的信息处理系统处理命令的流程示意图。
具体实施方式
本申请实施例涉及数据管理器、时序数据库及信息处理系统,利用硬件实现数据管理,可以有效的改善数据存取速度。
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下具体实施方式参考附图,可以在不同的附图中使用相同的附图标记来标识相同或相似的元素。在以下的描述中,处于解释而非限制的目的,阐述了诸如特定结构、架构、接口、技术等之类的具体细节,以便提供对要求保护的发明的各种方面的透彻理解。然后,对于本领域技术人员显而易见的是,所要求保护的本申请的各种方面可以在脱离这些具体细节的其他示例中时间。在某些实施例中,省略对公职设备、电路和方法的描述,以免不必要的细节模糊对本申请的描述。
此外,各种操作将以最有助于理解说明性实施例的方式依次描述为多个离散操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖于顺序。特别地,这些操作不一定需要按呈现的顺序执行。
重复地使用短语“在各种实施例中”、“在一些实施例中”等。这些短语通常不指代相同的实施例;然而,这些短语可能指代相同的实施例。除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义的。短语“A和/或B”表示(A)、(B)或(A和B)。短语“A/B”和“A或B”表示(A)或(B)。短语“A和B中的至少一个”表示(A)、(B)或(A和B)。
图2A示例性的给出了一种数据管理器的结构示意图,如图2A所示,本申请实施例一提供了一种数据管理器200。数据管理器200能够将时间序列数据按照时间顺序进行保存和管理。该数据管理器200包括插入模块210、存储模块220、搜索模块230、获取模块240、删除模块250和替换模块260,其中,存储模块220分别与插入模块210、获取模块240、删除模块250、搜索模块230和替换模块260耦合。
图2B给出了存储模块存储数据的一种示意图。参见图2B,数据管理器200的存储模块220按时间序列数据的时间标签的时间顺序记录条目。条目包括时间标签以及同时间标签对应的用于存储设备(也参看图1B,存储设备154)的地址。可以理解地,时间序列数据包括相关联的时间标签以及数据,数据是例如采集的视频数据或其缩略图,采集的传感器数据等。可选地,存储模块220的条目记录时间标签以及用于存储设备的地址,但不记录时间序列数据中同时间标签关联的数据。由例如存储设备154存储时间序列数据中同时间标签关联的数据,并且存储的位置由存储模块220的条目中同时间标签对应的用于存储设备的地址所指示。图2B展示的时间标签1、时间标签2、……、时间标签N是按照时间增加或减小的顺序保存的,N为正整数。
返回参看图2A,数据管理器200接收外部单元发送的第一命令,执行第一命令,并将向外部单元返回第一命令的处理结果。本申请中的第一命令包括插入元素命令、删除元素命令、搜索元素命令或替换元素命令,其中,插入元素命令指示数据管理器200在存储模块220添加新的条目,删除元素命令指示数据管理器200从存储模块220删除条目,搜索元素命令指示数据管理器200从存储模块220读取指定条目,替换元素命令指示数据管理器200将存储模块220中保存的条目中记录的用于存储设备的地址替换为新的地址。
数据管理器200接收第一命令时,由插入模块210、搜索模块230或替换模块260直接接收该第一命令;或者,数据管理器还包括命令分发模块(未在图中示出),由命令分发模块接收所有的第一命令,并根据第一命令的标识或第一命令携带的数据,将第一命令发送给对应的模块;或者,命令分发模块接收外部单元发送的数据处理命令,命令分发模块根据数据处理命令生成第一命令,并将第一命令发送给对应的模块,其中,数据处理命令包括数据删除命令、数据替换命令、数据搜索命令、数据插入命令等。例如,第一命令是插入元素命令,由插入模块210接收该第一命令。又如,第一命令是替换元素命令,命令分发模块接收到该替换元素命令之后,向替换模块260发送替换元素命令。
在另一个例子中,数据处理命令是主机发送的,数据处理命令指示数据管理器200执行对应的操作,其中,数据删除命令指示删除数据管理器200内的部分或全部数据,数据替换命令指示对数据管理器200内的部分或全部数据进行替换,数据插入命令指示数据管理器200有新的数据需要进行保存,数据搜索命令指示读取数据管理器200内的部分或全部数据。命令分发模块根据接收到的数据删除命令生成并向删除模块250或搜索模块230发送删除元素命令,命令分发模块根据接收到数据插入命令生成并向插入模块210发送插入元素命令,命令分发模块根据接收到的数据替换命令生成并向替换模块260发送替换元素命令,命令分发模块根据接收到的数据搜索命令生成并向获取模块240或搜索模块230发送搜索元素命令。需要说明的是,本申请中数据管理器由硬件实现,第一命令也可以是各个模块的启动命令,例如,替换元素命令用于启动替换模块260。
根据本申请的实施例,插入元素命令携带第一时间标签,在第一命令是插入元素命令时,插入模块210为第一时间标签分配存储模块220中的第一存储空间,并操作存储模块220在第一存储空间内保存第一时间标签和第一存储地址。本申请中,存储模块220为DRAM、SDRAM等存储器件。可选地,存储模块220是用于访问外部DDR存储器的存储空间。存储模块220(或其所管理的存储器)包括多个存储空间,每个存储空间的大小相同或不同,例如每个存储空间的大小都为固定值,如8字节、16字节或数百字节。相邻的存储空间的物理地址是连续或不连续。本实施例中,第一存储空间用于保存第一时间标签和第一存储地址,第一存储地址是用于访问与数据管理器200耦合的存储设备的地址,例如,第一存储地址是存储设备中的物理地址,又如,第一存储地址是与存储设备中的物理地址对应的逻辑地址。第一存储地址与第一时间标签对应,并且第一存储地址用于保存第一命令对应的待保存的数据,第一时间标签为获取到该待保存的数据的时间信息。在一个例子中,待保存的数据时是视频数据,第一时间标签是拍摄该视频数据是的时间信息。
本实施例中,第一时间标签和第一存储地址被一起保存在存储模块220的第一存储空间内。
在一个实施例中,第一存储地址是与数据管理器200耦合的外部单元向数据管理器200发送的;或者,数据管理器200还包括分配模块(未在图中示出),插入模块210接收到第一命令之后,向分配模块发送第一时间标签。分配模块接收到第一时间标签之后,为第一时间标签分配第一存储地址,并向插入模块210发送该第一存储地址。第一存储地址指示了例如存储模块220的存储空间中尚未被使用的存储空间(第一存储空间)。例如,第一存储地址是存储设备的控制器向数据管理器发送的。需要说明的是,分配模块分配第一存储地址的方式可参见现有技术,在此不做限定。
在一些实施例中,插入模块210分配第一存储空间时,根据第一时间标签查找存储模块220中的第二存储空间,第二存储空间是存储模块220中已经保存有数据的存储空空间,并且存储模块220中保存的所有时间标签中,第二存储空间中存储的时间标签与第一时间标签的差值最小。从而第一存储空间就是第二存储空间相邻的未保存数据的存储空间,例如,第一时间标签为T1,第二存储空间内的时间标签为T2,在T1大于T2时,第一存储空间是第二存储空间相邻且按照时间增长方向的空闲存储空间,若T1小于T2,则第一存储空间是第二存储空间相邻且按照时间递减方向的空闲存储空间。
在一些实施例中,插入模块210分配的第一存储空间为存储模块220中与已经保存数据的存储空间相邻的未保存数据的存储空间。例如,第一存储空间为插入模块210对存储模块220中所有的存储空间进行搜索时,搜索到的第一个没有存储数据的存储空间。
在又一些实施例中,插入模块220按照物理地址从小到大或者从大到小的顺序,依次读取存储模块220中的至少一个存储空间中保存的时间标签,并计算至少一个时间标签中与第一时间标签差值最小的时间标签,从而确定出第二存储空间。
在各种实施例中,第一命令是搜索元素命令或删除元素命令时,此时的第一命令携带一个或两个第二时间标签。本实施方式中,搜索元素命令指示读取存储模块220中的部分或全部数据,而删除元素命令指示删除存储模块220中的部分或全部数据,从而在执行删除元素命令时也需要先获取存储模块220中待删除的数据的存储空间,为了简化硬件的实现难度,本实施方式中采用搜索模块230来实现搜索存储空间的功能。具体为,搜索模块230根据一个或两个第二时间标签,在存储模块220的至少一个存储空间内,搜索与一个或两个第二时间标签对应的第三存储空间。
在一些实施例中,第一命令携带了两个第二时间标签,这两个第二时间标签分别是指了第一时刻和第二时刻,则搜索模块230对至少一个存储空间内保存的时间标签进行搜索,保存的时间标签在第一时刻和第二时刻之间的存储空间即为第三存储空间。例如,第一时刻为T3,第二时刻为T4,T4大于T3,存储模块中保存有3个时间标签,分别指示了时刻T5,时刻T6和时刻T7,其中,T3<T5<T6<T4<T7,则第三存储空间为T5和T6对应的两个存储空间。
在又一些实施例中,第一命令仅携带一个第二时间标签,若第二时间标签指示了一个开始时刻,该开始时刻表示所需的数据的开始时间,从而搜索模块230在存储模块220保存的所有时间标签中,搜索时间标签处于开始时刻和所有时间标签中指示的最大时刻之间的存储空间,其中,最大时刻是存储模块220保存的所有时间标签对应的时刻中最大的时刻。
若第二时间标签指示了一个结束时刻,该结束时刻表征所需的数据的结束时间,从而搜索模块230在存储模块220保存的所有时间标签中,搜索时间标签处于所有时间标签中指示的最小时刻和结束时刻之间的存储空间,其中,最小时刻是存储模块220保存的所有时间标签对应的时刻中最小的时刻。在一个实施例中,第一命令仅携带一个第二时间标签,该第二时间标签包括第三时刻和时间流向,则搜索模块能够根据时间流向确定第三时刻是开始时刻或者结束时刻。在时间流向表征搜索大于第三时刻的时间标签,第三时刻为开始时刻,搜索模块230在存储模块220保存的所有时间标签中,搜索时间标签处于第三时刻和所有时间标签中指示的最大时刻之间的存储空间。在时间流向表征搜索小于第三时刻的时间标签时,第三时刻是结束时刻,搜索模块230在存储模块220保存的所有时间标签中,搜索时间标签处于所有时间标签中指示的最小时刻和第三时刻之间的存储空间。在第一命令是搜索元素命令时,在搜索模块230搜索到第三存储空间之后,向获取模块240发送第三存储空间对应的地址,从而获取模块240根据该地址访问第三存储空间,并读取第三存储空间中保存的第一数据。获取模块240读取到的第一数据为第二存储地址、或者第二存储地址和时间标签。获取模块240读取到第一数据之后,向数据管理器200耦合的外部单元发送至少一个第二存储地址,从而外部单元可以根据第二存储地址访问存储设备。例如,获取模块240向数据管理器200耦合的主机或处理器发送至少一个第二存储地址,以使得主机或处理器通过第二存储地址访问存储设备,并读取第二存储地址中保存的数据。
而在第一命令是删除元素命令时,在搜索模块230搜索到第三存储空间之后,向删除模块250发送和第三存储空间对应的物理地址。删除模块250操作存储模块220删除第三存储空间存储的第一数据。一些例子中,存储模块220中的第一数据被删除,但存储设备中同第一数据所记录的存储地址并不需要被删除,而是在对存储设备进行垃圾数据回收时再回收同第一数据所记录的存储地址对应的存储空间。
不同的存储设备存放数据的方式不同,例如,存储设备是固态硬盘时,由于固态硬盘会进行垃圾回收,也就是,固态硬盘中保存的数据会变更存储地址,为了保证数据丢失或需要长时间来查找数据,本申请的各种实施例中,在第一命令是替换元素命令时,替换元素命令携带变更前的存储地址和变更后的存储地址,替换模块260接收到该替换元素命令后,从存储模块220中获取存储变更前的存储地址的第四存储空间,并第四存储空间中保存的存储地址替换为变更后的存储地址。本实施例中,变更前的存储地址和变更后的存储地址用于访问存储设备中的不同物理地址,但变更前的存储地址和变更后的存储地址对应于相同的数据。
图3A给出了数据管理器的又一种结构示意图。参见图3A,在又一实施例中,数据管理器300包括插入模块310、存储模块320、搜索模块330、获取模块340、删除模块350、替换模块360和命令分发模块370。存储模块320根据索引值(Index)而分区域保存数据。索引值是例如申请号为201910874351.8或201910874345.2的中国专利申请中所定义的索引值。
图3B中给出了存储模块320中的分区域保存数据的示意图。其中,具有相同索引值的数据保存在同一区域内,具有不同索引值的数据保存在不同的区域内。每个区域内,数据仍旧按照时间顺序保存。
根据图3A与图3B的实施例,相对于图2A与图2B的实施例,第一命令还携带第一索引值,第一索引值指向存储模块320中第一区域。例如,共有4个索引值,分别是索引值1、索引值2、索引值3和索引值4,则存储模块320分为四个区域。若第一索引值为索引值2,则第一区域为索引值2对应的区域。
本实施例中,命令分发模块370接收到第一命令之后,根据第一索引值获取存储模块320中的第一区域的地址,并将第一命令和第一区域的地址一起发送给对应的模块,从而其他模块可以直接找到第一区域,简化其他模块的操作。
在第一命令是插入元素命令时,插入模块310从第一区域内的至少一个存储空间中确定第一存储空间,并操作存储模块320在第一存储空间内保存第一时间标签和第一存储地址。具体的,插入模块310接收到第一区域的地址之后,可以根据该地址直接访问第一区域,并从第一区域内查找第二存储空间,确定第二存储空间相邻未保存数据的存储空间为第一存储空间,其中,第二存储空间为第一区域内保存的多个时间标签中与第一时间标签超值最小的时间标签所在的存储空间。
在另一实施例中,插入模块310接收携带第一索引值的第一命令,则插入模块310根据第一索引值,在存储模块320中确定查找第一区域,然后从第一区域内的至少一个存储空间中确定第一存储空间,并操作存储模块320在第一存储空间内保存第一时间标签和第一存储地址。插入模块310确定第一存储空间的方法可以参考上述实施例中插入模块210的确定第一存储空间的方法,在此不进行详细描述。
在一些实施例中,插入模块310按照物理地址从小到大或者从大到小的顺序,依次读取至少一个存储空间中保存的时间标签,并计算每一个时间标签与第一时间标签的差值,确定出与第一时间标签差值最小的时间标签。
在又一些实施例中,在第一命令时搜索元素命令或删除元素命令时,命令分发模块370将第一命令及第一区域的地址发送给搜索模块330。搜索模块330根据一个或两个第二时间标签,在第一区域的至少一个存储空间中,搜索与一个或两个第二时间标签对应的第三存储空间。
在第一命令携带两个第二时间标签时,两个第二时间标签分别对应于第一时刻和第二时刻,搜索模块330在第一区域内的至少一个存储空间中,搜索保存的时间标签在第一时刻和第二时刻之间的第三存储空间。
在第一命令携带一个第二时间标签时,第一命令仅携带一个第二时间标签,若第二时间标签指示了一个开始时刻,该开始时刻表示所需的数据的开始时间,从而搜索模块330在第一区域内保存的所有时间标签中,搜索时间标签处于开始时刻和最大时刻之间的存储空间,其中,最大时刻是第一区域内保存的所有时间标签对应的时刻中最大的时刻。
若第二时间标签指示了一个结束时刻,该结束时刻表征所需的数据的结束时间,从而搜索模块330在第一区域保存的所有时间标签中,搜索时间标签处于最小时刻和结束时刻之间的存储空间,其中,最小时刻是第一区域保存的所有时间标签对应的时刻中最小的时刻。在一个实施例中,第一命令仅携带一个第二时间标签,该第二时间标签包括第三时刻和时间流向,则搜索模块330能够根据时间流向确定第三时刻是开始时刻或者结束时刻。在时间流向表征搜索大于第三时刻的时间标签,第三时刻为开始时刻,搜索模块330在第一区域保存的所有时间标签中,搜索时间标签处于第三时刻和最大时刻之间的存储空间。在时间流向表征搜索小于第三时刻的时间标签时,第三时刻是结束时刻,搜索模块230在第一区域保存的所有时间标签中,搜索时间标签处于最小时刻和第三时刻之间的存储空间。
搜索模块330搜索第三存储空间的方式可参见上述实施例中搜索模块230的方式,区别仅在于,搜索模块330是在第一区域内的搜索,搜索模块230是在存储模块220中搜索,在此不再赘述。
可选的,在第一命令是搜索元素命令时,在搜索模块330搜索到第三存储空间之后,向获取模块340发送第三存储空间对应的地址,从而获取模块340根据该地址访问第三存储空间,并读取第三存储空间中保存的第一数据。获取模块340读取到的第一数据为第二存储地址、或者第二存储地址和时间标签。获取模块340读取到第一数据之后,向数据管理器300耦合的外部单元发送至少一个第二存储地址,从而外部单元可以根据第二存储地址访问存储设备。
而在第一命令是删除元素命令时,在搜索模块330搜索到第三存储空间之后,向删除模块350发送第一命令和第三存储空间对应的地址。删除模块350操作存储模块320删除第三存储空间的第一数据。
可选地,在删除模块350获取到第一数据之后,向与数据管理器300耦合的外部单元发送所删除的第一数据所记录的至少一个第二存储地址,从而外部单元根据第二存储地址访问存储设备,并删除第二存储地址中保存的数据。依然可选地,存储模块320中的第一数据被删除,但存储设备中同第一数据所记录的存储地址并不需要被删除,而是在对存储设备进行垃圾数据回收时再回收同第一数据所记录的存储地址对应的存储空间。
在各种实施例中,在第一命令是替换元素命令时,命令分发模块向替换模块360发送第一区域的地址和该替换元素命令,替换元素命令携带变更前的存储地址和变更后的存储地址。替换模块360接收到该替换元素命令和该第一区域的物理地址之后,从第一区域中获取存储变更前的存储地址的第四存储空间,并第四存储空间中保存的存储地址替换为变更后的存储地址。图4给出了根据本申请实施例的时序数据库结构示意图。如图4所示,在一个实施例中,时序数据库400包括接口410、处理器420、存储设备430、数据管理器440和存储设备430动态存储器450。数据管理器440可以采用上述实施例中的数据管理器200或数据管理器300。存储设备430为固态硬盘SSD(包括OC SSD、KV SSD等)、机械硬盘HDD等。接口410接收客户端直接或通过网络发送的操作时序数据库的命令,接口410将操作时序数据库的命令发送给处理器420。处理器420运行的软件根据解说的操作时序数据库的命令,操作数据管理器440与存储设备430来完成操作时序数据库的命令并通过接口410给出命令处理结果。
处理器420将操作时序数据库转换为适用于数据管理器440的第一命令和/或适用于存储设备430的第二命令,并向数据管理器440发送第一命令和/或向存储设备430发送第二命令。
在一个实施例,时序数据库400接收数据写入命令,该数据写入命令指示第一时间标签和待写入的数据。时序数据库400处理该数据写入命令并保存待写入的数据,其中,处理器420生成插入元素命令,并发送给数据管理器440。
数据管理器440根据插入元素命令分配第一存储地址,第一存储地址是用于访问存储设备430的地址。数据管理器440将第一存储地址和第一时间标签进行关联,并将关联后的第一存储地址和第一时间标签保存在自身的第一存储空间内。数据管理器440还将分配的执行插入元素命令分配的第一存储地址发送给处理器420。处理器420再根据收到的第一存储地址向存储设备430发送第二命令,以指示存储设备430存储数据写入命令指示的待写入的数据。存储设备430则将待写入的数据保存在第一存储地址对应的存储空间内。
数据管理器440中保存多个时间地址数据,数据管理器440根据时间标签对应的时间增长或递减的顺序保存多个时间地址数据,时间地址数据包括时间标签和存储地址,该存储地址是用于访问存储设备430的地址。
在一个实施例中,时序数据库400接收数据查询命令,该数据查询命令指示了一个或两个第二时间标签,处理器420根据数据查询命令生成搜索元素命令,并向数据管理器440发送搜索元素命令。数据管理器440接收到该搜索元素命令之后,根据搜索元素命令携带的第二时间标签,从自身保存的数据中获取与第二时间标签对应的至少一个第二存储地址。数据管理器440将至少一个第二存储地址发送给处理器420。处理器420再根据收到的至少一个第二存储地址向存储设备430发送第二命令,第二命令是读取命令,以指示存储设备430从至少一个第二存储地址读出数据作为对数据查询命令的响应。
存储设备430在接收到该读取命令之后,根据至少一个第二存储地址提供至少一个第二存储地址中的数据。例如,客户端460向时序数据库400发送数据查询命令,则存储设备430通过接口410向客户端460提供至少一个第二存储地址中的数据。
在一个实施例中,时序数据库400接收数据删除命令,该数据删除命令指示一个或两个第三时间标签。处理器420根据数据删除命令生成删除元素命令,并将向数据管理器440发送该删除元素命令。数据管理器440接收到删除元素命令后,根据第三时间标签,获取自身保存的与第三时间标签对应的至少一个第三存储地址,并删除自身保存至少一个第三存储地址和第三时间标签。
在一个例子中,数据管理器440向处理器420指示删除元素命令处理完成,据此处理器420识别出数据删除命令处理完成,而无须再删除存储设备中一个第三存储地址处保护的数据。
可选地,数据管理器440将至少一个第三存储地址发送给存储设备430。处理器420也根据数据删除命令与一个第三存储地址指示存储设备430删除第三存储地址中保存的数据。
在各种实施例中,时序数据库400还接收数据替换命令,该数据替换命令是存储设备430或者存储设备430的存储控制器响应于存储设备430中的第四存储地址中的数据搬移到第五存储地址生成的。处理器420根据该数据替换命令生成替换元素命令,该数据替换命令和替换元素命令均携带第四存储地址和第五存储地址。处理器420将替换元素命令发送给数据管理器440,数据管理器440将自身保存的第四存储地址替换为第五存储地址。
在另一实施例中,数据管理器440根据索引值分区域保存数据,具有相同索引值的数据保存在同一区域内,具有不同索引值的数据保存在不同区域内。时序数据库400接收到的数据处理命令还携带第一索引值,第一索引值指向数据管理器440中的第一区域。具体来讲,数据处理命令携带第一索引值时,处理器420根据数据处理命令生成携带第一索引值的第一命令。
图5A示出了信息处理系统的一种可能的结构。如图5A所示的本申请实施例提供了信息处理系统500,包括主机510、加速器530、处理器550、存储设备520和数据管理器540。本实施例中的数据管理器550采用上述实施例中的数据管理器,或者,信息处理系统500采用上述实施例二中的时序数据库400、加速器530和主机510实现。
本实施例中,主机510根据接口函数,生成及向处理器550发送第一请求,第一请求包括读请求和写请求,第一请求携带关键字和时间标签,或第一请求携带关键字、时间标签和与关键字对应的第一索引值,读请求包括读索引请求、读数据请求和携带索引的读数据请求,写请求包括写数据请求和携带索引的写数据请求;处理器550根据第一请求生成第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求或存储设备的访问请求中的一项或多项;处理器550使用第二请求操作加速器530、数据管理器540和存储设备520中的至少一者,以完成第二请求的处理,并得到第一请求的处理结果并返回给主机。需要说明的是,本实施例中的第一请求包括数据处理命令,第二请求包括第一命令。例如,第一请求为读请求,则第一请求包括数据搜索请求,从而处理器550生成的第二请求为搜索元素命令。又如,访问请求包括数据插入请求和数据获取请求。下文中的第一请求均可以理解为数据处理命令,第二请求均理解为第一命令。
在一个实施例中,第一请求为携带索引的写数据请求时,第一请求携带关键字、时间标签和第一索引值,处理器550生成地址分配请求和访问请求;第一请求为写数据请求时,第一请求携带关键字和时间标签,处理器550生成聚类请求、地址分配请求和访问请求。
图5B给出了信息处理系统500执行写数据请求的一种流程图。
申请号为201910874351.8的中国专利申请中提供了“使用加速器处理读(Get)/Put(写)请求的方法及其信息处理系统”,其中对键值(key)、索引值(Index)和特征值(Vector)做了解释。信息处理系统要处理多种数据。例如视频、图片、文本文件等是非结构化数据。非结构化不便于检索和使用。为了便于检索或使用,对非结构化数据进行结构化处理。例如,对原始数据添加标签,以指示原始数据的来源、格式、存储位置、所需的访问权限等结构化信息。作为又一个例子,对原始数据的内容进行分析,例如从视频或图片中提取、缩略图、摘要,提取诸如人像、汽车等物体,提取人面部特征、身高、性别、年龄等特征,提取汽车品牌、车牌照等特征。与原始数据关联的标签、特征等都作为结构化处理生成的结构化信息。结构化信息是便于检索的,通过现有技术的数据库或搜索引擎技术,或者现有或将来出现的其他搜索技术对结构化信息进行检索。
将结构化信息中的一种或多种标签和/或特征作为键,将结构化信息所关联的数据和/或结构化信息本身作为值,通过KV存储设备得以记录、访问和检索非结构化数据。申请号为2018102074169、发明名称为KV存储的键与值的生成方法与装置的中国专利申请提供了利用机器学习部件生成键的方法。
使用机器学习部件处理例如人脸图片的数据,将得到关联于特定人脸图片的特征值(也称为向量)。对多幅图片的每个通过机器学习部件生成特征值。相比于数据,特征值具有较小的尺寸,例如,64字节~4KB。
在KV存储系统中,采用输入键值(key)来检索数据(value)。为了便于检索及便于获取数据,本申请实施例中,键值、索引值和特征值本质上都是用于数据的索引,即键值、索引值和特征值本质上都可以叫做特征值,区别在于,索引值是预先配置的,键值是由用户输入主机的且在第一请求中携带的,而特征值是根据数据计算的。具体来讲,根据信息处理系统要存储的数据种类不同,特征值的形式也不同。例如,要存储的数据为图像数据,特征值为对图像处理后得到的向量(vector)。对图像数据处理以获取特征值的方式可参见现有技术,在此不做限定。
而对多个特征值实施聚类,会得到特征值的多个组。每个组包括1个或多个特征值。用索引值代表特征值的每个组。例如,将属于相同组的多个特征值求平均值后得到的中心值(也就是平均值)作为代表该组的索引值。相反,与索引值的距离小于预设阈值的特征值则可看做是属于索引值所代表的组的特征值。
在读(Get)/写(Put)请求中,除了指示关键字(Key),还可以指示时间标签(Time)。在图5B中,主机510向处理器550发送携带关键字和时间标签的写数据请求(Put(Key,Time)),处理器550生成向加速器530发送的聚类请求、向数据管理器540发送的插入元素命令(也叫作申请号为201910874351.8的中国专利申请中的“地址分配请求”)、以及向存储设备520发送的访问请求。
在一些实施例中,第一请求为携带索引的读数据请求时,第一请求携带关键字、时间标签和第一索引值,处理器550生成地址获取请求、访问请求和搜索请求;第一请求为读数据请求时,第一请求携带关键字和时间标签,处理器550生成聚类请求、地址获取请求、访问请求和搜索请求;第一请求为读索引请求时,第一请求携带关键字,处理器550仅生成聚类请求。图5C给出了信息处理系统500执行读数据请求的一种流程图。如图5C所示,主机510向处理器550发送携带了关键字和时间标签的读数据请求(Get(Key,Time)),处理器550生成向加速器530发送的聚类请求和搜索请求、向数据管理器540发送的搜索元素命令(也叫作申请号为201910874351.8的中国专利申请中的“地址获取请求”)、以及向存储设备520发送的访问请求。
在一些实施例中,若处理器550生成的第二请求包括插入元素命令和访问请求,处理器550向数据管理器540发送携带了关键字和时间标签的插入元素命令;数据管理器540根据插入元素命令携带的时间标签,为同关键字关联的数据分配第一存储地址,将第一存储地址和时间标签相关联地保存并向处理器550返回第一存储地址;处理器550向存储设备520发送携带第一存储地址的访问请求,以指示存储设备520根据第一存储地址保存同关键字关联的数据。
在一些实施例中,若处理器550生成的第二请求包括聚类请求、插入元素命令和访问请求,处理器550向加速器530发送聚类请求,并获取加速器530返回的第一索引值;处理器550向数据管理器540发送携带了第一索引值、关键字和时间标签的插入元素命令;数据管理器根据插入元素命令携带的时间标签以及第一索引值,为同关键字关联的数据分配第一存储地址,将第一存储地址和时间标签相关联地保存并向处理器550返回第一存储地址;处理器550向存储设备520发送携带了第一存储地址的访问请求,以指示存储设备520根据第一存储地址保存同关键字关联的数据。
在一些实施例中,若处理器550生成的第二请求仅包括聚类请求,处理器550向加速器530发送聚类请求,并获取加速器530返回的第一索引值,以及处理器550向主机510返回第一索引值作为第一请求的处理结果。
在一些实施例中,若处理器550生成的第二请求包括搜索元素命令、访问请求和搜索请求,处理器550向数据管理器540发送携带了第一索引值和时间标签的搜索元素命令;数据管理器540根据时间标签以及第一索引值从自身保存的数据获取与时间标签以及第一索引值对应的至少一个第二存储地址,并向处理返回至少一个第二存储地址;处理器550用至少一个第二存储地址访问存储设备520,以获取存储设备520返回的至少一个特征值;处理器550向加速器530发送指示了关键字与至少一个特征值的搜索请求,以获取加速器530从至少一个特征值中筛选与关键字对应的至少一个第一特征值,并向处理器550返回至少一个第一特征值,第一特征值为与关键字的距离小于预设阈值的特征值或至少一个第一特征值为至少一个特征值中同关键字的距离最小的M个特征值,M大于等于1;处理器550向主机510返回至少一个第一特征值作为第一请求的处理结果。
在一些实施例中,如图5C所示,若处理器550生成的第二请求包括聚类请求、搜索元素命令、访问请求和搜索请求,处理器550向加速器发送聚类请求,并获取加速器返回的第一索引值;处理器550向数据管理器540发送携带了第一索引值和时间标签的搜索元素命令;数据管理器540根据时间标签与第一索引值从自身保存的数据获取与第一索引值对应的至少一个特征值的至少一个第二存储地址,并向处理器550返回至少一个存储地址;处理器550用至少一个第二存储地址访问存储设备520,例如,处理器550向存储设备520发送数据读取请求和至少一个第二存储地址,以获取存储设备520返回的至少一个特征值;处理器550向加速器530发送指示了关键字和至少一个特征值的搜索请求,并获取加速器530返回的至少一个第一特征值,第一特征值为与关键字的距离小于预设阈值的特征值或至少一个第一特征值为至少一个特征值中同关键字的距离最小的M个特征值,M大于等于1;处理器550向主机510返回至少一个第一特征值,作为第一请求的处理结果。
在各种实施例中,处理器550响应于从存储设备520接收用于表征完成关键字的存储的完成信息,向主机510指示第一请求的处理完成。
在一些实施例中,如图5B所示,若处理器550生成的第二请求包括聚类请求、地址分配请求和访问请求,处理器550根据第一请求生成聚类请求,并向加速器530发送聚类请求;响应于聚类请求,加速器530确定与关键字对应的第一索引值,并向处理器550返回第一索引值;处理器550接收到第一索引值之后,根据第一请求和第一索引值生成插入元素命令,并向数据管理器540发送插入元素命令;响应于插入元素命令,数据管理器540根据第一索引值和时间标签为关键字分配第一存储地址,并向处理器550返回第一存储地址,第一存储地址用于访问存储设备520;处理器550接收到第一存储地址之后,根据第一请求和第一存储地址生成存储设备的数据插入命令,并向存储设备520发送数据插入命令;响应于该数据插入命令,存储设备520根据第一存储地址保存同关键字关联的数据。
在各种实施例中,接口函数携带请求的类型、关键字和第一索引值中的至少一者。
在各种实施例中,若处理器550生成的第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和访问请求中的至少两项请求,处理器550根据第一请求一次性生成至少两项请求;或者,处理器550根据第一请求分成多次生成至少两项请求。
本申请实施例四提供了一种主机,包括应用程序模块、API接口模块、管理模块、加速驱动模块、映射驱动模块和硬盘驱动模块,其中,应用程序模块调用API接口模块提供的API以提供时间标签;管理模块根据被调用API,向加速驱动模块、映射驱动模块和硬盘驱动模块中的至少一个发送驱动请求;若接收到驱动请求,加速驱动模块操作与自身耦合的加速器,并向管理模块返回第一操作结果;若接收到携带了时间标签的驱动请求,映射驱动模块操作与自身耦合的数据管理器,并向管理模块返回的第二操作结果;若接收到驱动请求,硬盘驱动模块操作与自身耦合的存储设备,并向管理模块返回的第三操作结果;管理模块接收到第一操作结果、第二操作结果或第三操作结果之后,通过API接口模块向应用程序模块返回用于指示被调用API调用完成的信息。
在一个实施例中,第一操作结果指示同关键字对应的第一索引值,关键字是应用程序调用API提供的关键字;第二操作结果指示访问存储设备的一个或多个存储地址;第三操作结果指示存储设备处理完成对一个或多个地址的写入操作,或者从存储设备读出的第一特征值,第一特征值为与关键字的距离小于预设阈值的特征值或至少一个第一特征值为至少一个特征值中同关键字的距离最小的M个特征值,M大于等于1。
本申请实施例五提供了一种信息处理方法,包括:响应于收到指示了关键字(Key)与时间标签(time)的第一请求,生成一个或多个第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;根据一个或多个第二请求的处理结果,生成第一请求的处理结果。
在一个实施例中,聚类请求指示获取X个索引值中同关键字之间的距离最小的一个索引值,其中X是正整数;搜索请求指示获取N个特征值中同关键字之间距离最小的M个特征值,其中M与N是正整数;地址分配请求指示获取同时间标签以及关键字和/或第一索引值对应的一个或多个存储地址;地址获取请求指示获取同时间标签以及关键字对应的存储了X个索引值的一个或多个存储地址;存储设备的访问请求指示存储设备访问一个或多个存储地址。
在一个实施例中,若第一请求是调用Get(Key,time)API产生的指示了关键字的请求,根据关键字生成聚类请求,使用聚类请求返回的索引值与时间标签(time)生成地址获取请求,根据地址获取请求返回的存储地址生成存储设备的访问请求,根据存储设备的访问请求返回的X个索引值生成搜索请求,根据搜索请求返回的M个特征值作为第一请求的处理结果。
在一个实施例中,若第一请求是调用Get_With_Index(Key,Index,time)API产生的指示了关键字与索引值的请求,根据索引值与时间标签(time)生成地址获取请求,根据地址获取请求返回的存储地址生成存储设备的访问请求,根据存储设备的访问请求返回的X个索引值生成搜索请求,根据搜索请求返回的M个特征值作为第一请求的处理结果。
在各种实施例中,若第一请求是调用Get_Index(Key)API产生的指示了关键字的请求,根据关键字生成聚类请求,并使用聚类请求返回的索引值作为第一请求的处理结果。
在各种实施例中,若第一请求是调用Put(Key,time)API产生的指示了关键字的请求,根据关键字生成聚类请求,使用聚类请求返回的索引值与关键字与时间标签(time)生成地址分配请求,根据地址分配请求返回的存储地址生成存储设备的访问请求以将同关键字对应的数据写入存储设备。
在各种实施例中,若第一请求是调用Put_With_Index(Key,Index,time)API产生的指示了关键字与索引值的请求,根据索引值与关键字与时间标签(time)生成地址分配请求,根据地址分配请求返回的存储地址生成存储设备的访问请求以将同关键字对应的数据写入存储设备。
本申请实施例六提供了一种信息处理系统,包括:第一模块,用于响应于收到指示了关键字(Key)与时间标签(Time)的第一请求,生成一个或多个第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;第二模块,用于根据一个或多个第二请求的处理结果,生成第一请求的处理结果。
本申请实施例七提供了一种信息处理系统,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现以下步骤:响应于收到指示了关键字(Key)与时间标签(Time)的第一请求,生成一个或多个第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;根据一个或多个第二请求的处理结果,生成第一请求的处理结果。
本申请实施例八提供了一种信息处理系统,包括主机、加速器、数据管理器和存储设备,其中,加速器、数据管理器和存储设备各自耦合到主机;主机根据第一请求生成第二请求,第二请求包括聚类请求、搜索请求、携带了时间标签(Time)的地址分配请求、携带了时间标签(Time)的地址获取请求和存储设备的访问请求中的一项或多项;主机使用第二请求操作加速器、数据管理器和存储设备中的至少一者,以完成一项或多项第二请求的处理,以得到第一请求的处理结果。本实施例中的信息处理系统的工作方式可参见实施例三中的信息处理系统,区别在于,本实施例中的信息处理系统不包括实施例四种的处理器,该实施例四中的处理器实现的功能由主机实现。
在一个实施例中,主机的应用程序产生携带了时间标签(Time)的第一请求;主机的管理程序根据第一请求生成第二请求;第一请求包括读请求或写请求,第一请求携带关键字、或第一请求携带关键字和与关键字对应的索引值。
在一些实施例中,若第一请求为调用Put_With_Index(Key,Index,time)API产生的携带了时间标签(Time)、关键字和第一索引值的请求,主机生成地址分配请求和存储设备的访问请求;或者,若第一请求为调用Put(Key)API产生的携带了关键的写请求,主机生成聚类请求、地址分配请求和存储设备的访问请求。
在一些实施例中,若第一请求为调用Get_With_Index(Key,Index,time)API产生的携带了时间标签(Time)、关键字与索引值的读请求,主机生成地址获取请求、存储设备的访问请求和搜索请求;或者,若第一请求为调用Get(Key,Time)API产生的携带了时间标签(Time)与关键字的读请求,主机生成聚类请求、地址获取请求、存储设备的访问请求和搜索请求;或者,第一请求为调用Get_Index(Key)API产生的读请求,处理器550仅生成聚类请求。
在一些实施例中,若主机生成的第二请求包括地址分配请求和存储设备的访问请求,主机向数据管理器发送地址分配请求,并获取数据管理器提供的存储地址;主机向存储设备发送携带了存储地址的存储设备的访问请求,以指示存储设备根据存储地址保存同关键字关联的数据。
在一些实施例中,若主机生成的第二请求包括聚类请求、地址分配请求和访问请求,主机向加速器发送聚类请求,并获取加速器返回的第一索引值;主机向数据管理器发送携带了所获取的时间标签(time)以及第一索引值和/或关键字的地址分配请求,并获取数据管理器根据第一索引值为关键字分配的存储地址;主机向存储设备发送携带了存储地址的存储设备的访问请求,以指示存储设备根据存储地址保存同关键字关联的数据。
在一些实施例中,若主机生成的第二请求仅包括聚类请求,主机向加速器发送聚类请求,并获取加速器返回的第一索引值;以及主机将第一索引值作为第一请求的处理结果。
在一些实施例中,若主机生成的第二请求包括地址获取请求、访问请求和搜索请求,主机向数据管理器发送携带了所获取的第一索引值与时间标签(time)的地址获取请求,并获取数据管理器返回的与第一索引值对应的至少一个特征值的至少一个存储地址;主机用至少一个存储地址访问向存储设备,并获取存储设备返回的至少一个特征值;主机向加速器发送指示了关键字与至少一个特征值的搜索请求,以获取加速器从至少一个特征值中筛选与关键字对应的至少一个第一特征值,并向处理器返回至少一个第一特征值,第一特征值为与关键字的距离小于预设阈值的特征值或至少一个第一特征值为至少一个特征值中同关键字的距离最小的M个特征值,M大于等于1;主机将至少一个第一特征值作为第一请求的处理结果。
在一些实施例中,若主机生成的第二请求包括聚类请求、地址获取请求、访问请求和搜索请求,主机向加速器发送聚类请求,并获取加速器返回的第一索引值;主机向数据管理器发送携带了所获取的第一索引值的地址获取请求,并获取数据管理器返回的与第一索引值对应的至少一个特征值的至少一个存储地址;主机用至少一个存储地址访问存储设备以获取存储设备返回的至少一个特征值;主机向加速器发送指示了关键字和至少一个特征值的搜索请求,并获取加速器返回的至少一个第一特征值,第一特征值为与关键字的距离小于预设阈值的特征值或至少一个第一特征值为至少一个特征值中同关键字的距离最小的M个特征值,M大于等于1;主机将至少一个第一特征值作为第一请求的处理结果。
在另一些实施例中,主机响应于从存储设备接收用于表征完成关键字的存储的完成信息,识别出第一请求的处理完成。
在各种实施例中,接口函数携带请求的类型、关键字和第一索引值中的至少一者。
在各种实施例中,若主机生成的第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和访问请求中的至少两项请求,主机根据第一请求一次性生成至少两项请求;或者,主机根据第一请求分成多次生成至少两项请求。
在各种实施例中,若主机生成的第二请求包括聚类请求、地址分配请求和访问请求,主机根据第一请求生成聚类请求,并向加速器发送聚类请求;响应于聚类请求,加速器确定与关键字对应的第一索引值,并向主机返回第一索引值;主机接收到第一索引值之后,根据第一请求、第一索引值与时间标签(time)生成地址分配请求,并向数据管理器发送地址分配请求;响应于地址分配请求,数据管理器根据第一索引值为关键字分配存储地址,并向主机返回存储地址,存储地址用于访问存储设备;主机接收到存储地址之后,根据第一请求和存储地址生成存储设备的访问请求,并向存储设备发送存储设备的访问请求;响应于存储设备的访问请求,存储设备根据存储地址保存关键字。
本申请实施例九提供了一种信息处理方法,包括:根据第一请求生成第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;使用第二请求操作加速器、数据管理器和存储设备中的至少一者,以完成一项或多项第二请求的处理,以得到第一请求的处理结果。
本申请实施例十提供了一种信息处理系统,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现以下步骤:根据第一请求生成第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;使用第二请求操作加速器、数据管理器和存储设备中的至少一者,以完成一项或多项第二请求的处理,以得到第一请求的处理结果。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种时序数据库,其特征在于,包括数据管理器、处理器和存储设备,其中,
所述时序数据库接收数据写入命令,所述数据写入命令指示待写入的数据与第一时间标签;
所述处理器根据所述数据写入命令生成用于所述数据管理器的第一命令,所述第一命令是插入元素命令、删除元素命令、搜索元素命令或替换元素命令;
所述数据管理器接收第一命令,所述第一命令为插入元素命令时,所述第一命令携带第一时间标签;
所述数据管理器根据所述插入元素命令分配第一存储地址,所述第一存储地址用于访问所述存储设备;
所述数据管理器将第一存储地址和所述第一时间标签相关联地保存在自身的第一存储空间内;
所述数据管理器将所述第一存储地址发送给所述处理器;
所述处理器根据收到的第一存储地址向所述存储设备发送第二命令,以指示所述存储设备存储所述数据写入命令指示的待写入的数据;
所述存储设备根据所述第一存储地址保存所述待写入的数据。
2.如权利要求1所述的时序数据库,其特征在于,包括插入模块和存储模块,其中,
所述插入模块根据所述第一时间标签分配所述存储模块的第一存储空间,操作所述存储模块在所述第一存储空间内保存所述第一时间标签和第一存储地址,所述第一存储地址与所述第一时间标签对应。
3.如权利要求2所述的时序数据库,其特征在于,所述插入模块搜索所述第一存储空间时,所述插入模块根据所述第一时间标签查找所述存储模块中的第二存储空间,并确定所述第二存储空间相邻的未保存数据的存储空间为所述第一存储空间,其中,所述第二存储空间为所述存储模块中保存的多个时间标签中与所述第一时间标签差值最小的时间标签所在的存储空间
4.如权利要求2或3所述的时序数据库,还包括搜索模块,所述第一命令为所述搜索元素命令或所述删除元素命令时,所述第一命令携带一个或两个第二时间标签;
所述搜索模块根据所述一个或两个第二时间标签,在所述存储模块中的至少一个存储空间中,搜索与所述一个或两个第二时间标签对应的第三存储空间。
5.如权利要求4所述的时序数据库,其特征在于,所述的数据管理器,还包括删除模块,所述第一命令为所述删除元素命令时,所述搜索模块在搜索到所述第三存储空间之后,向所述删除模块发送所述第一命令和所述第三存储空间对应的物理地址;所述删除模块从所述存储模块中获取所述第三存储空间中保存的第一数据,并操作所述存储模块删除所述第一数据;所述删除模块还向与所述数据管理器耦合的外部单元发送至少一个第二存储地址,所述第一数据包括所述至少一个第二存储地址,所述至少一个第二存储地址是用于访问所述存储设备的地址。
6.如权利要求2或3所述的时序数据库,还包括替换模块,其特征在于,所述第一命令为替换元素命令时,所述第一命令携带的变更前的存储地址和变更后的存储地址,所述变更前的存储地址与所述变更后的存储地址都是用于访问所述存储设备的地址;
所述替换模块根据所述变更前的存储地址,获取所述存储模块中存储了所述变更前的存储地址的存储空间,并将其中从存储的所述变更前的存储地址替换为所述变更后的存储地址。
7.一种信息处理系统,其特征在于,包括主机、加速器、处理器、存储设备和数据管理器,其中,
所述主机根据接口函数,生成及向所述处理器发送第一请求,所述第一请求包括读请求和写请求,所述第一请求携带关键字和时间标签、或所述第一请求携带所述关键字、所述时间标签和与所述关键字对应的第一索引值,所述读请求包括读索引请求、读数据请求和携带索引的读数据请求,所述写请求包括写数据请求和携带索引的写数据请求;
所述处理器根据所述第一请求生成第二请求,所述第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求或存储设备的访问请求中的一项或多项;
所述处理器使用所述第二请求操作所述加速器、所述数据管理器和所述存储设备中的至少一者,以完成所述第二请求的处理,并得到所述第一请求的处理结果并返回给所述主机;其中,
所述数据管理器接收所述第二请求,所述第二请求为插入元素命令时,所述第二请求携带第一时间标签;
所述数据管理器根据所述插入元素命令分配第一存储地址,所述第一存储地址用于访问所述存储设备;
所述数据管理器将第一存储地址和所述第一时间标签相关联地保存在自身的第一存储空间内;
所述数据管理器将所述第一存储地址发送给所述处理器。
8.一种主机,包括应用程序模块、API接口模块、管理模块、加速驱动模块、映射驱动模块和硬盘驱动模块,其中,所述应用程序模块调用所述API接口模块提供的API以提供时间标签;所述管理模块根据被调用API,向所述加速驱动模块、映射驱动模块和硬盘驱动模块中的至少一个发送驱动请求;
若接收到所述驱动请求,所述加速驱动模块操作与自身耦合的加速器,并向所述管理模块返回的第一操作结果;若接收到携带了所述时间标签的所述驱动请求,所述映射驱动模块操作与自身耦合的数据管理器,并向所述管理模块返回的第二操作结果;若接收到所述驱动请求,所述硬盘驱动模块操作与自身耦合的存储设备,并向所述管理模块返回的第三操作结果;所述管理模块接收到第一操作结果、第二操作结果或第三操作结果之后,通过所述API接口模块向所述应用程序模块返回用于指示所述被调用API调用完成的信息;其中,
所述数据管理器接收主机发送的地址分配请求,所述地址分配请求携带第一时间标签;
所述数据管理器根据所述地址分配请求分配第一存储地址,所述第一存储地址用于访问所述存储设备;
所述数据管理器将第一存储地址和所述第一时间标签相关联地保存在自身的第一存储空间内;
所述数据管理器将所述第一存储地址作为第二操作结果发送给所述管理模块。
9.一种信息处理方法,应用于时序数据库,包括:响应于收到指示了关键字(Key)与时间标签(time)的第一请求,生成一个或多个第二请求,第二请求包括聚类请求、搜索请求、地址分配请求、地址获取请求和存储设备的访问请求中的一项或多项;使用所述第二请求操作加速器、数据管理器和存储设备中的至少一者,以完成所述第二请求的处理得到一个或多个第二请求的处理结果;其中,
所述数据管理器接收所述第二请求,所述第二请求为插入元素命令时,所述第二请求携带第一时间标签;
所述数据管理器根据所述插入元素命令分配第一存储地址,所述第一存储地址用于访问所述存储设备;
所述数据管理器将第一存储地址和所述第一时间标签相关联地保存在自身的第一存储空间内;
所述数据管理器将所述第一存储地址作为所述第二请求的处理结果;
根据一个或多个第二请求的处理结果,生成第一请求的处理结果。
10.根据权利要求9所述的信息处理方法,还包括:所述聚类请求指示获取X个索引值中同所述关键字最接近的索引值,其中X是正整数;所述搜索请求指示获取N个特征值中同所述关键字最接近的M个特征值,其中M与N是正整数;所述地址分配请求指示获取同所述时间标签以及所述关键字和/或第一索引值对应的一个或多个存储地址;所述地址获取请求指示获取同所述时间标签以及所述关键字对应的存储了所述X个索引值的一个或多个存储地址;所述存储设备的访问请求指示存储设备访问所述一个或多个存储地址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210238661.2A CN114625780A (zh) | 2019-10-01 | 2019-10-01 | 一种时序数据库 |
CN201910944900.4A CN111581247B (zh) | 2019-10-01 | 2019-10-01 | 数据管理器、时序数据库及信息处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944900.4A CN111581247B (zh) | 2019-10-01 | 2019-10-01 | 数据管理器、时序数据库及信息处理系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210238661.2A Division CN114625780A (zh) | 2019-10-01 | 2019-10-01 | 一种时序数据库 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581247A CN111581247A (zh) | 2020-08-25 |
CN111581247B true CN111581247B (zh) | 2022-04-01 |
Family
ID=72111359
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210238661.2A Pending CN114625780A (zh) | 2019-10-01 | 2019-10-01 | 一种时序数据库 |
CN201910944900.4A Active CN111581247B (zh) | 2019-10-01 | 2019-10-01 | 数据管理器、时序数据库及信息处理系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210238661.2A Pending CN114625780A (zh) | 2019-10-01 | 2019-10-01 | 一种时序数据库 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114625780A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
CN116069870A (zh) * | 2023-04-06 | 2023-05-05 | 深圳开鸿数字产业发展有限公司 | 基于分布式系统的数据存储方法、装置、设备及介质 |
CN116860722B (zh) * | 2023-08-31 | 2023-11-14 | 中国科学院软件研究所 | 一种数据库持久化组织优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761190A (zh) * | 2013-12-19 | 2014-04-30 | 华为技术有限公司 | 数据处理方法及装置 |
CN105260404A (zh) * | 2015-09-22 | 2016-01-20 | 北京百度网讯科技有限公司 | 存储时间序列数据的方法和装置 |
CN106250322A (zh) * | 2016-08-12 | 2016-12-21 | 华为技术有限公司 | 一种写数据的方法和装置 |
CN110275838A (zh) * | 2018-03-16 | 2019-09-24 | 北京忆芯科技有限公司 | Kv存储设备的地址转换及其加速器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340685B2 (en) * | 2004-01-12 | 2008-03-04 | International Business Machines Corporation | Automatic reference note generator |
US7529795B2 (en) * | 2006-03-20 | 2009-05-05 | Stragent, Llc | Message board aggregator |
CN102890722B (zh) * | 2012-10-25 | 2015-03-11 | 国家电网公司 | 应用于时序历史数据库的索引方法 |
CN103514249B (zh) * | 2013-06-20 | 2016-12-28 | 易乐天 | 一种数据自精简方法和系统及存储装置 |
CN111868707A (zh) * | 2018-03-13 | 2020-10-30 | 谷歌有限责任公司 | 在关系数据库的主键中包括事务提交时间戳 |
-
2019
- 2019-10-01 CN CN202210238661.2A patent/CN114625780A/zh active Pending
- 2019-10-01 CN CN201910944900.4A patent/CN111581247B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761190A (zh) * | 2013-12-19 | 2014-04-30 | 华为技术有限公司 | 数据处理方法及装置 |
CN105260404A (zh) * | 2015-09-22 | 2016-01-20 | 北京百度网讯科技有限公司 | 存储时间序列数据的方法和装置 |
CN106250322A (zh) * | 2016-08-12 | 2016-12-21 | 华为技术有限公司 | 一种写数据的方法和装置 |
CN110275838A (zh) * | 2018-03-16 | 2019-09-24 | 北京忆芯科技有限公司 | Kv存储设备的地址转换及其加速器 |
Non-Patent Citations (2)
Title |
---|
Efficient indexing data structures for flash-based sensor devices;Song Lin;《ACM Transactions on Storage》;20061231;第2卷(第4期);第468-503页 * |
基于IEC 61850的时序数据库系统设计;胡鹏飞;《电子测量技术》;20180630;第41卷(第11期);第51-57页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114625780A (zh) | 2022-06-14 |
CN111581247A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
CN111581247B (zh) | 数据管理器、时序数据库及信息处理系统 | |
CN108804510B (zh) | 键值文件系统 | |
CN107273522B (zh) | 面向多应用的数据存储系统和数据调用方法 | |
US8176233B1 (en) | Using non-volatile memory resources to enable a virtual buffer pool for a database application | |
US20140181119A1 (en) | Method and system for accessing files on a storage system | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
CN111309720A (zh) | 时序数据的存储、读取方法、装置、电子设备及存储介质 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
US5860079A (en) | Arrangement and method for efficient calculation of memory addresses in a block storage memory system | |
JP2000347982A (ja) | 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体 | |
CN107133334B (zh) | 基于高带宽存储系统的数据同步方法 | |
US10558636B2 (en) | Index page with latch-free access | |
CN113805864A (zh) | 一种项目工程的生成方法、装置、电子设备及存储介质 | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN107102900B (zh) | 一种共享内存空间的管理方法 | |
CN111930684A (zh) | 基于hdfs的小文件处理方法、装置、设备及存储介质 | |
CN103810114A (zh) | 分配存储空间的方法及装置 | |
US8028011B1 (en) | Global UNIX file system cylinder group cache | |
CN106970964B (zh) | 基于共享内存的gps数据信息查询方法及系统 | |
US20190087440A1 (en) | Hierarchical virtual file systems for accessing data sets | |
CN111581441B (zh) | 用于聚类计算的加速器 | |
CN113268201B (zh) | 基于文件属性的缓存管理方法和装置 | |
CN118394762B (zh) | 分布式存储系统的存储管理方法、设备、程序产品及介质 | |
US20240362192A1 (en) | Update method and database update apparatus |
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 |