CN110765290A - 图片存储方法、读取方法、装置及存取系统 - Google Patents

图片存储方法、读取方法、装置及存取系统 Download PDF

Info

Publication number
CN110765290A
CN110765290A CN201911015328.XA CN201911015328A CN110765290A CN 110765290 A CN110765290 A CN 110765290A CN 201911015328 A CN201911015328 A CN 201911015328A CN 110765290 A CN110765290 A CN 110765290A
Authority
CN
China
Prior art keywords
picture
file name
reading
read
storage
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.)
Pending
Application number
CN201911015328.XA
Other languages
English (en)
Inventor
周威
周杰
穆合义
王璞
周非
卓俊伍
黎莉
谢文辉
陈志德
刘萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Mach Valley Technology Co Ltd
Hunan Super Cloud Mdt Infotech Ltd
Hunan Provincial Public Security Department
Original Assignee
Beijing Mach Valley Technology Co Ltd
Hunan Super Cloud Mdt Infotech Ltd
Hunan Provincial Public Security Department
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Mach Valley Technology Co Ltd, Hunan Super Cloud Mdt Infotech Ltd, Hunan Provincial Public Security Department filed Critical Beijing Mach Valley Technology Co Ltd
Priority to CN201911015328.XA priority Critical patent/CN110765290A/zh
Publication of CN110765290A publication Critical patent/CN110765290A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种图片存储方法、读取方法、装置及存取系统,图片存储方法包括:接收图片,包括图片ID及图片数据;根据图片ID生成存储文件名;将图片数据以追加的形式存入存储文件名所指的磁盘文件的末尾;生成包括图片ID、存储文件名及图片数据在磁盘文件中存储位置的索引记录。图片读取方法包括:接收读取请求,包括多个图片ID;根据每个图片ID生成对应的读取文件名;在索引记录中查找图片ID对应的图片数据的存储位置以生成读记录;将读取文件名相同的读记录汇总生成第一读队列;根据读记录中存储位置的渐变顺序将第一读队列的多个读记录进行排序以生成第二读队列;按照第二读队列中读记录的顺序依次读取图片数据。

Description

