CN111399753B - 写入图片的方法和装置 - Google Patents
写入图片的方法和装置 Download PDFInfo
- Publication number
- CN111399753B CN111399753B CN201910786664.8A CN201910786664A CN111399753B CN 111399753 B CN111399753 B CN 111399753B CN 201910786664 A CN201910786664 A CN 201910786664A CN 111399753 B CN111399753 B CN 111399753B
- Authority
- CN
- China
- Prior art keywords
- target
- storage node
- picture
- memory
- target picture
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种写入图片的方法和装置,属于存储机技术领域。该方法应用于云存储***中的存储节点,存储节点配置有内存、磁盘和SSD。该方法包括:目标存储节点接收目标图片的写入请求,判断目标存储节点所属的图片资源池是否支持加速写入,在目标存储节点所属的图片资源池支持加速写入时,如果目标图片的数据量小于目标数值,则在存储节点的配置信息中获取配置的缓存类型,如果缓存类型为内存加速,则目标存储节点将目标图片写入目标存储节点的内存中,如果缓存类型为SSD加速,则目标存储节点将目标图片写入目标存储节点的SSD中。采用本公开,可以提高写入效率。
Description
技术领域
本公开涉及存储技术领域,特别涉及一种写入图片的方法和装置。
背景技术
随着计算机技术和网络技术的发展,需要存储图片的提取图片的应用场景越来越多。例如,在道路上设置的摄像机,在拍摄得到图片之后,需要进行存储,在管理人员观看图片时,需要提取图片。
相关技术中,在拍摄得到图片之后,进行存储时,一般是将图片存储至磁盘中,后续从磁盘中读取。
由于磁盘的写入速度较慢,所以会导致图片的写入效率比较低。
发明内容
为了解决现有技术的问题,本公开实施例提供了一种写入图片的方法和装置。所述技术方案如下:
第一方面,提供了一种写入图片的方法,所述方法应用于云存储***中的存储节点,所述存储节点配置有磁盘、内存和SSD(Solid State Drives,固态硬盘);所述方法包括:
目标存储节点接收目标图片的写入请求,判断所述目标存储节点所属的图片资源池是否支持加速写入;
在所述目标存储节点所属的图片资源池支持加速写入时,如果所述目标图片的数据量小于目标数值,则在所述存储节点的配置信息中获取配置的缓存类型,其中,所述缓存类型为所述目标图片在所述目标存储节点写入时的缓存类型;
如果所述缓存类型为内存加速,则所述目标存储节点将所述目标图片写入所述目标存储节点的内存中;
如果所述缓存类型为SSD加速,则所述目标存储节点将所述目标图片写入所述目标存储节点的SSD中。
可选的,所述方法还包括:
将所述目标图片写入所述存储节点的磁盘。
这样,可以防止图片丢失。
可选的,所述将所述目标图片写入所述目标存储节点的内存中,包括:
如果所述目标存储节点当前的内存余量大于或等于所述目标图片的数据量,则将所述目标图片写入所述目标存储节点的内存中;
如果所述目标图片当前的内存余量小于所述目标图片的数据量,则在所述内存中删除写入时间点距离当前时间点最长的图片;
如果删除图片后的内存余量大于或等于所述目标图片的数据量,则将所述图片写入所述内存中,如果删除图片后的内存余量小于所述目标图片的数据量,则执行所述在所述内存中删除写入时间点距离当前时间点最长的图片的处理。
这样,可以尽可能的保证存储在内存中。
可选的,所述方法还包括:
所述目标存储节点接收请求方发送的所述目标图片的读取请求,判断所述目标存储节点所属的图片资源池是否支持加速写入,其中,所述读取请求中携带有所述目标图片存储在磁盘的索引信息;
如果所述目标存储节点所属的图片资源池支持加速写入,则根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片;
向所述请求方发送所述目标图片。
这样,可以快速的读取到图片。
可选的,所述根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片,包括:
如果所述目标图片对应的缓存类型为内存加速,则根据所述索引信息,确定所述目标图片存储在所述目标存储节点的内存中的第一索引;
如果在所述目标存储节点的内存对应的索引表中查找到所述第一索引,则根据所述第一索引,从所述目标存储节点的内存中读取所述目标图片;如果在所述目标存储节点的内存对应的索引表中未查找到所述第一索引,则从磁盘中读取所述目标图片;
如果所述目标图片对应的缓存类型为SSD加速,则根据所述索引信息,确定所述目标图片存储在SSD中的第二索引,如果在所述目标存储节点配置的SSD对应的索引表中查找到所述第二索引,则根据所述第二索引,从所述目标存储节点配置的SSD中读取所述目标图片;
如果在所述目标存储节点配置的SSD对应的索引表中未查找到所述第二索引,则根据所述读取请求,从磁盘中读取所述目标图片。
这样,由于也可以在内存或SSD中读取图片,所以可以快速的读取到图片。
第二方面,本公开实施例提供了一种写入图片的装置,所述装置应用于云存储***中的存储节点,所述存储节点配置有磁盘、内存和SSD;所述装置包括:
接收模块,用于接收目标图片的写入请求;
判断模块,用于判断所述目标存储节点所属的图片资源池是否支持加速写入;
确定模块,用于在所述目标存储节点所属的图片资源池支持加速写入时,如果所述目标图片的数据量小于目标数值,则在所述存储节点的配置信息中获取配置的缓存类型,其中,所述缓存类型为所述目标图片在所述目标存储节点写入时的缓存类型;
写入模块,用于如果所述缓存类型为内存加速,则将所述目标图片写入所述目标存储节点的内存中;
如果所述缓存类型为SSD加速,则将所述目标图片写入所述目标存储节点的SSD中。
可选的,所述写入模块,还用于:
将所述目标图片写入所述存储节点的磁盘。
可选的,所述写入模块,用于:
如果所述目标存储节点当前的内存余量大于或等于所述目标图片的数据量,则将所述目标图片写入所述目标存储节点的内存中;
如果所述目标图片当前的内存余量小于所述目标图片的数据量,则在所述内存中删除写入时间点距离当前时间点最长的图片;
如果删除图片后的内存余量大于或等于所述目标图片的数据量,则将所述图片写入所述内存中,如果删除图片后的内存余量小于所述目标图片的数据量,则执行所述在所述内存中删除写入时间点距离当前时间点最长的图片的处理。
可选的,所述接收模块,还用于接收请求方发送的目标图片的读取请求,其中,所述读取请求中携带有所述目标图片存储在磁盘的索引信息;
所述判断模块,还用于判断所述目标存储节点所属的图片资源池是否支持加速写入;
所述装置还包括:
读取模块,用于如果所述目标存储节点所属的图片资源池支持加速写入,则根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片;
发送模块,用于向所述请求方发送所述目标图片。
可选的,所述读取模块,用于:
如果所述目标图片对应的缓存类型为内存加速,则根据所述索引信息,确定所述目标图片存储在所述目标存储节点的内存中的第一索引;
如果在所述目标存储节点的内存对应的索引表中查找到所述第一索引,则根据所述第一索引,从所述目标存储节点的内存中读取所述目标图片;如果在所述目标存储节点的内存对应的索引表中未查找到所述第一索引,则从磁盘中读取所述目标图片;
如果所述目标图片对应的缓存类型为SSD加速,则根据所述索引信息,确定所述目标图片存储在SSD中的第二索引,如果在所述目标存储节点配置的SSD对应的索引表中查找到所述第二索引,则根据所述第二索引,从所述目标存储节点配置的SSD中读取所述目标图片;
如果在所述目标存储节点配置的SSD对应的索引表中未查找到所述第二索引,则根据所述读取请求,从磁盘中读取所述目标图片。
第三方面,提供了一种存储节点,所述存储节点包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述第一方面所述的写入图片的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述第一方面所述的写入图片的方法。
本公开实施例提供的技术方案带来的有益效果至少包括:
本公开实施例中,云存储***中的存储节点配置有磁盘、内存和SSD。在云存储***中写入目标图片时,目标存储节点可以接收目标图片的写入请求,判断目标存储节点所属的图片资源池是否支持加速写入,如果存储节点所属的图片资源池支持加速写入,则判断目标图片的数据量与目标数值的大小,如果目标图片的数据量小于目标数值,则在存储节点的配置信息中获取配置的缓存类型。如果缓存类型为内存加速,则目标存储节点将目标图片写入目标存储节点的内存中,如果缓存类型为SSD加速,则目标存储节点将目标图片写入目标存储节点配置的SSD中。这样,在图片的数据量比较小时,可以将图片存储至内存或SSD中,由于内存或SSD写入速度较快,所以在图片的数据量比较小时,可以相对提升图片的写入速度,进而可以提高写入效率。
附图说明
图1是本公开实施例提供的一种云存储***的示意图;
图2是本公开实施例提供的一种写入图片的方法流程图;
图3是本公开实施例提供的一种设置缓存类型的示意图;
图4是本公开实施例提供的一种设置目标数值的示意图;
图5是本公开实施例提供的一种设置加速策略的示意图;
图6是本公开实施例提供的一种提取图片的方法流程图;
图7是本公开实施例提供的一种写入图片的装置的结构示意图;
图8是本公开实施例提供的一种写入图片的装置的结构示意图;
图9是本公开实施例提供的一种存储节点的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
本公开实施例提供了一种写入图片的方法,该方法的执行主体可以是存储节点,存储节点可以是服务器。
存储节点中可以设置有处理器、存储器和收发器等,处理器可以用于写入图片的过程的处理,存储器可以用于写入图片的过程中需要的数据以及产生的数据,收发器可以用于接收以及发送数据,例如,可以用于发送或者接收图片。
在进行实施前,首先介绍一下本公开实施例涉及的应用场景:
本公开实施例中提到的写入图片的方法,应用于云存储***的存储节点,存储节点为多个。云存储***中的存储节点可以被划分到不同的图片资源池中,且不同的图片资源池中不会存在相同的存储节点。这样可以认为云存储***中包括多个图片资源池,每个图片资源池可以被配置为支持加速写入或者不支持加速写入。支持加速写入的图片资源池中的存储节点配置有磁盘、内存和SSD,不支持加速写入的图片资源池中的存储节点可以配置有磁盘、内存和SSD,也可以仅配置有磁盘和内存。此处需要说明的是图片资源池是一个虚拟的存储空间。
如图1所示,云存储***可以包括应用层、设备层。应用层包括管理节点和存储节点,多个存储节点形成图片资源池,管理节点可以用于管理图片资源池中的存储节点。设备层包括存储节点的外部存储部件,如磁盘和SSD。另外,在应用层和设备层之间还包括虚拟文件***层,用于连接设备层和应用层。
如图2所示,本公开实施例提供了一种写入图片的方法,以摄像机拍摄的图片进行存储时为例进行说明,该方法的处理流程可以如下:
步骤201,目标存储节点接收目标图片的写入请求,判断目标存储节点所属的图片资源池是否支持加速写入。
其中,目标图片可以是任一张图片。
在实施中,摄像机拍摄到目标图片之后,可以生成写入请求,并在其中添加目标图片,摄像机确定连接的管理节点。然后向该管理节点发送该写入请求。管理节点接收到写入请求后,可以查看该摄像机的标识所连接的图片资源池,确定该图片资源池中包括的存储节点中各存储节点的存储量,以及各存储节点的总存储空间。对于任一存储节点,将该存储节点的存储量与该存储节点的总存储空间容量相比,得到该存储节点的存储占用率。管理节点可以选择占用率最少的存储节点(后可以称为是目标存储节点),向该目标存储节点发送目标图片的写入请求。
目标存储节点可以接收管理节点发送的写入请求,从该写入请求中解析得到目标图片。
目标存储节点可以获取存储节点与图片资源池的对应关系,从该对应关系中,确定目标存储节点所属的图片资源池,或者,目标存储节点的配置信息中包括自身所属的图片资源池的标识,目标存储节点可以直接从配置信息获取到自身所属的图片资源池的标识。然后目标存储节点获取该图片资源池的配置文件,从该配置文件中,获取该图片资源池的写入标识位,根据该写入标识位的数值,确定图片资源池是否支持加速写入。
步骤202,在目标存储节点所属的图片资源池支持加速写入时,如果目标图片的数据量小于目标数值,则在存储节点的配置信息中获取配置的缓存类型。
其中,目标数值可以被设置,并且存储在存储节点中,目标数值一般属于0~500k,可以设置为100k。缓存类型一般分为不加速、内存加速和SSD加速等。
在实施中,在目标存储节点所属的图片资源池的写入标识位的数值为第一数值时,目标存储节点可以确定该图片资源池支持加速写入。在目标存储节点所属的图片资源池的写入标识位的数值为第二数值时,目标存储节点可以确定该图片资源池不支持加速写入。第一数值与第二数值是不同的数值。例如,第一数值可以为1,第二数值可以为0。
然后目标存储节点可以确定目标图片的数据量与目标数值的大小关系,如果目标图片的数据量小于目标数值,则可以在目标存储节点的配置信息中,获取配置的缓存类型,然后将该缓存类型设置为目标图片对应的缓存类型。这样,在图片的数据量小于目标数值时,可以通过内存或者SSD的方式进行加速,提高写入速度。这样,由于设置了目标数值,图片的数据量比较小的时候,可以存储在SSD或者内存中,图片的数据量比较大的时候,可以存储在磁盘中,也提升了数据量比较小的图片的读取速度。
可选的,为了防止图片的数据丢失,还可以进行如下处理:
将目标图片写入存储节点的磁盘。
在实施中,目标存储节点在接收到图片写入请求后,可以首先将目标图片直接写入到磁盘中,然后再判断目标存储节点所属的图片资源池是否支持加速写入。这样,在图片资源池不支持加速或者支持加速,均也可以将图片写入磁盘,可以防止图片数据丢失。
另外,在步骤202中,如果目标图片的数据量大于或等于目标数值,由于目标图片已经写入目标存储节点的磁盘中,所以就不需要进行后续处理,目标图片的写入处理完成。
步骤203,如果缓存类型为内存加速,则将目标图片写入存储节点的内存中;如果缓存类型为固态硬盘SSD加速,则将目标图片写入存储节点的SSD中。
在实施中,如果目标图片的缓存类型为内存加速,则目标存储节点可以将目标图片写入到目标存储节点的内存中,并且创建目标图片的索引值,用于后续从目标存储节点的内存中读取目标图片。此处索引值可以是目标图片的标识。对应内存,目标存储节点维护有索引表,索引表中包括索引值与存储位置信息的对应关系,目标存储节点还记录了索引值与目标图片存储在磁盘中的块的标识的对应关系,这样,后续可以使用磁盘中的块的标识,找到目标图片在内存中的存储位置信息。
如果缓存类型为SSD加速,则目标存储节点可以确定自身的SSD,将目标图片写入到自身的SSD中,并且创建目标图片的索引值,用于后续从SSD中读取目标图片。此处索引值可以是目标图片的标识。对应SSD,目标存储节点维护有索引表,索引表中包括索引值与存储位置信息的对应关系,目标存储节点还记录了索引值与图片存储在磁盘中的块的标识的对应关系,这样,后续可以使用磁盘中的块的标识,找到目标图片存储在SSD中的存储位置信息。
这样,由于有了内存存储和SSD存储,所以对于数据量较小的图片,可以使写入图片和读取图片的速度更快。
可选的,在将目标图片写入目标存储节点的内存中时,还会判断目标图片的数据量与内存余量的大小,处理可以如下:
如果目标存储节点当前的内存余量大于或等于目标图片的数据量,则将目标图片写入目标存储节点的内存中;如果目标图片当前的内存余量小于目标图片的数据量,则在内存中删除写入时间点距离当前时间点最长的图片;如果删除图片后的内存余量大于或等于目标图片的数据量,则将图片写入内存中,如果删除图片后的内存余量小于目标图片的数据量,则执行在内存中删除写入时间点距离当前时间点最长的图片的处理。
在实施中,目标存储节点可以确定当前内存的内存余量,内存余量指当前内存中还未存储数据的空间。然后目标存储节点可以比较内存余量与目标图片的数据量的大小。如果内存余量大于或等于目标图片的数据量,则可以直接将目标图片写入到目标存储节点的内存中。
如果内存余量小于目标图片的数据量,则目标存储节点可以确定内存中,写入时间点距离当前时间点最长的图片,然后将该图片删除。然后判断当前的内存余量,如果内存余量大于或等于目标图片的数据量,则可以直接将目标图片写入到内存中。如果当前内存余量依然小于目标图片的数据量,则可以继续删除当前内存中,写入时间点距离当前时间点最长的图片,直到内存余量大于或等于目标图片的数据量,将目标图片写入到目标存储节点的内存中。
另外,在本公开实施例中,目标存储节点在将目标图片写入到目标存储节点的磁盘中后,可以向管理节点返回索引信息,索引信息为目标图片写入的磁盘的标识以及块的标识。
需要说明的是,上述图2所示的流程可以是通过目标存储节点上的一个应用程序执行。在该应用程序启动后,可以读取目标存储节点的配置信息,从中获取缓存类型、内存大小,目标数值等配置项。如果该应用程序检测到配置项中内存缓存开启,则可以根据内存大小,创建用于缓存图片的内存,并初始化内存,后续可以使用内存缓存图片。如果内存分配失败,则该应用程序启动失败,后续不能使用内存缓存图片。
另外,在图2所示的流程中,可以是通过目标存储节点上的一个应用程序执行,该应用程序中,有两个进程,一个进程为A进程,另一个进程为B进程,A进程与B进程通过unix域套接字链路连接,在图2的流程中,A进程可以接收请求方的写入请求,通过unix域套接字链路告知给B进程,B进程可以执行上述步骤202至203。然后写入目标图片之后,通过unix域套接字链路返回索引信息(该索引信息为存储在磁盘中的磁盘的标识和块的标识),给A进程。A进程可以反馈给请求方。
另外,本公开实施例中,还提供了目标存储节点获取缓存类型的过程:
如图3所示,用户可以在终端显示的云存储***管理页面中,点击设置缓存类型的选项,触发终端显示未设置缓存类型的存储节点,在其中找到目标存储节点,为目标存储节点选择缓存类型。然后用户可以点击确认选项,触发生成缓存类型的设置信息(该设置信息中携带有设置的缓存类型),向目标存储节点发送缓存类型的设置信息(a1)。目标存储节点可以将用户设置的缓存类型更新到配置文件中(a2),然后向云存储***管理页面的显示终端返回成功(a3)。
另外,本公开实施例中,还提供了目标存储节点获取目标数值的过程:
如图4所示,用户可以在终端显示的云存储***管理页面中,点击阈值设置选项,终端则会显示阈值输入框,用户可以输入目标数值。然后用户可以点击确定选项,触发终端向管理节点发送阈值的设置信息(该设置信息中携带有目标数值)(b1)。管理节点将目标数值写入到根节点中,并且将目标数值***到管理节点的数据库中(b2),并且将目标数值更新至zookeeper节点(b3)。目标存储节点可以监听zookeeper节点,获取目标数值,写入内存,并写入到自身的配置文件中(b4)。另外,其它管理节点可以通过监听该管理节点的目标数值,将目标数值同步到自己的内存和数据库中。
另外,本公开实施例中,还提供了目标存储节点获取图片资源池是否支持加速的指示消息的过程:
如图5所示,用户可以在终端的云存储***管理页面中,点击加速策略设置选项,触发终端显示未设置加速策略的图片资源池,在其中找到目标存储节点所属的图片资源池,为目标存储节点所属的图片资源池选择加速策略。然后用户可以点击确认选项,触发终端生成加速指示信息,加速指示信息可以用于指示支持加速和不支持加速中的任一种加速策略。然后终端将加速指示信息发送至管理节点(c1),管理节点可以将加速指示信息中加速策略写入到根节点中,并且将加速策略***到管理节点的数据库中(c2),并且将加速策略更新至zookeeper节点(c3)。目标存储节点可以监听zookeeper节点,获取加速策略,写入内存,并写入到自身的配置文件中(c4)。另外,其它管理节点可以通过监听该管理节点的加速策略,将加速策略同步到自己的内存和数据库中。
可选的,上述管理节点接收加速指示信息和目标数值,均是使用CLI(command-line interface,命令行界面)接口进行接收的,同样,上述目标存储节点接收缓存类型时,也是使用CLI进行接收的。
可选的,如图6所示,本公开实施例中,还提供了读取目标图片的处理,相应的处理流程可以如下:
步骤601,接收请求方发送的目标图片的读取请求,其中,读取请求中携带有目标图片存储在磁盘的索引信息。
在实施中,在要查看目标图片时,可以进行目标图片的读取,查看目标图片的用户可以操作终端(即请求方),向目标存储节点发送目标图片的读取请求。在该读取请求中携带有目标图片存储在磁盘中的索引信息,可以是磁盘的标识和磁盘中的块的标识。
目标存储节点可以接收目标图片的读取请求,从中解析到目标图片存储在磁盘的索引信息,即所存储磁盘的标识和磁盘中的块的标识。
步骤602,判断目标存储节点所属的图片资源池是否支持加速写入,如果目标存储节点所属的图片资源池支持加速写入,则根据目标图片对应的缓存类型和读取请求,读取目标图片。
在实施中,目标存储节点可以获取存储节点与图片资源池的对应关系,从该对应关系中,确定目标存储节点所属的图片资源池,或者,目标存储节点的配置信息中包括自身所属的图片资源池的标识,目标存储节点可以直接从配置信息获取到自身所属的图片资源池。然后获取该图片资源池的配置文件,从该配置文件中,获取该图片资源池的写入标识位,根据该写入标识位的数值,如果该数值为第一数值,则确定该图片资源池支持加速写入,如果该数值为第二数值,则确定该图片资源池不支持加速写入。
如果目标存储节点所属的图片资源池支持加速写入,则目标存储节点可以在配置文件中获取缓存类型的配置项,根据配置项的数值,确定缓存类型,缓存类型为不加速、内存加速和SSD加速中任意一种,将配置文件中的缓存类型确定为目标图片对应的缓存类型(此过程在前面已经论述,此处不再赘述)。例如,如果配置项的数值为0,则确定缓存类型为不加速,如果配置项的数值为1,则确定缓存类型为SSD加速,如果配置项的数值为2,则确定缓存类型为内存加速。
目标存储节点可以使用目标图片对应的缓存类型和目标图片存储在磁盘的索引信息,在目标存储节点中读取出目标图片。
可选的,可以按照如下方式读取目标图片:
如果目标图片对应的缓存类型为内存加速,则根据索引信息,确定目标图片存储在目标存储节点的内存中的第一索引,如果在目标存储节点的内存对应的索引表中查找到第一索引,则根据第一索引,从目标存储节点的内存中读取目标图片;如果在目标存储节点的内存对应的索引表中未查找到第一索引,则从磁盘中读取目标图片,如果目标图片对应的缓存类型为SSD加速,则根据索引信息,确定目标图片存储在SSD中的第二索引,如果在目标存储节点配置的SSD对应的索引表中查找到第二索引,则根据第二索引,从目标存储节点配置的SSD中读取目标图片,如果在目标存储节点配置的SSD对应的索引表中未查找到第二索引,则根据读取请求,从磁盘中读取目标图片。
在实施中,如果目标图片对应的缓存类型为内存加速,则可以使用索引信息,查找索引值与图片存储在磁盘中的块的标识的对应关系,确定目标图片存储在目标存储节点的内存中的第一索引,然后在目标存储节点的内存对应的索引表中查找是否存在第一索引,如果存在第一索引,则可以在目标存储节点的内存中第一索引对应的位置处读取出目标图片。
如果在目标存储节点的内存对应的索引表中不存在第一索引,则可以直接从磁盘中,使用磁盘的标识和块的标识,读取目标图片(这种情况一般是目标图片的存储时间比较久,被删除了)。
如果目标图片对应的缓存类型为不加速,则可以直接从磁盘中,使用磁盘的标识和块的标识,读取目标图片。
如果目标图片对应的缓存类型为SSD加速,则可以根据索引信息,查找索引值与图片存储在磁盘中的块的标识的对应关系,确定目标图片存储在目标存储节点的SSD中的第二索引,如果在目标存储节点的SSD的索引表中能查找到第二索引,则可以在目标存储节点的SSD中第二索引对应的位置处,读取出目标图片。
如果在目标存储节点的SSD的索引表未中能查找到第二索引,则可以使用索引信息中的磁盘的标识和块的标识,读取出目标图片。
需要说明的是,读取请求中携带MYSQL(Structured Query Language,构造化查询言语)数据库索引(可以是磁盘的标识和块的标识),用于定位图片的数据在磁盘中的位置。第一索引是图片的数据存储在内存中时生成的,可以称为是内存索引,用于定位图片的数据在内存中的地址。第二索引是图片的数据存储在SSD中时生成,可以称为是DB(databases,数据库)索引,用于定位图片的数据在SSD中的地址。
步骤603,向请求方发送目标图片。
在实施中,目标存储节点读取到目标图片之后,可以向请求方发送目标图片。
另外,在图6所示的流程中,可以是通过目标存储节点上的一个应用程序执行,该应用程序中,有两个进程,一个进程为A进程,另一个进程可以为B进程,A进程与B进程通过unix域套接字链路连接,在图6的流程中,A进程可以接收请求方的读取请求,通过unix域套接字链路告知给B进程,B进程可以执行上述步骤602至603,然后将读取到的目标图片,通过unix域套接字链路发送给A进程,A进程可以反馈给请求方。
本公开实施例中,云存储***中的存储节点配置有磁盘、内存和SSD。在云存储***中写入目标图片时,目标存储节点可以接收目标图片的写入请求,判断目标存储节点所属的图片资源池是否支持加速写入,如果存储节点所属的图片资源池支持加速写入,则判断目标图片的数据量与目标数值的大小,如果目标图片的数据量小于目标数值,则在存储节点的配置信息中获取配置的缓存类型。如果缓存类型为内存加速,则目标存储节点将目标图片写入目标存储节点的内存中,如果缓存类型为SSD加速,则目标存储节点将目标图片写入目标存储节点配置的SSD中。这样,在图片的数据量比较小时,可以将图片存储至内存或SSD中,由于内存或SSD写入速度较快,所以在图片的数据量比较小时,可以相对提升图片的写入速度,进而可以提高写入效率。
基于相同的技术构思,本公开实施例还提供了一种写入图片的装置,所述装置应用于云存储***的存储节点,存储节点配置有磁盘、内存和SSD。如图7所示,该装置包括:
接收模块710,用于接收目标图片的写入请求;
判断模块720,用于判断所述目标存储节点所属的图片资源池是否支持加速写入;
确定模块730,用于在所述目标存储节点所属的图片资源池支持加速写入时,如果所述目标图片的数据量小于目标数值,则在所述存储节点的配置信息中获取配置的缓存类型,其中,所述缓存类型为所述目标图片在所述目标存储节点写入时的缓存类型;
写入模块740,用于如果所述缓存类型为内存加速,则将所述目标图片写入所述目标存储节点的内存中;如果所述缓存类型为SSD加速,则将所述目标图片写入所述目标存储节点的SSD中。
可选的,所述写入模块740,还用于:
将所述目标图片写入所述存储节点的磁盘。
可选的,所述写入模块740,用于:
如果所述目标存储节点当前的内存余量大于或等于所述目标图片的数据量,则将所述目标图片写入所述目标存储节点的内存中;
如果所述目标图片当前的内存余量小于所述目标图片的数据量,则在所述内存中删除写入时间点距离当前时间点最长的图片;
如果删除图片后的内存余量大于或等于所述目标图片的数据量,则将所述图片写入所述内存中,如果删除图片后的内存余量小于所述目标图片的数据量,则执行所述在所述内存中删除写入时间点距离当前时间点最长的图片的处理。
可选的,所述接收模块710,还用于接收请求方发送的目标图片的读取请求,其中,所述读取请求中携带有所述目标图片存储在磁盘的索引信息;
所述判断模块720,还用于判断所述目标存储节点所属的图片资源池是否支持加速写入;
如图8所示,所述装置还包括:
读取模块750,用于如果所述目标存储节点所属的图片资源池支持加速写入,则根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片;
发送模块760,用于向所述请求方发送所述目标图片。
可选的,所述读取模块750,用于:
如果所述目标图片对应的缓存类型为内存加速,则根据所述索引信息,确定所述目标图片存储在所述目标存储节点的内存中的第一索引;
如果在所述目标存储节点的内存对应的索引表中查找到所述第一索引,则根据所述第一索引,从所述目标存储节点的内存中读取所述目标图片;如果在所述目标存储节点的内存对应的索引表中未查找到所述第一索引,则从磁盘中读取所述目标图片;
如果所述目标图片对应的缓存类型为SSD加速,则根据所述索引信息,确定所述目标图片存储在SSD中的第二索引,如果在所述目标存储节点配置的SSD对应的索引表中查找到所述第二索引,则根据所述第二索引,从所述目标存储节点配置的SSD中读取所述目标图片;
如果在所述目标存储节点配置的SSD对应的索引表中未查找到所述第二索引,则根据所述读取请求,从磁盘中读取所述目标图片。
本公开实施例中,云存储***中的存储节点配置有磁盘、内存和SSD。在云存储***中写入目标图片时,目标存储节点可以接收目标图片的写入请求,判断目标存储节点所属的图片资源池是否支持加速写入,如果存储节点所属的图片资源池支持加速写入,则判断目标图片的数据量与目标数值的大小,如果目标图片的数据量小于目标数值,则在存储节点的配置信息中获取配置的缓存类型。如果缓存类型为内存加速,则目标存储节点将目标图片写入目标存储节点的内存中,如果缓存类型为SSD加速,则目标存储节点将目标图片写入目标存储节点配置的SSD中。这样,在图片的数据量比较小时,可以将图片存储至内存或SSD中,由于内存或SSD写入速度较快,所以在图片的数据量比较小时,可以相对提升图片的写入速度,进而可以提高写入效率。
需要说明的是:上述实施例提供的写入图片的装置在写入图片时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的写入图片的装置与写入图片的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9是本发明实施例提供的一种存储节点的结构示意图,该存储节点900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)901和一个或一个以上的存储器902,其中,所述存储器902中存储有至少一条指令,所述至少一条指令由所述处理器901加载并执行以实现上述确定写入图片的方法步骤。
本公开实施例还提供了一种存储节点,所述存储节点包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述所述的写入图片的方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述所述的写入图片的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种写入图片的方法,其特征在于,所述方法应用于云存储***中的存储节点,所述存储节点配置有磁盘、内存和固态硬盘SSD;所述方法包括:
目标存储节点接收目标图片的写入请求,将所述目标图片写入所述目标存储节点的磁盘,判断所述目标存储节点所属的图片资源池是否支持加速写入;
在所述目标存储节点所属的图片资源池支持加速写入时,如果所述目标图片的数据量小于目标数值,则在所述存储节点的配置信息中获取配置的缓存类型,其中,所述缓存类型为所述目标图片在所述目标存储节点写入时的缓存类型;
如果所述缓存类型为内存加速,则所述目标存储节点将所述目标图片写入所述目标存储节点的内存中;
如果所述缓存类型为SSD加速,则所述目标存储节点将所述目标图片写入所述目标存储节点的SSD中;
其中,所述缓存类型的获取过程包括:当终端显示的云存储***管理页面中的缓存类型的选项被点击时,终端显示未设置缓存类型的存储节点,获取用户为目标存储节点选择的缓存类型,生成缓存类型的设置信息,所述设置信息中携带有选择的缓存类型,向目标存储节点发送所述设置信息,所述目标存储节点将设置信息中的缓存类型更新到配置信息中。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标图片写入所述目标存储节点的内存中,包括:
如果所述目标存储节点当前的内存余量大于或等于所述目标图片的数据量,则将所述目标图片写入所述目标存储节点的内存中;
如果所述目标图片当前的内存余量小于所述目标图片的数据量,则在所述内存中删除写入时间点距离当前时间点最长的图片;
如果删除图片后的内存余量大于或等于所述目标图片的数据量,则将所述图片写入所述内存中,如果删除图片后的内存余量小于所述目标图片的数据量,则执行所述在所述内存中删除写入时间点距离当前时间点最长的图片的处理。
3.根据权利要求1至2任一所述的方法,其特征在于,所述方法还包括:
所述目标存储节点接收请求方发送的所述目标图片的读取请求,判断所述目标存储节点所属的图片资源池是否支持加速写入,其中,所述读取请求中携带有所述目标图片存储在磁盘的索引信息;
如果所述目标存储节点所属的图片资源池支持加速写入,则根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片;
向所述请求方发送所述目标图片。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片,包括:
如果所述目标图片对应的缓存类型为内存加速,则根据所述索引信息,确定所述目标图片存储在所述目标存储节点的内存中的第一索引;
如果在所述目标存储节点的内存对应的索引表中查找到所述第一索引,则根据所述第一索引,从所述目标存储节点的内存中读取所述目标图片;如果在所述目标存储节点的内存对应的索引表中未查找到所述第一索引,则从磁盘中读取所述目标图片;
如果所述目标图片对应的缓存类型为SSD加速,则根据所述索引信息,确定所述目标图片存储在SSD中的第二索引,如果在所述目标存储节点配置的SSD对应的索引表中查找到所述第二索引,则根据所述第二索引,从所述目标存储节点配置的SSD中读取所述目标图片;
如果在所述目标存储节点配置的SSD对应的索引表中未查找到所述第二索引,则根据所述读取请求,从磁盘中读取所述目标图片。
5.一种写入图片的装置,其特征在于,所述装置应用于云存储***中的存储节点,所述存储节点配置有磁盘、内存和固态硬盘SSD;所述装置包括:
接收模块,用于使目标存储节点接收目标图片的写入请求;
写入模块,用于将所述目标图片写入所述目标存储节点的磁盘;
判断模块,用于判断所述目标存储节点所属的图片资源池是否支持加速写入;
确定模块,用于在所述目标存储节点所属的图片资源池支持加速写入时,如果所述目标图片的数据量小于目标数值,则在所述存储节点的配置信息中获取配置的缓存类型,其中,所述缓存类型为所述目标图片在所述目标存储节点写入时的缓存类型;
写入模块还用于如果所述缓存类型为内存加速,则将所述目标图片写入所述目标存储节点的内存中;如果所述缓存类型为SSD加速,则将所述目标图片写入所述目标存储节点的SSD中;
其中,所述缓存类型的获取过程包括:当终端显示的云存储***管理页面中的缓存类型的选项被点击时,终端显示未设置缓存类型的存储节点,获取用户为目标存储节点选择的缓存类型,生成缓存类型的设置信息,所述设置信息中携带有选择的缓存类型,向目标存储节点发送所述设置信息,所述目标存储节点将设置信息中的缓存类型更新到配置信息中。
6.根据权利要求5所述的装置,其特征在于,所述写入模块,用于:
如果所述目标存储节点当前的内存余量大于或等于所述目标图片的数据量,则将所述目标图片写入所述目标存储节点的内存中;
如果所述目标图片当前的内存余量小于所述目标图片的数据量,则在所述内存中删除写入时间点距离当前时间点最长的图片;
如果删除图片后的内存余量大于或等于所述目标图片的数据量,则将所述图片写入所述内存中,如果删除图片后的内存余量小于所述目标图片的数据量,则执行所述在所述内存中删除写入时间点距离当前时间点最长的图片的处理。
7.根据权利要求5至6任一所述的装置,其特征在于,所述接收模块,还用于接收请求方发送的目标图片的读取请求,其中,所述读取请求中携带有所述目标图片存储在磁盘的索引信息;
所述判断模块,还用于判断所述目标存储节点所属的图片资源池是否支持加速写入;
所述装置还包括:
读取模块,用于如果所述目标存储节点所属的图片资源池支持加速写入,则根据所述目标图片对应的缓存类型和所述读取请求,读取所述目标图片;
发送模块,用于向所述请求方发送所述目标图片。
8.根据权利要求7所述的装置,其特征在于,所述读取模块,用于:
如果所述目标图片对应的缓存类型为内存加速,则根据所述索引信息,确定所述目标图片存储在所述目标存储节点的内存中的第一索引;
如果在所述目标存储节点的内存对应的索引表中查找到所述第一索引,则根据所述第一索引,从所述目标存储节点的内存中读取所述目标图片;如果在所述目标存储节点的内存对应的索引表中未查找到所述第一索引,则从磁盘中读取所述目标图片;
如果所述目标图片对应的缓存类型为SSD加速,则根据所述索引信息,确定所述目标图片存储在SSD中的第二索引,如果在所述目标存储节点配置的SSD对应的索引表中查找到所述第二索引,则根据所述第二索引,从所述目标存储节点配置的SSD中读取所述目标图片;
如果在所述目标存储节点配置的SSD对应的索引表中未查找到所述第二索引,则根据所述读取请求,从磁盘中读取所述目标图片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910786664.8A CN111399753B (zh) | 2019-08-23 | 2019-08-23 | 写入图片的方法和装置 |
PCT/CN2020/110330 WO2021036909A1 (zh) | 2019-08-23 | 2020-08-20 | 写入图片的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910786664.8A CN111399753B (zh) | 2019-08-23 | 2019-08-23 | 写入图片的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399753A CN111399753A (zh) | 2020-07-10 |
CN111399753B true CN111399753B (zh) | 2022-08-05 |
Family
ID=71430246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910786664.8A Active CN111399753B (zh) | 2019-08-23 | 2019-08-23 | 写入图片的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111399753B (zh) |
WO (1) | WO2021036909A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399753B (zh) * | 2019-08-23 | 2022-08-05 | 杭州海康威视***技术有限公司 | 写入图片的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储***及数据管理方法 |
US9075754B1 (en) * | 2011-12-31 | 2015-07-07 | Emc Corporation | Managing cache backup and restore |
CN107301090A (zh) * | 2016-04-14 | 2017-10-27 | 华为技术有限公司 | 在存储服务器中为应用设置数据处理路径的方法及装置 |
CN108008912A (zh) * | 2016-11-02 | 2018-05-08 | 华为技术有限公司 | 一种基于dram的存储缓存方法和智能终端 |
CN108845768A (zh) * | 2018-06-19 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201508484A (zh) * | 2013-08-22 | 2015-03-01 | Acer Inc | 資料寫入方法、硬碟模組以及資料寫入系統 |
US9251064B2 (en) * | 2014-01-08 | 2016-02-02 | Netapp, Inc. | NVRAM caching and logging in a storage system |
US10013344B2 (en) * | 2014-01-14 | 2018-07-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Enhanced SSD caching |
CN107463627B (zh) * | 2017-07-11 | 2020-08-11 | 深圳市云领天下科技有限公司 | 一种图片加载方法及终端 |
CN107861891A (zh) * | 2017-11-14 | 2018-03-30 | 郑州天迈科技股份有限公司 | 用于公交车载硬盘的音视频数据存取方法 |
CN108268219B (zh) * | 2018-02-01 | 2021-02-09 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
CN111399753B (zh) * | 2019-08-23 | 2022-08-05 | 杭州海康威视***技术有限公司 | 写入图片的方法和装置 |
-
2019
- 2019-08-23 CN CN201910786664.8A patent/CN111399753B/zh active Active
-
2020
- 2020-08-20 WO PCT/CN2020/110330 patent/WO2021036909A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075754B1 (en) * | 2011-12-31 | 2015-07-07 | Emc Corporation | Managing cache backup and restore |
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储***及数据管理方法 |
CN107301090A (zh) * | 2016-04-14 | 2017-10-27 | 华为技术有限公司 | 在存储服务器中为应用设置数据处理路径的方法及装置 |
CN108008912A (zh) * | 2016-11-02 | 2018-05-08 | 华为技术有限公司 | 一种基于dram的存储缓存方法和智能终端 |
CN108845768A (zh) * | 2018-06-19 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021036909A1 (zh) | 2021-03-04 |
CN111399753A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
WO2022063322A1 (en) | Hard drive migration method, distributed storage cluster system and storage medium | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
WO2022095366A1 (zh) | 基于Redis的数据读取方法、装置、设备及可读存储介质 | |
CN113806300B (zh) | 数据存储方法、***、装置、设备及存储介质 | |
US20240061712A1 (en) | Method, apparatus, and system for creating training task on ai training platform, and medium | |
CN113051221A (zh) | 数据存储方法、装置、介质、设备及分布式文件*** | |
CN107181773A (zh) | 分布式存储***的数据存储及数据管理方法、设备 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN106095331B (zh) | 一种固定大文件内部资源的控制方法 | |
CN113467719B (zh) | 数据写入方法及装置 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN102724301B (zh) | 云数据库***以及云数据读写处理方法、设备 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN111399999B (zh) | 计算机资源处理方法、装置、可读存储介质和计算机设备 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN117435569A (zh) | 缓存***动态扩容方法、装置、设备、介质和程序产品 | |
CN114969165B (zh) | 数据查询请求的处理方法、装置、设备及存储介质 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
WO2018028321A1 (zh) | 一种虚拟外置存储设备的管理方法、装置及终端 | |
CN114490540A (zh) | 数据存储方法、介质、装置和计算设备 | |
CN113590273A (zh) | 事务处理方法、***、设备及存储介质 | |
CN115904211A (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 |