CN111803917A - 资源的处理方法和装置 - Google Patents

资源的处理方法和装置 Download PDF

Info

Publication number
CN111803917A
CN111803917A CN202010619437.9A CN202010619437A CN111803917A CN 111803917 A CN111803917 A CN 111803917A CN 202010619437 A CN202010619437 A CN 202010619437A CN 111803917 A CN111803917 A CN 111803917A
Authority
CN
China
Prior art keywords
resource
target
storage
database
disk file
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
CN202010619437.9A
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 Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
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 Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010619437.9A priority Critical patent/CN111803917A/zh
Publication of CN111803917A publication Critical patent/CN111803917A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/28Output arrangements for video game devices responding to control signals received from the game device for affecting ambient conditions, e.g. for vibrating players' seats, activating scent dispensers or affecting temperature or light
    • A63F13/285Generating tactile feedback signals via the game input device, e.g. force feedback
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种资源的处理方法和装置,其中,该方法包括:接收存储请求,其中,存储请求用于请求将目标资源存储到数据库中,存储请求携带了目标资源的资源标识和资源地址;响应存储请求从数据库中获取目标磁盘文件,其中,数据库被设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源;从资源地址下载目标资源;将目标资源顺序写入目标磁盘文件,并根据资源标识记录目标资源的存储信息。本申请解决了相关技术中资源的处理效率较低的技术问题。

Description