图片存储方法、读取方法、装置及存取系统
技术领域
本发明涉及数据存储技术领域,尤其涉及一种图片存储方法、读取方法、装置及存取系统。
背景技术
由视频获取装置(摄像头)获取的图片的大小通常在几十KB(=210字节)到几MB(=220字节)之间,图片存取系统能对这些小文件进行存储和读取操作,是典型的海量小文件存取系统。该系统不但要面临图片的持续写入,还要处理大量并发的图片查询请求,这对整个系统的存储能力、索引能力都是很大的挑战。
系统中储存图片数据的装置是磁盘,在存储/读取图片数据时,需要磁臂带动磁头移动到盘片里指定的扇区进行读/写操作,每个扇区都有编号,相邻的扇区顺序编号。
每次存储/读取图片数据的速度主要由磁臂移动的距离决定,磁臂移动的距离越短,存储/读取的速度越快。由于按扇区编号顺序读/写的时候磁臂移动的距离最短,这时存储/读取图片数据的速度最快。但多数时候,图片数据在盘片上的存储位置是分散的,并且客户端并发请求的多个图片数据的位置可能位于磁盘的任意扇区,在分散的存储位置存储/读取图片数据会造成磁盘的随机读/写,从而导致磁盘的读/写性能降低。
发明内容
本发明提供一种图片存储方法、读取方法、装置及存取系统,能防止磁盘的读/写性能降低。
本发明提供的一种图片存储方法,包括:接收图片,所述图片包括图片ID及图片数据;根据所述图片ID生成存储文件名;将所述图片数据以追加的形式存入所述存储文件名所指的磁盘文件的末尾;生成包括所述图片ID、所述存储文件名及所述图片数据在所述磁盘文件中存储位置的索引记录。
进一步地,根据所述图片ID生成存储文件名包括:将所述图片ID代入哈希公式计算生成第一值;在哈希表中查找与所述第一值相同的哈希值对应的目标文件名;将所述目标文件名作为所述存储文件名;所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名。
可选地,在接收图片步骤前,所述图片存储方法还包括:将所述存储文件名所指的磁盘文件的索引节点信息驻留在内存中。
本发明提供的一种图片读取方法,包括:接收读取请求,所述读取请求中包括多个图片ID;根据每个所述图片ID生成对应的读取文件名;在索引记录中查找所述图片ID对应的图片数据的存储位置以生成读记录;所述读记录包括一个所述图片ID、对应的所述读取文件名及所述存储位置;将所述读取文件名相同的所述读记录汇总生成第一读队列;根据所述读记录中所述存储位置的渐变顺序将所述第一读队列的多个所述读记录进行排序以生成第二读队列;按照所述第二读队列中所述读记录的顺序依次读取所述图片数据。
进一步地,所述存储位置的渐变顺序包括地址偏移量从小到大的顺序或者地址偏移量从大到小的顺序。
进一步地,根据所述图片ID生成对应的读取文件名包括:将所述图片ID代入哈希公式计算生成第一值;在哈希表中查找与所述第一值相同的哈希值对应的目标文件名;将所述目标文件名作为所述读取文件名;所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名。
可选地,在接收读取请求步骤前,所述图片读取方法还包括:将所述读取文件名所指的磁盘文件的索引节点信息驻留在内存中。
本发明提供的一种图片存储装置,包括:第一接收模块,用于接收图片,所述图片包括图片ID及图片数据;第一文件名生成模块,用于根据所述图片ID生成存储文件名;数据追加模块,用于将所述图片数据以追加的形式存入所述存储文件名所指的磁盘文件的末尾;索引生成模块,用于生成包括所述图片ID、所述存储文件名及所述图片数据在所述磁盘文件中存储位置的索引记录。
进一步地,所述第一文件名生成模块包括:第一哈希计算单元,用于将所述图片ID代入哈希公式计算生成第一值;第一文件名查找单元,用于在哈希表中查找与所述第一值相同的哈希值对应的目标文件名,所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名;第一文件名确定单元,用于将所述目标文件名确定为所述存储文件名。
可选地,所述图片存储装置还包括第一文件开启模块,用于在接收图片前,将所述存储文件名所指的磁盘文件的索引节点信息驻留在内存中。
本发明提供的一种图片读取装置,包括:第二接收模块,用于接收读取请求,所述读取请求中包括多个图片ID;第二文件名生成模块,用于根据每个所述图片ID生成对应的读取文件名;索引查找模块,用于在索引记录中查找所述图片ID对应的图片数据的存储位置以生成读记录;所述读记录包括一个所述图片ID、对应的所述读取文件名及所述存储位置;读记录汇总模块,用于将所述读取文件名相同的所述读记录汇总生成第一读队列;读记录排序模块,用于根据所述读记录中所述存储位置的渐变顺序将所述第一读队列的多个所述读记录进行排序以生成第二读队列;数据读取模块,用于按照所述第二读队列中所述读记录的顺序依次读取所述图片数据。
进一步地,所述第二文件名生成模块包括:第二哈希计算单元,用于将所述图片ID代入哈希公式计算生成第二值;第二文件名查找单元,用于在哈希表中查找与所述第一值相同的哈希值对应的目标文件名,所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名;第二文件名确定单元,用于将所述目标文件名确定为所述读取文件名。
可选地,所述图片读取装置还包括第二文件开启模块,用于在接收读取请求前,将所述读取文件名所指的磁盘文件的索引节点信息驻留在内存中。
本发明提供的一种图片存取系统,包括:图片存储装置,用于接收图片,所述图片包括图片ID及图片数据,再根据所述图片ID生成存储文件名,然后将所述图片数据以追加的形式存入所述存储文件名所指的磁盘文件的末尾,最后生成包括所述图片ID、所述存储文件名及所述图片数据在所述磁盘文件中存储位置的索引记录;图片读取装置,用于接收读取请求,所述读取请求中包括多个图片ID,再根据每个所述图片ID生成对应的读取文件名,然后在索引记录中查找所述图片ID对应的图片数据的存储位置以生成读记录,所述读记录包括一个所述图片ID、对应的所述读取文件名及所述存储位置,接着将所述读取文件名相同的所述读记录汇总生成第一读队列,随后根据所述读记录中所述存储位置的渐变顺序将所述第一读队列的多个所述读记录进行排序以生成第二读队列,最后按照所述第二读队列中所述读记录的顺序依次读取所述图片数据。
本发明提供的图片存储方法、读取方法、装置及存取系统中,图片存储方法根据接收到的图片ID生成存储文件名,使得接收到的图片数据能以追加的形式存入该存储文件名所指的磁盘文件的末尾,由于单个文件在磁盘里所占用的扇区是连续的,将图片数据追加到磁盘文件末尾,也就是使图片数据在文件内按顺序存储,存储过程中,磁臂移动的距离最短,从而有效防止了磁盘写性能的降低。
图片读取方法为并发读取方法,能根据接收到的每一个图片ID生成对应的读取文件名,当然,生成读取文件名的方法应与图片存储过程中生成存储文件名的方法相同,以保证准确地读取到所需的文件;随后通过图片ID和对应的读取文件名可以在索引记录里查找到该图片的图片数据存储位置,从而生成读记录,其中的索引记录是在存储该图片时建立的,包括图片ID、存储文件名以及存储位置;所有图片的读记录生成后,可以将读取文件名相同的读记录汇总成为第一读队列,随后根据每个记录中存储位置的渐变顺序(变大或变小)进行排序,生成第二读队列,即该队列中的每个读记录是按存储位置的渐变顺序排列的,最后按照该排列顺序依次读取每个读记录存储位置上的图片数据。由于单个文件在磁盘里占用的扇区是连续的,按存储位置的渐变顺序读取图片时,磁臂的移动距离最短,从而有效防止了磁盘读性能的降低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种图片存储方法的流程框图;
图2为图1所示的图片存储方法的流程示意图;
图3为本发明实施例提供的一种图片读取方法的流程框图;
图4为图3所示的图片读取方法的流程示意图;
图5为本发明实施例提供的一种图片存储装置的结构方框图;
图6为本发明实施例提供的一种图片读取装置的结构方框图;
图7为本发明实施例提供的一种图片存取系统的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的技术方案更加清楚,以下结合附图对本发明的实施例进行详细说明。
图1为本发明实施例提供的一种图片存储方法的流程框图,图2为图1所示的图片存储方法的流程示意图,如图1和图2所示,本发明实施例提供的图片存储方法包括如下步骤。
101、接收图片,该图片包括图片ID及图片数据。
具体地,该图片存储方法的执行主体是图片存储装置,具体可以是互联网中一个负责管理图片存取的服务器。由视频获取装置(摄像头)获取的图片可以发送至该服务器,由服务器将其存储于互联网上的一个磁盘中。服务器接收到的图片包括图片ID和图片数据,其中,图片ID能唯一标识该图片,以区别于其它图片,而图片数据包含了该图片的信息,具体的数据格式与视频获取装置有关,可以是jpg、gif等。图2中P1、P2、……、Pn分别代表不同的图片,数字1、2、……、n代表各个图片的图片ID,图片P1的图片数据为D1,图片P2的图片数据为D2,以此类推,图片Pn的图片数据为Dn。
102、根据图片ID生成存储文件名。
具体地,通过设置生成方法可以将图片散列到不同的文件中,从而使一个文件中可包含多个图片的图片数据。也就是说,采用该生成方法后,有多个不同的图片ID可以生成同一个存储文件名,随后可以把这些图片ID对应的图片数据存入该存储文件名所指的磁盘文件中,形成一个大文件。由于图片的大小通常在几十KB到几MB之间,属于小文件,小文件的频繁读写会导致磁盘带宽利用率低的问题,通过利用图片ID生成存储文件名的方法可以将多个图片的图片数据组合成大文件,对大文件的读写可以避免带宽利用率低问题的发生。如图2所示,为了简化起见,根据图片P1、P2、……、Pn的图片ID生成的存储文件名均为f1。
103、将图片数据以追加的形式存入存储文件名所指的磁盘文件的末尾。
如上所述,一个文件中会存储多个图片ID对应的图片数据,图片存储装置每收到一个图片,都会根据图片ID生成存储文件名,以便把图片分配进该存储文件名所指的磁盘文件中,如果该磁盘文件中已经存储有若干个图片数据,新收到图片的图片数据就会追加到该磁盘文件的末尾,使得图片数据按照接收到的先后,在磁盘文件中顺序存储,这样使得磁臂沿一个方向连续移动,移动的距离最少。如图2所示,接收到的图片ID为1、2、……、n的顺序,则磁盘文件f1中图片数据Dn位于文件末尾。
104、生成包括图片ID、存储文件名及图片数据在磁盘文件中存储位置的索引记录。
具体地,为了便于查找已存储的图片数据,需要在存储图片数据后建立索引记录,该索引记录包括图片ID,由该图片ID生成的存储文件名,以及该图片ID对应的图片数据在磁盘文件中的存储位置。该存储位置具体为地址偏移量,即图片数据的第一个字节相对于磁盘文件第一个字节偏移的字节数。如图2所示的表格中,每一行是一条索引记录,从左至右第一个单元格是图片ID,第二个单元格是存储文件名,第三个单元格是存储位置,即地址偏移量(offset)。offset1是图片P1的存储位置、offset2是图片P2的存储位置、offsetn是图片Pn的存储位置。
本发明实施例提供的图片存储方法中,根据接收到的图片ID生成存储文件名,使得接收到的图片数据能以追加的形式存入该存储文件名所指的磁盘文件的末尾,由于单个文件在磁盘里所占用的扇区是连续的,将图片数据追加到磁盘文件末尾,也就是使图片数据在文件内按顺序存储,存储过程中,磁臂移动的距离最短,从而有效防止了磁盘写性能的降低。另外,存储图片数据后,还生成了图片数据存储位置与图片ID、存储文件名的索引记录,便于查找该图片。
再者,通过适当地设置生成存储文件名的方法,可以使接收到的图片能按照图片ID散列到多个文件,每个文件具有不同的存储文件名,多个图片的图片数据汇合成一个大文件,在访问(读/写)该文件时,可提升磁盘的带宽利用率。
上述实施例提供的图片存储方法中,根据图片ID生成存储文件名的方法具体可包括如下步骤。
1021、将图片ID代入哈希公式计算生成第一值。
具体地,哈希(Hash)是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出。因此,利用哈希公式计算,可以将多个不同的图片ID转换成相同的第一值。
1022、在哈希表中查找与第一值相同的哈希值对应的目标文件名,其中,哈希表包括多个哈希值及对应每一个哈希值的目标文件名。
具体地,哈希表是预先设定的、描述哈希值与目标文件名关系的表格,常驻留在内存里,便于随时访问。通过设定,由哈希公式计算获得的第一值在这个表格中都可以查到与之相同的哈希值,而且每一个哈希值都有与之对应的目标文件名。也就是说,任何一个图片ID通过哈希计算和查哈希表均可以唯一确定一个与之对应的目标文件名。
1023、将目标文件名作为存储文件名。
具体地,通过查哈希表获得的目标文件名作为存储文件名,使图片存储装置可以在存储文件名所指的磁盘文件中存储图片数据。由于多个不同的图片ID可生成相同的第一值,使得多个不同的图片数据可以存入相同的存储文件名所指的磁盘文件中,以形成大文件,避免磁盘带宽利用率低的问题。
上述实施例中在接收图片步骤(步骤101)之前,图片存储方法还可以包括:将存储文件名所指的磁盘文件的索引节点信息驻留在内存中。
通常在接收图片之前,图片存储装置已设定有生成存储文件名的方法,使得接收到的图片ID通过该设定的方法生成指定的存储文件名,也就是说存储文件名也是预先设定而成的。在后续的根据存储文件名来存储图片数据的过程中,需要对存储文件名所指的磁盘文件进行写操作,按照常规操作,每进行一次写操作就要将磁盘文件的索引节点信息(比如文件的创建者、文件的创建日期、文件的大小等)读入内存。当写操作频繁时,索引节点信息的读入操作就会大量消耗系统资源。因此,通过在接收图片步骤前,将所有存储文件名所指的磁盘文件的索引节点信息加载并驻留在内存里,可以避免频繁地读入索引节点信息。
图3为本发明实施例提供的一种图片读取方法的流程图,图4为图3所示的图片读取方法的流程示意图。如图3和图4所示,本发明实施例提供的图片读取方法包括如下步骤。
201、接收读取请求,该读取请求中包括多个图片ID。
具体地,该图片读取方法的执行主体是图片读取装置,具体可以是互联网中一个负责管理图片存取的服务器。通常读取请求为并发请求,即同时请求读取多个图片,因此该读取请求包括多个图片ID。图片ID能唯一标识该图片,以区别于其它图片。图4中,请求同时读取P1、P2、P3、P4、P5、P6、P7、P8这8张图片。数字1、2、3、4、5、6、7、8代表各个图片的图片ID。
202、根据每个图片ID生成对应的读取文件名。
具体地,该生成读取文件名的方法应与生成存储文件名的方法相同,以保证准确地读取到所需的文件。如图4所示,假设图片P1、P2、P5、P6的图片ID生成的读取文件名为f1,图片P3、P4、P7、P8的图片ID生成的读取文件名为f2。由于生成读取文件名的方法与生成存储文件名的方法保持一致,因此在图4的索引表中,图片P1、P2、P5、P6的存储文件名与上述的读取文件名一致,均为f1,图片P3、P4、P7、P8的存储文件名与上述的读取文件名一致,均为f2。
203、在索引记录中查找图片ID对应的图片数据的存储位置以生成读记录,其中,读记录包括一个图片ID、对应的读取文件名及存储位置。
具体地,索引记录是在图片存储方法中生成的,如上述实施例所述,索引记录包括:图片ID、根据该图片ID生成的存储文件名、该图片ID对应的图片数据在存储文件名所指的磁盘文件中的存储位置。图片数据包含了一张图片的信息,具体的数据格式与视频获取装置有关,可以是jpg、gif等。
通过查找索引记录,可以查到读取请求中每个图片ID对应的图片数据的存储位置。存储位置具体为地址偏移量,即图片数据的第一字节相对磁盘文件的第一字节偏移的字节数。每查到一个图片ID对应的存储位置就将图片ID、对应的读取文件名和存储位置生成一条读记录,多个图片ID就生成了多条读记录。
如图4所示,通过查索引表,图片P1、P2、P3、P4、P5、P6、P7、P8的存储位置分别为offset1、offset2、offset3、offset4、offset6、offset5、offset8、offset7,假设offset后跟的数字越大,表示地址偏移量越大。
204、将读取文件名相同的读记录汇总生成第一读队列。
具体地,每生成一条读记录就将其放置到一个读队列中,这个读队列中所有读记录的读取文件名均相同,将这个读队列命名为第一读队列。将读取文件名相同的读记录汇总的目的是将存储于同一个磁盘文件中的所需图片数据一起读出。这个磁盘文件名是读取文件名。由于每个读记录都包括图片数据在磁盘文件中的存储位置,因此可根据存储位置读取到所需的图片数据。
如图4所示,图片P1生成的读记录为L1,图片P2生成的读记录为L2,依次类推,其它的图片生成的读记录分别依次为L3、L4、L5、L6、L7、L8,读取文件名为f1的第一读队列包含的读记录从头到尾依次为L1、L2、L5、L6,读取文件名为f2的第一读队列包含的读记录从头到尾依次为L3、L4、L7、L8。
205、根据读记录中存储位置的渐变顺序将第一读队列的多个读记录进行排序以生成第二读队列。
具体地,如前所述,单个文件在磁盘里所占用的扇区是连续的,且新的图片数据均以追加的形式存储在文件的末尾,因此每个图片数据也是连续的。如上所述,存储位置具体为地址偏移量,即图片数据的第一字节相对磁盘文件的第一字节偏移的字节数。通过将读队列中的多个读记录按存储位置渐变的顺序排序,生成第二读队列,使得后续根据第二读队列中读记录的顺序进行读操作时,磁臂向着一个方向顺序移动到每个图片数据的存储位置,避免了磁臂的随机移动,使其在移动距离最短的情况下,在一个文件中读取所有所需的图片数据。
如图4所示,读取文件名为f1的第一读队列包含的读记录从头到尾依次为L1、L2、L5、L6,对应的存储位置分别为offset1、offset2、offset6、offset5,由于假设offset后跟的数字越大,地址偏移量也越大,根据地址偏移量逐渐变大的顺序排序后,形成的读取文件名为f1的第二读队列包含的读记录从头到尾依次为L1、L2、L6、L5。
读取文件名为f2的第一读队列包含的读记录从头到尾依次为L3、L4、L7、L8,对应的存储位置分别为offset3、offset4、offset8、offset7。同样由于假设offset后跟的数字越大,地址偏移量也越大,根据地址偏移量逐渐变大的顺序排序后,形成的读取文件名为f2的第二读队列包含的读记录从头到尾依次为L3、L4、L8、L7。
206、按照第二读队列中读记录的顺序依次读取图片数据。
本发明实施例提供的图片读取方法为并发读取方法,能根据接收到的每一个图片ID生成对应的读取文件名,当然,生成读取文件名的方法应与图片存储过程中生成存储文件名的方法相同,以保证准确地读取到所需的文件;随后通过图片ID和对应的读取文件名可以在索引记录里查找到该图片的图片数据存储位置,从而生成读记录,其中的索引记录是在存储该图片时建立的,包括图片ID、存储文件名以及存储位置;所有图片的读记录生成后,可以将读取文件名相同的读记录汇总成为第一读队列,随后根据每个记录中存储位置的渐变顺序(变大或变小)进行排序,生成第二读队列,即该队列中的每个读记录是按存储位置的渐变顺序排列的,最后按照该排列顺序依次读取每个读记录存储位置上的图片数据。由于单个文件在磁盘里占用的扇区是连续的,按存储位置的渐变顺序读取图片时,磁臂的移动距离最短,从而有效防止了磁盘读性能的降低。
如上述实施例所述,存储位置的渐变顺序可以包括地址偏移量从小到大的顺序,也可以包括地址偏移量从大到小的顺序。如此设置,可以保证磁臂沿一个方向顺序移动。
上述实施例描述的读取文件名方法可以包括:将图片ID代入哈希公式计算生成第一值;在哈希表中查找与第一值相同的哈希值对应的目标文件名;将目标文件名作为读取文件名;哈希表包括多个哈希值及对应每一个哈希值的目标文件名。
具体地,该方法在图片存储方法的步骤1021至步骤1023中已做了详细说明,在此不再赘述。
上述实施例中,在接收读取请求步骤前,所述的图片读取方法还可以包括:将读取文件名所指的磁盘文件的索引节点信息驻留在内存中。
如上述实施例描述的图片存储方法中,在接收图片之前,图片存储装置已设定有生成存储文件名的方法,使得接收到的图片ID通过该设定的方法生成指定的存储文件名,也就是说存储文件名也是预先设定而成的。因此,可以将所有存储文件名所指的磁盘文件的索引节点信息加载并驻留在内存里,以避免频繁地读入索引节点信息。
同样地,因为生成读取文件名的方法与生成存储文件名的方法一致,生成的读取文件名和存储文件名也是一致的。读取文件名和存储文件名一样也是预先设定而成的。当图片存储过程中由于某种原因未将所有存储文件名所指的磁盘文件的索引节点信息加载并驻留在内存里,就可以通过该步骤将所有读取文件名所指的磁盘文件的索引节点信息加载并驻留在内存里,以避免频繁地读入索引节点信息。
图5为本发明实施例提供的一种图片存储装置的结构方框图,如图5所示,该图片存储装置包括:第一接收模块51,用于接收图片,该图片包括图片ID及图片数据;第一文件名生成模块52,用于根据图片ID生成存储文件名;数据追加模块53,用于将图片数据以追加的形式存入存储文件名所指的磁盘文件的末尾;索引生成模块54,用于生成包括图片ID、存储文件名及图片数据在磁盘文件中存储位置的索引记录。
上述实施例提供的图片存储装置中,第一文件名生成模块52可以包括:第一哈希计算单元,用于将图片ID代入哈希公式计算生成第一值;第一文件名查找单元,用于在哈希表中查找与第一值相同的哈希值对应的目标文件名,哈希表包括多个哈希值及对应每一个哈希值的目标文件名;第一文件名确定单元,用于将目标文件名确定为存储文件名。
上述的图片存储装置还可以包括第一文件开启模块,用于在接收图片前,将存储文件名所指的磁盘文件的索引节点信息驻留在内存中。
上述各模块所执行的方法已在图片存储方法的实施例中进行了详细说明,在此不再赘述。此处“第一”仅为了与下述的图片读取装置中的同名模块相区别。
本发明实施例提供的图片存储装置中,第一文件名生成模块根据第一接收模块接收到的图片ID生成存储文件名,使得接收到的图片数据能以追加的形式由数据追加模块存入该存储文件名所指的磁盘文件的末尾,由于单个文件在磁盘里所占用的扇区是连续的,将图片数据追加到磁盘文件末尾,也就是使图片数据在文件内按顺序存储,存储过程中,磁臂移动的距离最短,从而有效防止了磁盘写性能的降低。另外,存储图片数据后,索引生成模块还生成了图片数据存储位置与图片ID、存储文件名的索引记录,便于查找该图片。
图6为本发明实施例提供的一种图片读取装置的结构方框图,如图6所示,该图片读取装置包括:第二接收模块61,用于接收读取请求,读取请求中包括多个图片ID;第二文件名生成模块62,用于根据每个图片ID生成对应的读取文件名;索引查找模块63,用于在索引记录中查找图片ID对应的图片数据的存储位置以生成读记录;读记录包括一个图片ID、对应的读取文件名及存储位置;读记录汇总模块64,用于将读取文件名相同的读记录汇总生成第一读队列;读记录排序模块65,用于根据读记录中存储位置的渐变顺序将第一读队列的多个读记录进行排序以生成第二读队列;数据读取模块66,用于按照第二读队列中读记录的顺序依次读取图片数据。
上述的图片读取装置中,第二文件名生成模块62可以包括:第二哈希计算单元,用于将图片ID代入哈希公式计算生成第一值;第二文件名查找单元,用于在哈希表中查找与第一值相同的哈希值对应的目标文件名,哈希表包括多个哈希值及对应每一个哈希值的目标文件名;第二文件名确定单元,用于将目标文件名确定为读取文件名。
上述的图片读取装置中还可以包括第二文件开启模块,用于在接收读取请求前,将读取文件名所指的磁盘文件的索引节点信息驻留在内存中。
上述各模块所执行的方法已经在图片读取方法的实施例中进行了详细说明,在此不再赘述。此处的“第二”仅为了与上述的图片存储装置中的同名模块相区别。
本发明实施例提供的图片读取装置为并发读取装置,第二文件名生成模块能根据第二接收模块接收到的每一个图片ID生成对应的读取文件名,当然,生成读取文件名的方法应与图片存储过程中生成存储文件名的方法相同,以保证准确地读取到所需的文件;随后索引查找模块通过图片ID和对应的读取文件名可以在索引记录里查找到该图片的图片数据存储位置,从而生成读记录,其中的索引记录是在存储该图片时建立的,包括图片ID、存储文件名以及存储位置;所有图片的读记录生成后,读记录汇总模块可以将读取文件名相同的读记录汇总成为第一读队列,随后读记录排序模块根据每个记录中存储位置的渐变顺序(变大或变小)进行排序,生成第二读队列,即该队列中的每个读记录是按存储位置的渐变顺序排列的,最后数据读取模块按照该排列顺序依次读取每个读记录存储位置上的图片数据。由于单个文件在磁盘里占用的扇区是连续的,按存储位置的渐变顺序读取图片时,磁臂的移动距离最短,从而有效防止了磁盘读性能的降低。
图7为本发明实施例提供的一种图片存取系统的结构方框图,如图7所示,该图片存取系统包括:图片存储装置71,用于接收图片,图片包括图片ID及图片数据,再根据图片ID生成存储文件名,然后将图片数据以追加的形式存入存储文件名所指的磁盘文件的末尾,最后生成包括图片ID、存储文件名及图片数据在磁盘文件中存储位置的索引记录;图片读取装置72,用于接收读取请求,读取请求中包括多个图片ID,再根据每个图片ID生成对应的读取文件名,然后在索引记录中查找图片ID对应的图片数据的存储位置以生成读记录,读记录包括一个图片ID、对应的读取文件名及存储位置,接着将读取文件名相同的读记录汇总生成第一读队列,随后根据读记录中存储位置的渐变顺序将第一读队列的多个读记录进行排序以生成第二读队列,最后按照第二读队列中读记录的顺序依次读取图片数据。
上述各装置所执行的方法已经在图片存储方法和图片读取方法的实施例中进行了详细描述,在此不再赘述。
上述实施例提供的图片存取系统中,图片存储装置根据接收到的图片ID生成存储文件名,使得接收到的图片数据能以追加的形式存入该存储文件名所指的磁盘文件的末尾,由于单个文件在磁盘里所占用的扇区是连续的,将图片数据追加到磁盘文件末尾,也就是使图片数据在文件内按顺序存储,存储过程中,磁臂移动的距离最短,从而有效防止了磁盘写性能的降低。另外,存储图片数据后,还生成了图片数据存储位置与图片ID、存储文件名的索引记录,便于查找该图片。再者,通过适当地设置生成存储文件名的方法,可以使接收到的图片能按照图片ID散列到多个文件,每个文件具有不同的存储文件名,多个图片的图片数据汇合成一个大文件,在访问(读/写)该文件时,可提升磁盘的带宽利用率。
另外,图片读取装置为并发读取装置,能根据接收到的每一个图片ID生成对应的读取文件名,当然,生成读取文件名的方法应与图片存储过程中生成存储文件名的方法相同,以保证准确地读取到所需的文件;随后通过图片ID和对应的读取文件名可以在索引记录里查找到该图片的图片数据存储位置,从而生成读记录,其中的索引记录是在存储该图片时建立的,包括图片ID、存储文件名以及存储位置;所有图片的读记录生成后,可以将读取文件名相同的读记录汇总成为第一读队列,随后根据每个记录中存储位置的渐变顺序(变大或变小)进行排序,生成第二读队列,即该队列中的每个读记录是按存储位置的渐变顺序排列的,最后按照该排列顺序依次读取每个读记录存储位置上的图片数据。由于单个文件在磁盘里占用的扇区是连续的,按存储位置的渐变顺序读取图片时,磁臂的移动距离最短,从而有效防止了磁盘读性能的降低。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种图片存储方法,其特征在于,包括:
接收图片,所述图片包括图片ID及图片数据;
根据所述图片ID生成存储文件名;
将所述图片数据以追加的形式存入所述存储文件名所指的磁盘文件的末尾;
生成包括所述图片ID、所述存储文件名及所述图片数据在所述磁盘文件中存储位置的索引记录。
2.根据权利要求1所述的方法,其特征在于,根据所述图片ID生成存储文件名包括:将所述图片ID代入哈希公式计算生成第一值;在哈希表中查找与所述第一值相同的哈希值对应的目标文件名;将所述目标文件名作为所述存储文件名;所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名。
3.根据权利要求1或2所述的方法,其特征在于,在接收图片步骤前,还包括:将所述存储文件名所指的磁盘文件的索引节点信息驻留在内存中。
4.一种图片读取方法,其特征在于,包括:
接收读取请求,所述读取请求中包括多个图片ID;
根据每个所述图片ID生成对应的读取文件名;
在索引记录中查找所述图片ID对应的图片数据的存储位置以生成读记录;所述读记录包括一个所述图片ID、对应的所述读取文件名及所述存储位置;
将所述读取文件名相同的所述读记录汇总生成第一读队列;
根据所述读记录中所述存储位置的渐变顺序将所述第一读队列的多个所述读记录进行排序以生成第二读队列;
按照所述第二读队列中所述读记录的顺序依次读取所述图片数据。
5.根据权利要求4所述的方法,其特征在于,所述存储位置的渐变顺序包括地址偏移量从小到大的顺序或者地址偏移量从大到小的顺序。
6.根据权利要求4所述的方法,其特征在于,根据所述图片ID生成对应的读取文件名包括:将所述图片ID代入哈希公式计算生成第一值;在哈希表中查找与所述第一值相同的哈希值对应的目标文件名;将所述目标文件名作为所述读取文件名;所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名。
7.根据权利要求4~6中任一项所述的方法,其特征在于,在接收读取请求步骤前,还包括:将所述读取文件名所指的磁盘文件的索引节点信息驻留在内存中。
8.一种图片存储装置,其特征在于,包括:
第一接收模块,用于接收图片,所述图片包括图片ID及图片数据;
第一文件名生成模块,用于根据所述图片ID生成存储文件名;
数据追加模块,用于将所述图片数据以追加的形式存入所述存储文件名所指的磁盘文件的末尾;
索引生成模块,用于生成包括所述图片ID、所述存储文件名及所述图片数据在所述磁盘文件中存储位置的索引记录。
9.根据权利要求8所述的装置,其特征在于,所述第一文件名生成模块包括:
第一哈希计算单元,用于将所述图片ID代入哈希公式计算生成第一值;
第一文件名查找单元,用于在哈希表中查找与所述第一值相同的哈希值对应的目标文件名,所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名;
第一文件名确定单元,用于将所述目标文件名确定为所述存储文件名。
10.根据权利要求8或9所述的装置,其特征在于,还包括:第一文件开启模块,用于在接收图片前,将所述存储文件名所指的磁盘文件的索引节点信息驻留在内存中。
11.一种图片读取装置,其特征在于,包括:
第二接收模块,用于接收读取请求,所述读取请求中包括多个图片ID;
第二文件名生成模块,用于根据每个所述图片ID生成对应的读取文件名;
索引查找模块,用于在索引记录中查找所述图片ID对应的图片数据的存储位置以生成读记录;所述读记录包括一个所述图片ID、对应的所述读取文件名及所述存储位置;
读记录汇总模块,用于将所述读取文件名相同的所述读记录汇总生成第一读队列;
读记录排序模块,用于根据所述读记录中所述存储位置的渐变顺序将所述第一读队列的多个所述读记录进行排序以生成第二读队列;
数据读取模块,用于按照所述第二读队列中所述读记录的顺序依次读取所述图片数据。
12.根据权利要求11所述的装置,其特征在于,所述第二文件名生成模块包括:
第二哈希计算单元,用于将所述图片ID代入哈希公式计算生成第二值;
第二文件名查找单元,用于在哈希表中查找与所述第二值相同的哈希值对应的目标文件名,所述哈希表包括多个所述哈希值及对应每一个所述哈希值的所述目标文件名;
第二文件名确定单元,用于将所述目标文件名确定为所述读取文件名。
13.根据权利要求11或12所述的装置,其特征在于,还包括第二文件开启模块,用于在接收读取请求前,将所述读取文件名所指的磁盘文件的索引节点信息驻留在内存中。
14.一种图片存取系统,其特征在于,包括:
图片存储装置,用于接收图片,所述图片包括图片ID及图片数据,再根据所述图片ID生成存储文件名,然后将所述图片数据以追加的形式存入所述存储文件名所指的磁盘文件的末尾,最后生成包括所述图片ID、所述存储文件名及所述图片数据在所述磁盘文件中存储位置的索引记录;
图片读取装置,用于接收读取请求,所述读取请求中包括多个图片ID,再根据每个所述图片ID生成对应的读取文件名,然后在索引记录中查找所述图片ID对应的图片数据的存储位置以生成读记录,所述读记录包括一个所述图片ID、对应的所述读取文件名及所述存储位置,接着将所述读取文件名相同的所述读记录汇总生成第一读队列,随后根据所述读记录中所述存储位置的渐变顺序将所述第一读队列的多个所述读记录进行排序以生成第二读队列,最后按照所述第二读队列中所述读记录的顺序依次读取所述图片数据。
CN201911015328.XA 2019-10-25 2019-10-25 图片存储方法、读取方法、装置及存取系统 Pending CN110765290A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911015328.XA CN110765290A (zh) 2019-10-25 2019-10-25 图片存储方法、读取方法、装置及存取系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911015328.XA CN110765290A (zh) 2019-10-25 2019-10-25 图片存储方法、读取方法、装置及存取系统

Publications (1)

Publication Number Publication Date
CN110765290A true CN110765290A (zh) 2020-02-07

Family

ID=69333776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911015328.XA Pending CN110765290A (zh) 2019-10-25 2019-10-25 图片存储方法、读取方法、装置及存取系统

Country Status (1)

Country Link
CN (1) CN110765290A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966845A (zh) * 2020-08-31 2020-11-20 重庆紫光华山智安科技有限公司 图片管理方法、装置、存储节点及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070239683A1 (en) * 2006-04-07 2007-10-11 Eastman Kodak Company Identifying unique objects in multiple image collections
CN101299181A (zh) * 2008-07-08 2008-11-05 杭州华三通信技术有限公司 基于磁盘进行i/o请求缓存的方法和装置以及san存储设备
CN103136293A (zh) * 2011-12-02 2013-06-05 福建星网视易信息系统有限公司 图片资源包的格式设计和读取方法
CN103186537A (zh) * 2011-12-27 2013-07-03 腾讯科技(北京)有限公司 一种基于索引排序的数据读写方法及装置
CN106326393A (zh) * 2016-08-17 2017-01-11 东方网力科技股份有限公司 一种小图片的存储、读取方法和装置
CN107704202A (zh) * 2017-09-18 2018-02-16 北京京东尚科信息技术有限公司 一种数据快速读写的方法和装置
US10042711B1 (en) * 2015-12-18 2018-08-07 EMC IP Holding Company LLC Distributed data protection techniques with cloning
CN110222209A (zh) * 2019-06-14 2019-09-10 北京马赫谷科技有限公司 图片存储方法、查询方法、装置及存取系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070239683A1 (en) * 2006-04-07 2007-10-11 Eastman Kodak Company Identifying unique objects in multiple image collections
CN101299181A (zh) * 2008-07-08 2008-11-05 杭州华三通信技术有限公司 基于磁盘进行i/o请求缓存的方法和装置以及san存储设备
CN103136293A (zh) * 2011-12-02 2013-06-05 福建星网视易信息系统有限公司 图片资源包的格式设计和读取方法
CN103186537A (zh) * 2011-12-27 2013-07-03 腾讯科技(北京)有限公司 一种基于索引排序的数据读写方法及装置
US10042711B1 (en) * 2015-12-18 2018-08-07 EMC IP Holding Company LLC Distributed data protection techniques with cloning
CN106326393A (zh) * 2016-08-17 2017-01-11 东方网力科技股份有限公司 一种小图片的存储、读取方法和装置
CN107704202A (zh) * 2017-09-18 2018-02-16 北京京东尚科信息技术有限公司 一种数据快速读写的方法和装置
CN110222209A (zh) * 2019-06-14 2019-09-10 北京马赫谷科技有限公司 图片存储方法、查询方法、装置及存取系统

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
BADRISH CHANDRAMOULI ET AL.: "Faster: A Concurrent Key-Value Store with In-Place Updates", 《PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》 *
BADRISH CHANDRAMOULI ET AL.: "Faster: A Concurrent Key-Value Store with In-Place Updates", 《PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》, 27 May 2018 (2018-05-27), pages 275 - 290, XP055532134, DOI: 10.1145/3183713.3196898 *
QIANQIAN XING ET AL.: "RRSR: A Read Request Sorting and Reorganization Strategy to Improve Data Read Performance for Deduplication Systems Based on Sparse Index and Pipeline Parallelism", 《2012 FOURTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL AND INFORMATION SCIENCES》 *
QIANQIAN XING ET AL.: "RRSR: A Read Request Sorting and Reorganization Strategy to Improve Data Read Performance for Deduplication Systems Based on Sparse Index and Pipeline Parallelism", 《2012 FOURTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL AND INFORMATION SCIENCES》, 13 September 2012 (2012-09-13), pages 1021 - 1024 *
涂振发: "云计算环境下海量空间数据高效存储关键技术研究", 《中国博士学位论文全文数据库 基础科学辑》 *
涂振发: "云计算环境下海量空间数据高效存储关键技术研究", 《中国博士学位论文全文数据库 基础科学辑》, no. 1, 15 January 2016 (2016-01-15), pages 008 - 8 *
金国栋 等: "HDFS存储和优化技术研究综述", 《软件学报》 *
金国栋 等: "HDFS存储和优化技术研究综述", 《软件学报》, vol. 31, no. 1, 12 August 2019 (2019-08-12), pages 137 - 161 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966845A (zh) * 2020-08-31 2020-11-20 重庆紫光华山智安科技有限公司 图片管理方法、装置、存储节点及存储介质
CN111966845B (zh) * 2020-08-31 2023-11-17 重庆紫光华山智安科技有限公司 图片管理方法、装置、存储节点及存储介质