资源的处理方法和装置
技术领域
本申请涉及计算机领域,尤其涉及一种资源的处理方法和装置。
背景技术
目前的资源存储方式是对每一个资源(图像、音频、视频、文本等等)落盘为一个资源文件,这种方案简单易操作,但是会使每次写入资源时,都是随机读写,硬盘都会进行寻道操作,而寻道是硬盘中最耗时的操作。而在读取资源的过程中查找资源信息需要多次硬盘读取,速度慢,吞吐量低。上述目前使用的资源的处理方式导致了资源处理的效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种资源的处理方法和装置,以至少解决相关技术中资源的处理效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种资源的处理方法,包括:
接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
从所述资源地址下载所述目标资源;
将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
可选地,响应所述存储请求从所述数据库中获取目标磁盘文件包括:
确定所述数据库中是否已建立磁盘文件;
在确定所述数据库中已建立磁盘文件的情况下,确定已建立的磁盘文件是否存在写入空间;
在确定已建立的磁盘文件存在写入空间的情况下,将已建立的磁盘文件确定为所述目标磁盘文件;
在确定所述数据库中未建立磁盘文件,或者,已建立的磁盘文件不存在写入空间的情况下,从所述数据库中分配目标数据量的存储空间作为所述目标磁盘文件。
可选地,将所述目标资源顺序写入所述目标磁盘文件包括:
将所述目标资源拷贝到所述数据库的第一缓存页;
每隔第一时间将所述第一缓存页上缓存的数据顺序写入所述目标磁盘文件。
可选地,将所述目标资源拷贝到所述数据库的所述第一缓存页包括:
将所述目标资源映射到目标虚拟地址;
对所述目标虚拟地址进行读写操作;
响应所述读写操作将与所述目标虚拟地址具有映射关系的所述目标资源拷贝到所述第一缓存页。
可选地,根据所述资源标识记录所述目标资源的存储信息包括:
生成所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
将所述存储信息***目标资源信息文件。
可选地,将所述存储信息***所述目标资源信息文件包括:
从多个资源信息文件中确定所述资源标识所对应的所述目标资源信息文件;
根据所述资源标识和所述存储信息的数据量确定所述存储信息在所述目标资源信息文件中的信息位置;
将所述存储信息***到所述目标资源信息文件的所述信息位置上。
可选地,将所述存储信息***所述目标资源信息文件包括:
将所述存储信息写入第二缓存页;
每隔第二时间将所述第二缓存页上缓存的数据***所述目标资源信息文件。
可选地,在将所述目标资源顺序写入所述目标磁盘文件之后,所述方法还包括:
通过多个映射函数对所述资源标识进行映射,得到多个映射值;
从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
将所述目标位置的字符设置为所述第一字符。
根据本申请实施例的另一个方面,还提供了另一种资源的处理方法,包括:
接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
从所述目标磁盘文件中获取所述目标资源;
发送所述目标资源。
可选地,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件包括:
从多个资源信息文件中确定所述资源标识所对应的目标资源信息文件;
根据所述资源标识和存储信息的数据量确定所述资源标识对应的存储信息在所述目标资源信息文件中的信息位置;
从所述目标资源信息文件的所述信息位置上获取所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
从所述目标磁盘文件的地址获取所述目标磁盘文件。
可选地,从所述目标磁盘文件中获取所述目标资源包括:
从所述目标磁盘文件的所述存储位置获取所述目标资源;
将所述目标资源拷贝到预设缓存中。
可选地,发送所述目标资源包括:
获取所述目标资源在所述预设缓存中的位置和偏移量;
发送在所述预设缓存中位于所述位置和所述偏移量上的所述目标资源。
可选地,在响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件之前,所述方法还包括:
通过多个映射函数对所述资源标识进行映射,得到多个映射值;
从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置上的字符,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
在所述目标位置上的字符均为所述第一字符的情况下,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件。
根据本申请实施例的另一方面,还提供了一种资源的处理装置,包括:
第一接收模块,用于接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
第一获取模块,用于响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
下载模块,用于从所述资源地址下载所述目标资源;
写入模块,用于将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
根据本申请实施例的另一方面,还提供了另一种资源的处理装置,包括:
第二接收模块,用于接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
第二获取模块,用于响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
第三获取模块,用于从所述目标磁盘文件中获取所述目标资源;
发送模块,用于发送所述目标资源。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,采用接收存储请求,其中,存储请求用于请求将目标资源存储到数据库中,存储请求携带了目标资源的资源标识和资源地址;响应存储请求从数据库中获取目标磁盘文件,其中,数据库被设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源;从资源地址下载目标资源;将目标资源顺序写入目标磁盘文件,并根据资源标识记录目标资源的存储信息的方式,将数据库设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源,通过将多个资源用追加写的方式写在同一个目标磁盘文件中,不再以资源为单位生成资源文件,实现了将接收到的存储请求所请求存储的目标资源顺序写入数据库,从而使用顺序读写代替随机读写,达到了提高数据处理性能的目的,从而实现了提高资源的处理效率的技术效果,进而解决了相关技术中资源的处理效率较低的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的资源的处理方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的资源的处理方法的流程图;
图3是根据本申请实施例的另一种可选的资源的处理方法的流程图;
图4是根据本申请实施例的一种可选的资源的处理装置的示意图;
图5是根据本申请实施例的另一种可选的资源的处理装置的示意图;
图6是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一方面,提供了一种资源的处理的方法实施例。
可选地,在本实施例中,上述资源的处理方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的资源的处理方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的资源的处理方法也可以是由安装在其上的客户端来执行。
图2是根据本申请实施例的一种可选的资源的处理方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
步骤S204,响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
步骤S206,从所述资源地址下载所述目标资源;
步骤S208,将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
通过上述步骤S202至步骤S208,将数据库设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源,通过将多个资源用追加写的方式写在同一个目标磁盘文件中,不再以资源为单位生成资源文件,实现了将接收到的存储请求所请求存储的目标资源顺序写入数据库,从而使用顺序读写代替随机读写,达到了提高数据处理性能的目的,从而实现了提高资源的处理效率的技术效果,进而解决了相关技术中资源的处理效率较低的技术问题。
可选地,在本实施例中,上述资源的处理方法可以但不限于由上述服务器来执行。比如:如果上述目标资源为图像资源,上述资源的处理方法可以但不限于由图像存储服务器来执行。
在步骤S202提供的技术方案中,目标资源可以但不限于包括任何形式的资源,比如:音频资源、视频资源、图像资源、文本资源等等。
可选地,在本实施例中,上述存储请求可以但不限于是由客户端发送的。
可选地,在本实施例中,资源标识可以但不限于包括:资源ID(Identitydocument),比如:图像资源的图像ID。资源地址可以但不限于为目标资源的存储地址,比如:图像资源的图像URL(Uniform Resource Locator,统一资源定位符)。
在步骤S204提供的技术方案中,数据库被设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源。目标磁盘文件可以但不限于是逐个创建的,每个目标磁盘文件预先设置一定存储量的存储空间。当一个目标磁盘文件的存储空间用尽时,则创建下一个目标磁盘文件。
可选地,在本实施例中,每个目标磁盘文件的大小可以但不限于为10M。
在步骤S206提供的技术方案中,资源地址用于指示目标资源的下载地址,通过访问资源地址来下载目标资源。
可选地,在本实施例中,可以但不限于将目标资源下载到socket buffer中。
在步骤S208提供的技术方案中,采用顺序写入的方式将目标资源存储到目标磁盘文件中,对于普通磁盘来说,顺序写入4kb数据块的性能可以达到80MB/s,而随机写入性能仅为0.2MB/s。从而提高了数据库的读写性能。
可选地,在本实施例中,根据资源标识记录目标资源的存储信息,从而在需要读取目标资源时能够根据资源标识迅速获取到目标资源。
作为一种可选的实施例,响应所述存储请求从所述数据库中获取目标磁盘文件包括:
S11,确定所述数据库中是否已建立磁盘文件;
S12,在确定所述数据库中已建立磁盘文件的情况下,确定已建立的磁盘文件是否存在写入空间;
S13,在确定已建立的磁盘文件存在写入空间的情况下,将已建立的磁盘文件确定为所述目标磁盘文件;
S14,在确定所述数据库中未建立磁盘文件,或者,已建立的磁盘文件不存在写入空间的情况下,从所述数据库中分配目标数据量的存储空间作为所述目标磁盘文件。
可选地,在本实施例中,当接收到储存图像请求时,判断当前是否已建立了目标磁盘文件。若已建立目标磁盘文件,则判断目标磁盘文件是否还有写入空间。若有写入空间,则继续使用该目标磁盘文件。若不存在目标磁盘文件或目标磁盘文件不存在足够的写入空间,则预分配一个10M的新的目标磁盘文件待使用。
作为一种可选的实施例,将所述目标资源顺序写入所述目标磁盘文件包括:
S21,将所述目标资源拷贝到所述数据库的第一缓存页;
S22,每隔第一时间将所述第一缓存页上缓存的数据顺序写入所述目标磁盘文件。
在原有的资源存储方案中下载资源到内存中,然后写入磁盘。但是由于操作***分为内核态和用户态,在用户进程中资源下载会下载到用户内存,用户内存无法直接与硬盘交互,需要再将数据从用户内存拷贝到内核内存,再写入磁盘。中间存在一次不必要的内存拷贝,消耗cpu与内存资源。
可选地,在本实施例中,为了提高资源的处理性能,可以但不限于使用内存映射的方式写入目标资源。
可选地,在本实施例中,利用第一缓存页将一个文件映射到用户进程的地址空间,实现文件磁盘地址和用户进程虚拟地址空间中一段虚拟地址的一一对应关系。实现这样的对应关系后,用户进程就可以采用指针的方式读写操作这一段内存,而***会自动回写脏页面(即缓存了数据的第一缓存页)到对应的目标磁盘文件上,即完成了对资源的操作,减少资源在用户空间和内核空间之间的内存拷贝。
可选地,在本实施例中,可以但不限于通过后台任务定时调用fsyncdata方法将第一缓存页上缓存的数据顺序写入目标磁盘文件。
作为一种可选的实施例,将所述目标资源拷贝到所述数据库的所述第一缓存页包括:
S31,将所述目标资源映射到目标虚拟地址;
S32,对所述目标虚拟地址进行读写操作;
S33,响应所述读写操作将与所述目标虚拟地址具有映射关系的所述目标资源拷贝到所述第一缓存页。
可选地,在本实施例中,可以但不限于通过调用内核空间的***调用函数mmap,实现文件物理地址(目标资源)和进程虚拟地址(目标虚拟地址)的一一映射关系。
在一个可选的实施方式中,可以但不限于通过以下过程使用内存映射的方式将下载的图像资源写入到目标磁盘文件中:
步骤1,调用内核空间的***调用函数mmap,实现文件物理地址和进程虚拟地址的一一映射关系
步骤2,发起对文件的访问,判断***中是否存在该缓存页(缓存页为内核内存),实现文件内容到内核内存的拷贝。若不存在则引发缺页异常。
步骤3,***将读取到的socket buffer网络数据拷贝到缓存页中,至此下载图片至服务器完成,不再进行写入磁盘操作。
步骤4,后续后台任务定时调用fsyncdata方法将缓存页数据写入磁盘文件中,避免数据丢失。这一步将多次磁盘随机写入转化为一次顺序写,大幅提高了磁盘写入效率。
作为一种可选的实施例,根据所述资源标识记录所述目标资源的存储信息包括:
S41,生成所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
S42,将所述存储信息***目标资源信息文件。
可选地,在本实施例中,在目标资源信息文件中记录资源标识、目标磁盘文件的地址和目标资源的存储位置等存储信息,以便后续对存入的目标资源进行读取操作。
可选地,在本实施例中,目标资源的存储位置用于指示目标资源在目标磁盘文件中的存储起始位置和存储结束位置,从而能够对目标资源进行精确定位。
可选地,在本实施例中,存储信息还可以但不限于包括存储时间、资源地址等等。
比如:以图像资源为例,存储信息可以但不限于包括:图像id,图像url,目标磁盘文件地址,存储起始位置,存储结束位置,存储时间等信息。
作为一种可选的实施例,将所述存储信息***所述目标资源信息文件包括:
S51,从多个资源信息文件中确定所述资源标识所对应的所述目标资源信息文件;
S52,根据所述资源标识和所述存储信息的数据量确定所述存储信息在所述目标资源信息文件中的信息位置;
S53,将所述存储信息***到所述目标资源信息文件的所述信息位置上。
在目前的在资源信息文件中***资源的存储信息的方案中,将全部的存储信息写入同一个资源信息文件中,资源信息文件中所有存储信息根据资源标识进行排序,每次***时先使用二分查找法找到资源的***位置,进行***。虽然使用二分法使得每次查找时间复杂度降到O(logn),但是由于存在多次硬盘随机读,因此查找资源***位置的效率低。同时资源数据和存储信息存储在不同的文件下,这样每次硬盘写入资源数据后再写入存储信息,使得硬盘每次进行的是随机写过程,影响了***的性能。
可选地,在本实施例中,考虑到在***层面资源标识是递增的,虽然由于并发性,使得写入时资源标识顺序发生改变,但是在一段时间内来看,资源标识依然是有序的,因此可以将资源信息文件拆分成多个小文件i(i=1,2,3,....,n),得到多个资源信息文件,每个小文件保存一定数量W的存储信息,第一个文件保存资源标识从1至W的存储信息,第二个文件保存资源标识从W+1至2W的存储信息,以此类推。每个文件中的存储信息都是有序的,以资源标识为序递增排序。
可选地,在本实施例中,每条存储信息所占大小可以但不限于定义为固定长度,比如:资源标识占A字节,目标磁盘文件的地址占B字节,存储起始位置占C字节,存储结束位置占D字节,存储信息共占M=A+B+C+D字节。如果存储信息还包括资源地址和存储时间,则资源地址可以占B字节,储存时间可以占F字节,那么存储信息共占M=A+B+C+D+E+F字节。
可选地,在本实施例中,可以根据资源标识和存储信息的数据量(上述的M值)计算存储信息应当写入的文件位置,如资源标识=3W+2的存储信息应储存于第3个资源信息文件的第M+1字节到第2M字节中。
作为一种可选的实施例,将所述存储信息***所述目标资源信息文件包括:
S61,将所述存储信息写入第二缓存页;
S62,每隔第二时间将所述第二缓存页上缓存的数据***所述目标资源信息文件。
可选地,在本实施例中,可以将存储信息写入第二缓存页中,而不实时写入磁盘。后台定时任务会每隔第二时间将第二缓存页上的数据刷入磁盘中。这样将***中多次随机写入磁盘合并成一次顺序写,从而提高了***的性能。
在一个可选的实施方式中,以图像资源的存储过程为例。图像资源的图像信息可以但不限于通过以下过程存储到图像信息文件中:
步骤a,将图片信息文件拆分成多个小文件i(i=1,2,3,....,n),每个小文件保存10000条图像信息,第一个文件保存图像id从1-10000的图像信息,第二个文件保存图像id从10001-20000的图像信息,以此类推。每个文件中的图像信息都是有序的,以图像id为序递增排序。
步骤b,每条图像信息所占空间大小定义为固定长度,其中图像id占8字节,图像url占300字节,磁盘文件地址占300字节,存储起始位置占4字节,存储结束位置占4字节,储存时间占8字节,共占624字节。
步骤c,根据图像id计算图像信息应当写入的图像信息文件位置,如:id=30002的图像信息应储存于第3个图像信息文件的第625字节到第1248字节中。
步骤d,将图像信息写入第二缓存页中,并不实时写入磁盘。
步骤e,后台定时任务每30s将第二缓存页上的数据刷入磁盘中。
作为一种可选的实施例,在将所述目标资源顺序写入所述目标磁盘文件之后,还包括:
S71,通过多个映射函数对所述资源标识进行映射,得到多个映射值;
S72,从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
S73,将所述目标位置的字符设置为所述第一字符。
可选地,在本实施例中,为了避免每次校验资源标识所对应的资源是否存在于数据库时,都需要从资源信息文件中查找,而进行一次不必要的磁盘读写。因此可以在内存中建立资源过滤器,用于对于不存在的资源标识可以直接通过资源过滤器进行拦截。
可选地,在本实施例中,每次新增加目标资源后都可以更新资源过滤器,将这个目标资源对应的资源标识在资源过滤器中设置为已存在。
可选地,在本实施例中,由于资源数量多,即使仅存储服务器上所有资源标识也会占用大量内存,因此为了节省内存开销,可以使用多次映射和置位的方式代替资源标识进行存储。
可选地,在本实施例中,多个映射函数可以但不限于为多个不同的hash函数,比如:5个不同的hash函数。
可选地,在本实施例中,第一字符和第二字符为不同的字符,比如:第一字符为1,第二字符为0;或者,第一字符为0,第二字符为1。第一字符和第二字符可以为数字、字母、文字等等不同的形式。
例如:以图像资源为例,可以通过5个不同的hash函数对图像id进行映射,得到5个不同的hash值。将资源过滤器中这5个hash值所对应的bitset位置为1来表示该图像id已存在。
根据本申请实施例的另一方面,提供了另一种资源的处理的方法实施例。
图3是根据本申请实施例的另一种可选的资源的处理方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S302,接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
步骤S304,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
步骤S306,从所述目标磁盘文件中获取所述目标资源;
步骤S308,发送所述目标资源。
通过上述步骤S302至步骤S308,将数据库设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源,通过将多个资源用追加写的方式写在同一个目标磁盘文件中,不再以资源为单位生成资源文件,实现了将接收到的存储请求所请求存储的目标资源顺序写入数据库,从而使用顺序读写代替随机读写,达到了提高数据处理性能的目的,从而实现了提高资源的处理效率的技术效果,进而解决了相关技术中资源的处理效率较低的技术问题。
可选地,在本实施例中,上述资源的处理方法可以但不限于由上述服务器来执行。比如:如果上述目标资源为图像资源,上述资源的处理方法可以但不限于由图像存储服务器来执行。
在步骤S302提供的技术方案中,目标资源可以但不限于包括任何形式的资源,比如:音频资源、视频资源、图像资源、文本资源等等。
可选地,在本实施例中,上述获取请求可以但不限于是由客户端发送的。
可选地,在本实施例中,资源标识可以但不限于包括:资源ID(Identitydocument),比如:图像资源的图像ID。
在步骤S304提供的技术方案中,数据库中创建了一个或者多个磁盘文件,每个磁盘文件用于存储多个请求存储到数据库的资源。磁盘文件可以但不限于是逐个创建的,每个磁盘文件预先设置一定存储量的存储空间。当一个磁盘文件的存储空间用尽时,则创建下一个磁盘文件。
可选地,在本实施例中,根据目标资源的资源标识能够查找到目标资源所在的目标磁盘文件。
作为一种可选的实施例,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件包括:
S81,从多个资源信息文件中确定所述资源标识所对应的目标资源信息文件;
S82,根据所述资源标识和存储信息的数据量确定所述资源标识对应的存储信息在所述目标资源信息文件中的信息位置;
S83,从所述目标资源信息文件的所述信息位置上获取所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
S84,从所述目标磁盘文件的地址获取所述目标磁盘文件。
可选地,在本实施例中,数据库中创建了多个资源信息文件用来记录资源的存储信息。根据资源标识能够定位到目标资源的存储信息所在的目标资源信息文件。
可选地,在本实施例中,每条存储信息所占大小可以但不限于定义为固定长度。因此,根据资源标识和存储信息的数据量能够定位到资源标识对应的存储信息在目标资源信息文件中的信息位置。
可选地,在本实施例中,资源的存储信息中记录了目标磁盘文件的地址,从而根据目标磁盘文件的地址查找到目标资源所在的目标磁盘文件。
作为一种可选的实施例,从所述目标磁盘文件中获取所述目标资源包括:
S91,从所述目标磁盘文件的所述存储位置获取所述目标资源;
S92,将所述目标资源拷贝到预设缓存中。
可选地,在本实施例中,资源的存储信息中还记录了目标资源的存储位置,从而根据目标资源的存储位置查找到目标磁盘文件中的目标资源,并将目标资源拷贝到预设缓存中。
可选地,在本实施例中,预设缓存可以但不限于包括kernel buffer。
作为一种可选的实施例,发送所述目标资源包括:
S101,获取所述目标资源在所述预设缓存中的位置和偏移量;
S102,发送在所述预设缓存中位于所述位置和所述偏移量上的所述目标资源。
可选地,在本实施例中,可以但不限于采用零拷贝的方式发送目标资源。使用零拷贝方式后,避免了两次内核和应用间的数据拷贝,节省了cpu和内存资源消耗。
例如:DMA copy将磁盘数据copy到kernel buffer中,并向socket buffer中追加当前要发送的数据在kernel buffer中的位置和偏移量。DMA gather copy根据socketbuffer中的位置和偏移量直接将kernel buffer中的数据copy到网卡上进行发送。
作为一种可选的实施例,在响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件之前,还包括:
S111,通过多个映射函数对所述资源标识进行映射,得到多个映射值;
S112,从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置上的字符,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
S113,在所述目标位置上的字符均为所述第一字符的情况下,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件。
可选地,在本实施例中,在内存中建立了资源过滤器,用于对于不存在的资源标识可以直接通过资源过滤器进行拦截。
可选地,在本实施例中,每次接收到获取请求可以首先查找资源过滤器,来确定所请求的目标资源对应的资源标识在资源过滤器中是否存在。如果存在,则响应获取请求从数据库中创建的一个或者多个磁盘文件中获取资源标识所对应的目标磁盘文件,从而获取到目标资源。
可选地,在本实施例中,由于资源数量多,即使仅存储服务器上所有资源标识也会占用大量内存,因此为了节省内存开销,可以使用多次映射和置位的方式代替资源标识进行存储。
可选地,在本实施例中,多个映射函数可以但不限于为多个不同的hash函数,比如:5个不同的hash函数。
可选地,在本实施例中,第一字符和第二字符为不同的字符,比如:第一字符为1,第二字符为0;或者,第一字符为0,第二字符为1。第一字符和第二字符可以为数字、字母、文字等等不同的形式。
可选地,在本实施例中,如果目标位置上的字符均为第一字符则表示资源过滤器中存在该目标资源对应的资源标识。
在一个可选的实施方式中,从图像存储服务器中获取图像资源的过程可以但不限于包括以下步骤:
步骤A,接收到获取图像的请求,请求中包括图像id。
步骤B,根据资源过滤器判断该图像id是否存在。
步骤B1,通过5个不同的hash函数对图像id进行映射,得到5个不同的hash值。
步骤B2,判断5个hash值所对应的bitset位是否置为1。
步骤B3,若不全为1,则说明图像不存在,返回NotFound错误码。
步骤C,若存在,根据图像id获取图像资源的存储信息的存储位置,如id=30002的存于第3个资源信息文件的第625字节到第1248字节中。
步骤D,读取该存储位置,获取图像id所对用的存储信息(图像id,图像url,磁盘文件地址,存储起始位置,存储结束位置,存储时间)。
步骤E,若未读取到存储信息,则说明图像不存在,返回NotFound错误码。
步骤F,若可获取到存储信息,则拿到图像资源的储存位置,使用零拷贝方式将图像资源从硬盘拷贝到网卡设备中,作为response返回给请求方。
本申请还提供了一种可选实施例,该可选实施例提供了一种图像资源的读写方式,该图像资源的读写方式包括图像资源的写入过程和图像资源的读取过程。
可选地,在本可选实施例中,图像资源的写入过程可以但不限于包括以下步骤:
步骤11,接收到图像的存储请求,存储请求中包括图像id和图像url。
步骤12,确定图像储存的目标磁盘文件。
步骤13,下载图像并使用内存映射技术将图像写入该目标磁盘文件中。
步骤14,记录下该图像存储的目标磁盘文件的地址和在该目标磁盘文件中存储的起始位置和结束位置,生成该图像的存储信息,包括:图像id,图像url,目标磁盘文件地址,存储起始位置,存储结束位置,存储时间。
步骤15,在资源信息文件中***这条存储信息。
步骤16,更新用于记录数据库中存在的图像id的资源过滤器。
可选地,在本可选实施例中,图像资源的读取过程可以但不限于包括以下步骤:
步骤21,接收到图像的获取请求,获取请求中包括图像id。
步骤22,根据资源过滤器判断该图像id是否存在。
步骤23,若存在,根据图像id获取存储信息的存储位置。
步骤24,读取该存储位置,获取图像id所对用的存储信息,包括:图像id,图像url,目标磁盘文件地址,存储起始位置,存储结束位置,存储时间。
步骤25,若未读取到相关的存储信息,则说明图像不存在,返回NotFound错误码。
步骤26,若可获取到存储信息,则拿到图像内容的储存位置,使用零拷贝技术将图像内容从硬盘拷贝到网卡设备中,作为response返回给请求方。
通过本可选实施例,采用内存映射和零拷贝等多种技术避免用户态和内核态之间的内存拷贝,节省内存占用。使用bitset算法做到更高的性能与更低的内存消耗。采用了多种技术手段保证硬盘顺序写入,提高了硬盘写入性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述资源的处理方法的资源的处理装置。图4是根据本申请实施例的一种可选的资源的处理装置的示意图,如图4所示,该装置可以包括:
第一接收模块42,用于接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
第一获取模块44,用于响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
下载模块46,用于从所述资源地址下载所述目标资源;
写入模块48,用于将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
需要说明的是,该实施例中的第一接收模块42可以用于执行本申请实施例中的步骤S202,该实施例中的第一获取模块44可以用于执行本申请实施例中的步骤S204,该实施例中的下载模块46可以用于执行本申请实施例中的步骤S206,该实施例中的写入模块48可以用于执行本申请实施例中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,将数据库设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源,通过将多个资源用追加写的方式写在同一个目标磁盘文件中,不再以资源为单位生成资源文件,实现了将接收到的存储请求所请求存储的目标资源顺序写入数据库,从而使用顺序读写代替随机读写,达到了提高数据处理性能的目的,从而实现了提高资源的处理效率的技术效果,进而解决了相关技术中资源的处理效率较低的技术问题。
作为一种可选的实施例,所述第一获取模块包括:
第一确定单元,用于确定所述数据库中是否已建立磁盘文件;
第二确定单元,用于在确定所述数据库中已建立磁盘文件的情况下,确定已建立的磁盘文件是否存在写入空间;
第三确定单元,用于在确定已建立的磁盘文件存在写入空间的情况下,将已建立的磁盘文件确定为所述目标磁盘文件;
分配单元,用于在确定所述数据库中未建立磁盘文件,或者,已建立的磁盘文件不存在写入空间的情况下,从所述数据库中分配目标数据量的存储空间作为所述目标磁盘文件。
作为一种可选的实施例,写入模块包括:
拷贝单元,用于将所述目标资源拷贝到所述数据库的第一缓存页;
写入单元,用于每隔第一时间将所述第一缓存页上缓存的数据顺序写入所述目标磁盘文件。
作为一种可选的实施例,所述拷贝单元用于:
将所述目标资源映射到目标虚拟地址;
对所述目标虚拟地址进行读写操作;
响应所述读写操作将与所述目标虚拟地址具有映射关系的所述目标资源拷贝到所述第一缓存页。
作为一种可选的实施例,所述写入模块包括:
生成单元,用于生成所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
***单元,用于将所述存储信息***目标资源信息文件。
作为一种可选的实施例,所述***单元用于:
从多个资源信息文件中确定所述资源标识所对应的所述目标资源信息文件;
根据所述资源标识和所述存储信息的数据量确定所述存储信息在所述目标资源信息文件中的信息位置;
将所述存储信息***到所述目标资源信息文件的所述信息位置上。
作为一种可选的实施例,所述***单元用于:
将所述存储信息写入第二缓存页;
每隔第二时间将所述第二缓存页上缓存的数据***所述目标资源信息文件。
作为一种可选的实施例,所述装置还包括:
第一映射模块,用于在将所述目标资源顺序写入所述目标磁盘文件之后,通过多个映射函数对所述资源标识进行映射,得到多个映射值;
第四获取模块,用于从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
设置模块,用于将所述目标位置的字符设置为所述第一字符。
根据本申请实施例的另一个方面,还提供了另一种用于实施上述资源的处理方法的资源的处理装置。图5是根据本申请实施例的另一种可选的资源的处理装置的示意图,如图5所示,该装置可以包括:
第二接收模块52,用于接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
第二获取模块54,用于响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
第三获取模块56,用于从所述目标磁盘文件中获取所述目标资源;
发送模块58,用于发送所述目标资源。
需要说明的是,该实施例中的第二接收模块52可以用于执行本申请实施例中的步骤S302,该实施例中的第二获取模块54可以用于执行本申请实施例中的步骤S304,该实施例中的第三获取模块56可以用于执行本申请实施例中的步骤S306,该实施例中的发送模块58可以用于执行本申请实施例中的步骤S308。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,将数据库设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源,通过将多个资源用追加写的方式写在同一个目标磁盘文件中,不再以资源为单位生成资源文件,实现了将接收到的存储请求所请求存储的目标资源顺序写入数据库,从而使用顺序读写代替随机读写,达到了提高数据处理性能的目的,从而实现了提高资源的处理效率的技术效果,进而解决了相关技术中资源的处理效率较低的技术问题。
作为一种可选的实施例,所述第二获取模块包括:
第四确定单元,用于从多个资源信息文件中确定所述资源标识所对应的目标资源信息文件;
第五确定单元,用于根据所述资源标识和存储信息的数据量确定所述资源标识对应的存储信息在所述目标资源信息文件中的信息位置;
第一获取单元,用于从所述目标资源信息文件的所述信息位置上获取所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
第二获取单元,用于从所述目标磁盘文件的地址获取所述目标磁盘文件。
作为一种可选的实施例,所述第二获取单元用于:
从所述目标磁盘文件的所述存储位置获取所述目标资源;
将所述目标资源拷贝到预设缓存中。
作为一种可选的实施例,所述发送模块包括:
第三获取单元,用于获取所述目标资源在所述预设缓存中的位置和偏移量;
发送单元,用于发送在所述预设缓存中位于所述位置和所述偏移量上的所述目标资源。
作为一种可选的实施例,所述装置还包括:
第二映射模块,用于在响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件之前,通过多个映射函数对所述资源标识进行映射,得到多个映射值;
第五获取模块,用于从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置上的字符,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
第六获取模块,用于在所述目标位置上的字符均为所述第一字符的情况下,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述资源的处理方法的服务器或终端。
图6是根据本申请实施例的一种终端的结构框图,如图6所示,该终端可以包括:一个或多个(图中仅示出一个)处理器601、存储器603、以及传输装置605,如图6所示,该终端还可以包括输入输出设备607。
其中,存储器603可用于存储软件程序以及模块,如本申请实施例中的资源的处理方法和装置对应的程序指令/模块,处理器601通过运行存储在存储器603内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的资源的处理方法。存储器603可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器603可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置605用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置605包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置605为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器603用于存储应用程序。
处理器601可以通过传输装置605调用存储器603存储的应用程序,以执行下述步骤:
接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
从所述资源地址下载所述目标资源;
将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
采用本申请实施例,提供了一种资源的处理的方案。将数据库设置为允许创建一个或者多个目标磁盘文件,每个目标磁盘文件用于存储多个请求存储到数据库的资源,通过将多个资源用追加写的方式写在同一个目标磁盘文件中,不再以资源为单位生成资源文件,实现了将接收到的存储请求所请求存储的目标资源顺序写入数据库,从而使用顺序读写代替随机读写,达到了提高数据处理性能的目的,从而实现了提高资源的处理效率的技术效果,进而解决了相关技术中资源的处理效率较低的技术问题。
可选地,处理器601还可以通过传输装置605调用存储器603存储的应用程序,以执行下述步骤:
接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
从所述目标磁盘文件中获取所述目标资源;
发送所述目标资源。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图6所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,终端还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行资源的处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
从所述资源地址下载所述目标资源;
将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:
接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
从所述目标磁盘文件中获取所述目标资源;
发送所述目标资源。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (17)

1.一种资源的处理方法,其特征在于,包括:
接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
从所述资源地址下载所述目标资源;
将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
2.根据权利要求1所述的方法,其特征在于,响应所述存储请求从所述数据库中获取目标磁盘文件包括:
确定所述数据库中是否已建立磁盘文件;
在确定所述数据库中已建立磁盘文件的情况下,确定已建立的磁盘文件是否存在写入空间;
在确定已建立的磁盘文件存在写入空间的情况下,将已建立的磁盘文件确定为所述目标磁盘文件;
在确定所述数据库中未建立磁盘文件,或者,已建立的磁盘文件不存在写入空间的情况下,从所述数据库中分配目标数据量的存储空间作为所述目标磁盘文件。
3.根据权利要求1所述的方法,其特征在于,将所述目标资源顺序写入所述目标磁盘文件包括:
将所述目标资源拷贝到所述数据库的第一缓存页;
每隔第一时间将所述第一缓存页上缓存的数据顺序写入所述目标磁盘文件。
4.根据权利要求3所述的方法,其特征在于,将所述目标资源拷贝到所述数据库的所述第一缓存页包括:
将所述目标资源映射到目标虚拟地址;
对所述目标虚拟地址进行读写操作;
响应所述读写操作将与所述目标虚拟地址具有映射关系的所述目标资源拷贝到所述第一缓存页。
5.根据权利要求1所述的方法,其特征在于,根据所述资源标识记录所述目标资源的存储信息包括:
生成所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
将所述存储信息***目标资源信息文件。
6.根据权利要求5所述的方法,其特征在于,将所述存储信息***所述目标资源信息文件包括:
从多个资源信息文件中确定所述资源标识所对应的所述目标资源信息文件;
根据所述资源标识和所述存储信息的数据量确定所述存储信息在所述目标资源信息文件中的信息位置;
将所述存储信息***到所述目标资源信息文件的所述信息位置上。
7.根据权利要求5所述的方法,其特征在于,将所述存储信息***所述目标资源信息文件包括:
将所述存储信息写入第二缓存页;
每隔第二时间将所述第二缓存页上缓存的数据***所述目标资源信息文件。
8.根据权利要求1所述的方法,其特征在于,在将所述目标资源顺序写入所述目标磁盘文件之后,所述方法还包括:
通过多个映射函数对所述资源标识进行映射,得到多个映射值;
从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
将所述目标位置的字符设置为所述第一字符。
9.一种资源的处理方法,其特征在于,包括:
接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
从所述目标磁盘文件中获取所述目标资源;
发送所述目标资源。
10.根据权利要求9所述的方法,其特征在于,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件包括:
从多个资源信息文件中确定所述资源标识所对应的目标资源信息文件;
根据所述资源标识和存储信息的数据量确定所述资源标识对应的存储信息在所述目标资源信息文件中的信息位置;
从所述目标资源信息文件的所述信息位置上获取所述存储信息,其中,所述存储信息包括:所述资源标识、所述目标磁盘文件的地址和所述目标资源的存储位置,所述存储位置用于指示所述目标资源在所述目标磁盘文件中的存储起始位置和存储结束位置;
从所述目标磁盘文件的地址获取所述目标磁盘文件。
11.根据权利要求10所述的方法,其特征在于,从所述目标磁盘文件中获取所述目标资源包括:
从所述目标磁盘文件的所述存储位置获取所述目标资源;
将所述目标资源拷贝到预设缓存中。
12.根据权利要求11所述的方法,其特征在于,发送所述目标资源包括:
获取所述目标资源在所述预设缓存中的位置和偏移量;
发送在所述预设缓存中位于所述位置和所述偏移量上的所述目标资源。
13.根据权利要求9所述的方法,其特征在于,在响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件之前,所述方法还包括:
通过多个映射函数对所述资源标识进行映射,得到多个映射值;
从资源过滤器中获取所述多个映射值中每个映射值对应的目标位置上的字符,其中,所述资源过滤器用于记录所述数据库中存在的资源,所述资源过滤器中所包括的位置上的字符为第一字符表示所述位置对应的资源存在,所述资源过滤器中所包括的位置上的字符为第二字符表示所述位置对应的资源不存在;
在所述目标位置上的字符均为所述第一字符的情况下,响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件。
14.一种资源的处理装置,其特征在于,包括:
第一接收模块,用于接收存储请求,其中,所述存储请求用于请求将目标资源存储到数据库中,所述存储请求携带了所述目标资源的资源标识和资源地址;
第一获取模块,用于响应所述存储请求从所述数据库中获取目标磁盘文件,其中,所述数据库被设置为允许创建一个或者多个所述目标磁盘文件,每个所述目标磁盘文件用于存储多个请求存储到所述数据库的资源;
下载模块,用于从所述资源地址下载所述目标资源;
写入模块,用于将所述目标资源顺序写入所述目标磁盘文件,并根据所述资源标识记录所述目标资源的存储信息。
15.一种资源的处理装置,其特征在于,包括:
第二接收模块,用于接收获取请求,其中,所述获取请求用于请求从数据库中获取目标资源,所述获取请求携带了所述目标资源的资源标识;
第二获取模块,用于响应所述获取请求从所述数据库中创建的一个或者多个磁盘文件中获取所述资源标识所对应的目标磁盘文件,其中,所述一个或者多个磁盘文件用于按照接收到的存储请求追加存储资源;
第三获取模块,用于从所述目标磁盘文件中获取所述目标资源;
发送模块,用于发送所述目标资源。
16.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至13任一项中所述的方法。
17.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至13任一项中所述的方法。
CN202010619437.9A 2020-06-30 2020-06-30 资源的处理方法和装置 Pending CN111803917A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010619437.9A CN111803917A (zh) 2020-06-30 2020-06-30 资源的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010619437.9A CN111803917A (zh) 2020-06-30 2020-06-30 资源的处理方法和装置