Similar Documents

Publication Publication Date Title
US10230643B2 (en) Full flow retrieval optimized packet capture
CN104951474B (zh) 一种用于获取MySQL binlog增量日志的方法和装置
US8099421B2 (en) File system, and method for storing and searching for file by the same
CN106874348B (zh) 文件存储和索引方法、装置及读取文件的方法
CN110222209B (zh) 图片存储方法、查询方法、装置及存取系统
CN105677826A (zh) 一种针对海量非结构化数据的资源管理方法
WO2018064962A1 (zh) 数据存储方法、电子设备和计算机非易失性存储介质
CN105069048A (zh) 一种小文件存储方法、查询方法和装置
US20120150869A1 (en) Method for creating a index of the data blocks
US11580061B2 (en) System and method for file archiving using machine learning
CN108021717B (zh) 一种轻量级嵌入式文件系统的实现方法
CN106599292B (zh) 针对实时视频数据和图像数据进行存储的方法及系统
US9355121B1 (en) Segregating data and metadata in a file system
US11250888B1 (en) Flash memory and method for storing and retrieving embedded audio video data
EP3944556A1 (en) Block data access method and apparatus, and block data storage method and apparatus
JP4233564B2 (ja) データ処理装置、データ処理用のプログラムおよび記録媒体
CN107391769B (zh) 一种索引查询方法及装置
US8316008B1 (en) Fast file attribute search
CN112416880A (zh) 一种基于实时归并的海量小文件存储性能优化方法及装置
CN107423321B (zh) 适用大批量小文件云存储的方法及其装置
CN104021223A (zh) 一种集群数据库测点的访问方法及装置
CN113448946B (zh) 数据迁移方法及装置、电子设备
CN114116612A (zh) 一种基于b+树索引归档文件的存取方法
CN110765290A (zh) 图片存储方法、读取方法、装置及存取系统
CN101783814A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200207

RJ01 Rejection of invention patent application after publication