Publications (1)

Publication Number Publication Date
CN111803917A true CN111803917A (zh) 2020-10-23

Family

ID=72855211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010619437.9A Pending CN111803917A (zh) 2020-06-30 2020-06-30 资源的处理方法和装置

Country Status (1)

Country Link
CN (1) CN111803917A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113422800A (zh) * 2021-05-12 2021-09-21 北京达佳互联信息技术有限公司 资源处理方法、装置、***、电子设备及存储介质
CN113452808A (zh) * 2021-06-29 2021-09-28 百果园技术(新加坡)有限公司 域名解析方法、装置、设备及存储介质
CN114885181A (zh) * 2021-02-05 2022-08-09 北京金山云网络技术有限公司 一种直播资源的延时播放方法和装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070130157A1 (en) * 2005-12-05 2007-06-07 Namit Jain Techniques for performing file operations involving a link at a database management system
US20090177662A1 (en) * 2008-01-04 2009-07-09 Apple Inc. Abstraction for representing an object irrespective of characteristics of the object
CN103383690A (zh) * 2012-05-04 2013-11-06 深圳市腾讯计算机***有限公司 分布式数据存储方法及***
CN104035729A (zh) * 2014-05-22 2014-09-10 中国科学院计算技术研究所 一种日志映射的块设备精简配置方法
CN106055706A (zh) * 2016-06-23 2016-10-26 杭州迪普科技有限公司 一种缓存资源存储方法及装置
CN106484313A (zh) * 2015-09-01 2017-03-08 北京金山云网络技术有限公司 数据信息备份方法、数据备份方法及装置
CN106776891A (zh) * 2016-11-30 2017-05-31 山东浪潮商用***有限公司 一种文件存储的方法和装置
CN107622123A (zh) * 2017-09-28 2018-01-23 焦点科技股份有限公司 一种面向asm文件***的文件解析方法
CN108021513A (zh) * 2016-11-02 2018-05-11 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置
CN108255958A (zh) * 2017-12-21 2018-07-06 百度在线网络技术(北京)有限公司 数据查询方法、装置和存储介质
CN109634523A (zh) * 2018-12-10 2019-04-16 深圳市网心科技有限公司 一种磁盘管理方法、***及电子设备和存储介质
CN110020533A (zh) * 2018-01-08 2019-07-16 福建天泉教育科技有限公司 一种vr资源的安全保护方法及终端

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070130157A1 (en) * 2005-12-05 2007-06-07 Namit Jain Techniques for performing file operations involving a link at a database management system
US20090177662A1 (en) * 2008-01-04 2009-07-09 Apple Inc. Abstraction for representing an object irrespective of characteristics of the object
CN103383690A (zh) * 2012-05-04 2013-11-06 深圳市腾讯计算机***有限公司 分布式数据存储方法及***
CN104035729A (zh) * 2014-05-22 2014-09-10 中国科学院计算技术研究所 一种日志映射的块设备精简配置方法
CN106484313A (zh) * 2015-09-01 2017-03-08 北京金山云网络技术有限公司 数据信息备份方法、数据备份方法及装置
CN106055706A (zh) * 2016-06-23 2016-10-26 杭州迪普科技有限公司 一种缓存资源存储方法及装置
CN108021513A (zh) * 2016-11-02 2018-05-11 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置
CN106776891A (zh) * 2016-11-30 2017-05-31 山东浪潮商用***有限公司 一种文件存储的方法和装置
CN107622123A (zh) * 2017-09-28 2018-01-23 焦点科技股份有限公司 一种面向asm文件***的文件解析方法
CN108255958A (zh) * 2017-12-21 2018-07-06 百度在线网络技术(北京)有限公司 数据查询方法、装置和存储介质
CN110020533A (zh) * 2018-01-08 2019-07-16 福建天泉教育科技有限公司 一种vr资源的安全保护方法及终端
CN109634523A (zh) * 2018-12-10 2019-04-16 深圳市网心科技有限公司 一种磁盘管理方法、***及电子设备和存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114885181A (zh) * 2021-02-05 2022-08-09 北京金山云网络技术有限公司 一种直播资源的延时播放方法和装置
CN114885181B (zh) * 2021-02-05 2023-07-07 北京金山云网络技术有限公司 一种直播资源的延时播放方法和装置
CN113422800A (zh) * 2021-05-12 2021-09-21 北京达佳互联信息技术有限公司 资源处理方法、装置、***、电子设备及存储介质
CN113422800B (zh) * 2021-05-12 2022-09-09 北京达佳互联信息技术有限公司 资源处理方法、装置、***、电子设备及存储介质
CN113452808A (zh) * 2021-06-29 2021-09-28 百果园技术(新加坡)有限公司 域名解析方法、装置、设备及存储介质
CN113452808B (zh) * 2021-06-29 2023-06-23 百果园技术(新加坡)有限公司 域名解析方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
KR101994021B1 (ko) 파일 조작 방법 및 장치
CN111803917A (zh) 资源的处理方法和装置
JP2012089094A5 (zh)
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的***
CN109885577B (zh) 数据处理方法、装置、终端及存储介质
CN109597903B (zh) 图像文件处理装置和方法、文件存储***及存储介质
CN110781149A (zh) 管理直播间信息的方法、装置、设备及存储介质
CN111930305A (zh) 数据的存储方法和装置、存储介质、电子装置
CN115470156A (zh) 基于rdma的内存使用方法、***、电子设备和存储介质
CN112269665B (zh) 内存的处理方法和装置、电子设备和存储介质
WO2021226822A1 (zh) 日志写入方法、装置、电子设备以及存储介质
US10327133B2 (en) Making subscriber data addressable as a device in a mobile data network
CN113486025B (zh) 数据存储方法、数据查询方法及装置
CN113726838B (zh) 文件传输方法、装置、设备及存储介质
CN114675776A (zh) 资源存储方法和装置、存储介质和电子设备
CN112395613B (zh) 静态特征库的加载方法、装置及设备
US10516723B2 (en) Distributing subscriber data in a mobile data network
CN109857719B (zh) 分布式文件处理方法、装置、计算机设备以及存储介质
CN112036133A (zh) 一种文件保存方法、装置、电子设备及存储介质
CN111443906A (zh) 一种应用的访问方法和装置
CN116974734A (zh) 一种对象存储***、对象修改方法及相关设备
CN109165172B (zh) 缓存数据处理方法及相关设备
CN114218281A (zh) 唯一识别号的生成方法及装置
CN114327273A (zh) 数据存储方法和装置、存储介质及电子设备
CN114880339A (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