CN110287201A - 数据访问方法、装置、设备及存储介质 - Google Patents
数据访问方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110287201A CN110287201A CN201910591781.9A CN201910591781A CN110287201A CN 110287201 A CN110287201 A CN 110287201A CN 201910591781 A CN201910591781 A CN 201910591781A CN 110287201 A CN110287201 A CN 110287201A
- Authority
- CN
- China
- Prior art keywords
- catalogue
- data
- index
- index file
- deleted
- 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
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing 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/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/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据访问方法、装置、设备及存储介质,涉及云存储技术领域。其中,该方法可以通过接收客户端发送的目录访问请求,目录访问请求包括:目录的信息,根据目录的信息,将目录的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引,并向客户端返回目录访问响应,实现只针对目录访问请求所指示的目录信息,将该目录的索引文件从磁盘中加载至该内存中,而无需将所有目录的索引文件均加载至内存,也即,无需将所有的索引全部加载在内存中的数据库中,从而可以减少内存的占用,提升内存的使用性能。
Description
技术领域
本申请涉及云存储技术领域,具体而言,涉及一种数据访问方法、装置、设备及存储介质。
背景技术
随着互联网技术的发展,计算机中存储的索引越来越多,如何将数据库中的索引进行有效存储,降低内存占用量,具有重要意义。
现有技术中,将获取的索引均存储在内存数据库中,在使用时实时加载调用,当存储的索引较少时,该种存储方式可快速加载出索引,以实现对索引的实时检索。
但是,当存储的索引数量庞大时,将所有的索引全部加载在内存中数据库,非常耗用内存,会严重影响内存的使用性能。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据访问方法、装置、设备及存储介质,以解决基于现有的数据存储方案进行海量数据访问时内存占用高、影响内存使用性能的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种数据访问方法,包括:
接收客户端发送的目录访问请求,目录访问请求包括:目录的信息;
根据目录的信息,将目录的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引;
向客户端返回目录访问响应。
可选地,根据目录的信息,将目录的索引文件从磁盘加载至内存,包括:
根据目录的信息,从磁盘中查找目录的索引文件;
采用内存中数据库对应的存储格式,将目录的索引文件加载至内存中的数据库。
可选地,该数据访问方法还包括:
接收客户端发送的目录下的数据删除操作,数据删除操作包括:目录的信息和待删除数据的信息;
根据目录的信息和待删除数据的信息,删除内存中目录的索引文件中待删除数据的索引;
将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中目录的待删除索引文件中;
向客户端返回数据删除响应。
可选地,若待删除数据为目录下的第一组待删除数据,则将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中目录的待删除索引文件中之前,该数据访问方法还包括:
在磁盘中创建目录的待删除索引文件。
可选地,该数据访问方法还包括:
接收客户端发送的目录的数据写入请求,数据写入请求包括:目录的信息,和待写入数据;
根据目录的信息,将待写入数据存储至磁盘中目录下,并生成待写入数据的索引;
将待写入数据的索引增加至磁盘中目录的索引文件以及内存中目录的索引文件中;
向客户端返回数据写入响应。
可选地,该方法还包括:
接收客户端发送的目录的数据读取请求,数据读取请求包括:目录的信息,和待读取数据的标识信息;
根据目录的信息,确定内存中是否存储有目录的索引文件;
若是,则根据待读取数据的标识信息,从内存中的目录的索引文件查找待读取数据的索引,并根据待读取数据的索引从磁盘中目录下查找待读取数据;
向客户端返回数据读取响应。
第二方面,本申请实施例还提供了一种数据访问装置,包括:
第一接收模块,用于接收客户端发送的目录访问请求,目录访问请求包括:目录的信息;
加载模块,用于根据目录的信息,将目录下的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引;
第一响应模块,用于向客户端返回目录访问响应。
可选地,加载模块,还用于根据目录的信息,从磁盘中查找目录的索引文件;采用内存中数据库对应的存储格式,将目录的索引文件加载至内存中的数据库。
可选地,该数据访问装置还包括:
第二接收模块,用于接收客户端发送的目录下的数据删除操作,数据删除操作包括:目录的信息和待删除数据的信息;
删除模块,用于根据目录的信息和待删除数据的信息,删除内存中目录的索引文件中待删除数据的索引;
移动模块,用于将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中所述目录的待删除索引文件中;
第二响应模块,用于向客户端返回数据删除响应。
可选地,该数据访问装置还包括:创建模块;
若待删除数据为目录下的第一组待删除数据,则创建模块用于在移动模块将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中目录的待删除索引文件中之前,在磁盘中创建目录的待删除索引文件。
可选地,该数据访问装置还包括:
第三接收模块,用于接收客户端发送的目录的数据写入请求;数据写入请求包括:目录的信息,和待写入数据;
写入模块,用于根据目录的信息,将待写入数据存储至磁盘中目录下,并生成待写入数据的索引;
增加模块,用于将待写入数据的索引增加至磁盘中目录的索引文件以及内存中目录的索引文件中;
第三响应模块,用于向客户端返回数据写入响应。
可选地,该数据访问装置还包括:
第四接收模块,用于接收客户端发送的目录的数据读取请求;数据读取请求包括:目录的信息,和待读取数据的标识信息;
查找模块,用于根据目录的信息,确定内存中是否存储有目录的索引文件;若是,则根据待读取数据的标识信息,从内存中的目录的索引文件查找待读取数据的索引,并根据待读取数据的索引从磁盘中目录下查找待读取数据;
第四响应模块,用于向客户端返回数据读取响应。
第三方面,本申请实施例还提供一种数据访问设备,包括:处理器和存储器,存储器中存储有可在处理器运行的计算机程序,处理器执行计算机程序时实现如第一方面所述的数据访问方法。
第四方面,本申请实施例还提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面所述的数据访问方法。
本申请的有益效果是:
本申请提供的数据访问方法、装置、设备及存储介质,可以通过接收客户端发送的目录访问请求,目录访问请求包括:目录的信息,根据目录的信息,将目录的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引,并向客户端返回目录访问响应,实现只针对目录访问请求所指示的目录信息,将该目录的索引文件从磁盘中加载至该内存中,而无需将所有目录的索引文件均加载至内存,也即,无需将所有的索引全部加载在内存中的数据库中,从而可以减少内存的占用,提升内存的使用性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据访问方法的流程示意图;
图2为本申请实施例提供的数据访问方法的另一流程示意图;
图3为本申请实施例提供的索引文件存储格式示意图;
图4为本申请实施例提供的数据访问方法的又一流程示意图;
图5为本申请实施例提供的目录结构示意图;
图6为本申请实施例提供的待删除文件存储格式示意图;
图7为本申请实施例提供的数据访问方法的又一流程示意图;
图8为本申请实施例提供的数据访问方法的又一流程示意图;
图9为本申请提供的数据访问装置的结构示意图;
图10为本申请实施例提供的数据访问装置的另一结构示意图;
图11为本申请实施例提供的数据访问装置的又一结构示意图;
图12为本申请实施例提供的数据访问装置的又一结构示意图;
图13为本申请实施例提供的数据访问装置的又一结构示意图;
图14为本申请实施例提供的数据访问设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
在安防领域,例如,在交通方面,为监控行驶车辆的行驶是否符合规范,在道路或高速路上通常设置有抓拍摄像头,来捕获车辆的瞬时照片,将捕获的图片或者其它数据发送至服务器,服务器对图片进行进一步分析,判断捕获的图片中的车辆行驶是否符合规范。由于在一定时间内获取的照片数量庞大,如何在不影响服务器性能的前提下对庞大的照片进行有效访问,减少服务器内存的使用。
其中,上述抓拍摄像头可以为电子警察、高速卡口、违规抓拍、流量检测、天网监控等,具体使用摄像头本申请不做限制。
以存储百亿级图片数据为例分析,每个图片数据占用64字节,则需要约596GB空间,且随着图片数据的大小成倍数增长。在内存数据库存储技术方案中,图片全部存储在内存中,则需要数十台16GB内存的服务器,成本较高,且绝大部分图片数据的访问频率较低,常驻内存存在内存利用率低的问题,而且服务器重启加载16GB索引到内存中,耗时较长。
因此,本申请实施例提供一种数据访问方法,以解决上述问题。该方法可由服务端实现,该服务端例如可以为客户端所对应的应用服务器。其中,数据可以是图片、录像、录音等,本申请对于数据的具体类型并不作限制。
图1为本申请实施例提供的数据访问方法的流程示意图。如图1所示,该数据访问方法可包括:
S110、接收客户端发送的目录访问请求,目录访问请求包括:目录的信息。
该目录可以为服务端的磁盘上的数据存储目录。该磁盘上,目录是层级结构。该目录的层级结构是根据数据信息进行划分的,例如根据时间范围的大小,目录的层级结构依次可以包括:年、月、日、小时等层级的目录。
当以时间为依据时,在目录为年的节点内包含12个月节点,在目录为月的节点内包含30或31个日节点,在目录为日的节点内以捕获的数据按每小时为一个时间段,可包括24个时间节点。可将捕获的数据,按照时间顺序进行存储分类。
可选地,当以时间为依据的层级结构的划分并不以年、月、日、小时等层级结构划分为限制。相应地,在月节点下还可包括四个或五个星期节点,在星期节点内进一步包含日节点等。
需要说明的是,本申请提供的数据访问方法,在目录层级结构中,时间节点的划分方式并不以每小时为一个时间段为限制,相应地,还可以为将两个小时划分为一个时间段,或半个小时划分一个时间段,具体划分形式以实际应用为准。
如下以图像数据为例进行说明,若需要访问某一天内拍摄的某个车辆的图片,分析该车辆是否存在违规行为,需先访问目录,可直接根据用户需求的时间信息,在目录内查找到具体的日节点。例如,需要知道2019/01/01车牌为京A00000的车辆是否存在违规行为,可直接根据已知的时间信息,访问目录以及目录中的信息。
需要说明的是,上述目录的层级结构并不以时间依据为限制。
S120、根据目录的信息,将目录下的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引。
需要说明的是,上述索引文件可包括:存储在该目录下每个数据的索引,该每个数据的索引可包括如下至少一种信息:该每个数据的名称、标识(ID)、格式、获取时间、大小、存储位置等。
以图像数据的图像标识为例对数据的索引进行说明,图像的索引可采用下述方式生成:根据图像的获取时间顺序,以此生成图像的索引,如1.jpg、2.jpg、3.jpg。以图像的获取时间为例,图像的索引可采用下述方式生成:根据该图像的获取时间,生成该图像的索引。若一个图像的获取时间为2019年1月1日上午十点零一分零一秒,则该一个图像的索引可以为2019/01/01/10/01/01。上述仅为索引的具体示例,在此不做限制。
其中,JPEG格式(Joint Photographic Experts Group,简称JPEG)为常见的一种图像存储格式,扩展名包含.jpg或.jpeg。当然,本方案所涉及的图像还可以为其他格式的图像,本申请不对此限制。
需要说明的是,该方法中,将目录下的索引文件从磁盘加载至内存,而无需将该目录下的图像加载至内存。即,服务端的内存上只存储有该目录下的索引文件,而不存储该目录下的图像。
该方法中,可根据该目录的信息,从磁盘中获取该目录下的索引文件,并将该目录下的索引文件存储至该内存,实现了索引文件的加载。服务端可将该目录下的索引文件,以数据库的形式存储在内存上,即存储至该内存上的数据库中。
该内存上存储的该目录的索引文件可包括:该目录下数据的索引,客户端设备可通过向服务器发送目录访问请求,以获取该目录下的索引文件,实现了对该磁盘上该目录的访问。
S130、向客户端返回目录访问响应。
该目录访问响应可包括如下至一种参数:该目录下索引文件以及该目录下的索引文件的显示方式、显示参数等。服务端可向客户端发送该目录访问响应,使得该客户端根据接收到的该目录访问响应,在客户端的可视化界面上展示该目录的文件列表,例如以列表形式展示该目录下的数据的信息,以实现目录的访问。
本申请的方案在满足目录访问的情况下,还可实现具体的数据访问。用户如需访问目标数据,可通过向客户端发送数据访问指令,以触发该客户端向服务端发送数据访问请求,该数据访问请求可包括:该目标数据的信息如标识,使得该服务端可根据接收到的该目标数据的信息,从内存中的该目录的索引文件中查找该目标数据的索引,继而根据该目标目录的索引从磁盘中查找该目标数据。该服务端在查找该目标数据之后,可向客户端发送包括该目标数据的数据访问响应,实现了该目录下的数据访问。
需要指出的是,该内存中该目录下的索引文件中的一个索引与该磁盘中该目录下的数据存在对应关系,例如一个索引可对应该目录目录下的一个或多个数据。
由上所述,本申请实施例提供的数据访问方法,可以通过接收客户端发送的目录访问请求,目录访问请求包括:目录的信息,根据目录的信息,将目录的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引,并向客户端返回目录访问响应,实现只针对目录访问请求所指示的目录信息,将该目录的索引文件从磁盘中加载至该内存中,而无需将所有目录的索引文件均加载至内存,也即,无需将所有的索引全部加载在内存中的数据库中,从而可以减少内存的占用,提升内存的使用性能。
另外,需要说明的是,由于本申请实施例提供的数据访问方法,无需将所有的索引全部加载在内存中的数据库中,所占用的内存资源较少,因此,可以实现对海量数据的存储和访问。
在上述图1所示的数据访问方法的基础上,本申请实施例还提供一种数据访问方法。下文具体对步骤S120的实现进行说明。
图2为本申请实施例提供的数据访问方法的另一流程示意图。可选地,如图2所示,上述步骤S120可以包括:
S121、根据目录的信息,从磁盘中查找目录的索引文件。
已知需要查找数据的时间信息,根据目录的层级结构信息,从磁盘中查找包含该目录的索引文件。
S122、采用内存中数据库对应的存储格式,将目录的索引文件加载至内存中的数据库。
上述内存中的数据库可以为键值(Key-Value,简称KV)数据库、关系型数据库等,具体数据库的形式在此不做限制。若该内存中的数据库为键值存储数据库,则该存储格式可以为键值存储格式。
以KV数据库为例,当接收到客户端发送的目录访问请求的情况下,可将该目录下的索引文件以KV形式保存到内存中的KV数据库中,而在接收到客户端发送的该目录下的数据访问请求的情况下,可访问该内存中的KV数据库,以从该KV数据库中该目录下的索引文件中,查找该目标数据的索引,继而根据该目标数据的索引,从磁盘中访问目标数据。采用KV存储格式,将该目录的索引文件存储至该内存中的KV数据库中,可提高了内存中索引的读写性能,减少延迟,从而提高数据的访问速度。
下文,以KV存储格式为例进行说明。图3为本申请实施例提供的索引文件存储格式示意图。
如图3所示,索引文件可包括:索引(INDEX)、版本(version)、关键字取值配对(key-value pairs)、文件结束标记(EOF)、校验和(check_sum)。
其中,INDEX部分保存“I”、“N”、“D”、“E”、“X”字符,用以指示索引文件的类型,检查载入文件是否为索引文件。version部分用一个字符串表示整数,用于指示索引文件的版本。key-value pairs部分保存当前目录下所有数据的名称和数据id间的映射关系,例如,可以包括:长度(len)、关键字(key)和值(value)等。EOF部分标记索引文件结束,当载入索引文件过程中遇到该字符时,表示所有索引已载入完毕,用以标识索引文件中索引的结束位置。校验和check_sum部分记录INDEX、version、key-value pairs和EOF部分计算得到的校验和,用于检查载入文件是否错误或损坏。
图4为本申请实施例提供的数据访问方法的又一流程示意图。
可选地,如图4所示,该数据访问方法在上述图1或图2所示的数据访问方法的基础上,还可包括:
S140、接收客户端发送的目录下的数据删除操作,数据删除操作包括:目录的信息和待删除数据的信息。
若当前目录下包含的数据已经访问过,且在预设时间段内不会进行二次访问,可对该数据进行删除操作。
本申请可将需要删除的数据标识为待删除数据,根据需要删除的数据信息得到待删除数据的目录信息,在目录信息中找到该目录中包含的待删除数据的信息。
S141、根据目录的信息和待删除数据的信息,删除内存中目录的索引文件中待删除数据的索引。
接收到客户端发送的待删除数据的删除操作的情况下,可将该待删除的待删除数据的索引从该磁盘中该目录的索引文件中移动至在磁盘中该待删除索引文件中,实现了磁盘对待删除数据的索引以及数据的暂时存储,保证后续该待删除数据的恢复。
S142、将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中目录的待删除索引文件中。
其中,在删除过程中,将该待删除的数据的索引从该磁盘中该目录的索引文件中移动至在磁盘中该待删除索引文件中,指的是,将该待删除数据的索引,从该磁盘中该目录的索引文件中删除,而保存在该待删除索引文件中。
在将待删除数据的索引的数据存储至待删除文件之后,若在预设时间段内,服务端接收到客户端发送的针对该待删除数据的访问请求,服务端可将该待删除数据的索引从该待删除索引文件移动至该磁盘中该目录的索引文件中,并该磁盘中该目录的索引文件加载至内存中,实现了内存中该目录的索引文件的恢复,继而可根据从该内存中获取该待删除数据的索引,继而进行该待删除数据的访问。
在上述恢复过程中,将该待删除数据的索引从该待删除索引文件移动至该磁盘中该目录的索引文件中,指的是将该待删除数据的索引,恢复至磁盘中以前所在的目录中的索引文件中,并保存在原位置的索引文件中。
若在预设时间段内,服务端未接收到客户端发送的针对该待删除数据的访问请求,则该服务端可对该待删除索引文件中的该待删除数据的索引进行删除,同时还可对该磁盘中该待删除数据进行删除。
如上所示的预设时间段例如可以为两天、三天或一周等任一,具体时间在此不做限制。
进一步地,请参照图5,图5为本申请实施例提供的目录结构示意图。其中,后缀为“.索引”(“.index”)表示为索引文件,保存当前目录下所有数据的索引,只有当前目录下存在数据时,才会在该目录下创建索引文件,一个目录有且仅有一个索引文件。后缀为“.删除”(“.del”)表示为待删除索引文件,保存当前目录下索引删除操作,以高效支持数据删除操作,只有在当前目录下执行过删除操作时,才会在该目录下创建待删除索引文件,一个目录有且仅有一个待删除索引文件。
更进一步地,请参照图6,图6为本申请实施例提供的待删除文件存储格式示意图。索引删除(INDEXD)部分保存“I”、“N”、“D”、“E”、“X”、“D”字符,用于检查载入文件是否是待删除索引文件,key-value pairs部分记录当前目录下索引操作的类型(TYPE)及关键字取值(key value),其余部分与索引文件格式相同,在此不多加赘述。
S143、向客户端返回数据删除响应。
当删除完成后,可在客户端的可视化界面上响应“已删除”或“删除完成”等信息,使用户明确当前删除操作已经完成,具体用户可视化界面上的删除完成后的响应在此不做限制。
更进一步地,在对内存中该目录中数据的索引进行删除外,还可对该目录的索引文件进行删除。
例如,某一索引文件内所包括的多个索引在预设时间段内均不会再次访问,可将该索引文件进行删除,并将该索引文件的所有索引存储在待删除索引文件中。
进一步地,本申请提供的数据访问方法,若待删除数据为目录下的第一组待删除数据,则将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中目录的待删除索引文件中之前,该数据访问方法还包括:
在磁盘中创建目录的待删除索引文件。
例如,若待删除数据为目录下的第一个待删除数据,则该方法可以是先在磁盘中创建目录的待删除索引文件,然后将待删除数据的索引从磁盘中所述目录的索引文件移动至磁盘中目录的待删除索引文件中。
其中,若在同一目录下首次对索引文件数据进行删除时,需在目录下创建待删除索引文件,当需要对同一目录下的其他索引文件数据在此进行删除时,可直接将在待删除的索引文件数据移动至磁盘中目录的待删除索引文件中。
可选地,本申请还提供一种数据访问方法,图7为本申请实施例提供的数据访问方法的又一流程示意图。
可选地,如图7所示,该数据访问方法在上述图1、图2或图4所示的数据访问方法的基础上,还可以包括:
S160、接收客户端发送的目录的数据写请求,数据写入请求包括:目录的信息,和待写入数据。
本申请提供的数据访问方法,当用户需要向某个目录中写入数据时,首先需要接收用户的写请求,其中该写请求包括:目录的信息和待写入数据。即已知待写入数据需要写入至哪一个目录中。
S161、根据目录的信息,将待写入数据存储至磁盘中目录下,并生成待写入数据的索引。
根据已知的目录信息,首先向内存数据库中查询该目录下的索引文件,并将待写入数据存储在磁盘中的对应目录下,可生成待写入数据的索引。
S162、将待写入数据的索引增加至磁盘中目录的索引文件以及内存中目录的索引文件中。
待写入数据的索引包括待写入数据ID的映射关系,将该映射关系记录在内存中目录的索引文件中。
S163、向客户端返回数据写入响应。
写入完成后,向用户的可视化界面上响应“存储完成”或“已保存”等信息,具体可视化界面的响应信息在此不做限制。
除可对数据进行写入外,本申请提供的数据访问方法也可以对数据进行读取。图8为本申请实施例提供的数据访问方法的又一流程示意图。
可选地,如图8所示,该数据访问方法在上述图1、图2或图4所示的数据访问方法的基础上,还可包括:
S170、接收客户端发送的目录的数据读取请求,数据读取请求包括:目录的信息,和待读取数据的标识信息。
当用户需要读取某个目录下的读片时,已知数据所在的目录信息和待读取数据的标识信息。
其中,待读取数据的标识信息可以为待读取数据的索引或待读取数据在目录存储结构中具体的目录信息。
S171、根据目录的信息,确定内存中是否存储有目录的索引文件。
先在内存数据库中查询待读取数据是否存在索引文件,若存在,表明在磁盘中与待读取数据存储在同一目录下的其他索引文件中的索引已经在先被访问过,可直接从该目录下的索引文件中读取待读取数据的索引,根据待读取数据的ID实现待读取数据从磁盘到内存中的加载过程,并实现数据的读取。
若不存在,表明待读取索引所在的索引文件在从未在内存数据库中被读取,需先从磁盘上加载该目录下的索引文件到内存数据库中,再从内存数据库中查询待读取数据的索引,根据得到的待读取数据的索引与磁盘中待读取索引文件ID的映射关系,实现待读取数据从磁盘到内存中的加载过程,并实现数据的读取。
S172、若是,则根据待读取数据的标识信息,从内存中的目录的索引文件查找待读取数据的索引,并根据待读取数据的索引从磁盘中目录下查找待读取数据。
S173、向客户端返回数据读取响应。
以图像数据为例,数据读取响应可以为图像的读取响应,可以为在用户可视化界面显示待读取像,使用户查看该图像。
本申请提供的数据访问方法,只有索引目录结构的层级关系存储在内存数据库中,而索引全部存储在磁盘中,只有在需要访问某个目录中的数据时,才需要将该目录下的索引文件加载到内存中,占用内存较少,加载速度快。后续数据访问直接从内存数据库中访问。
另一方面,本申请除提供一种数据访问方法外,对应地,还提供一种数据访问装置,图9为本申请实施例提供的数据访问装置的结构示意图。
如图9所示,该装置可以包括:第一接收模块11,用于接收客户端发送的目录访问请求,目录访问请求包括:目录的信息;加载模块12,用于根据目录的信息,将目录下的索引文件从磁盘加载至内存,存储在内存下的目录的索引文件用以确定目录下的数据,目录的索引文件包括:目录下数据的索引;第一响应模块13,用于向客户端返回目录访问响应。
可选地,加载模块12还用于根据目录的信息,从磁盘中查找目录的索引文件;采用内存中数据库对应的存储格式,将目录的索引文件加载至内存中的数据库。
在上述图9所示的数据访问装置的基础上,本申请还可提供一种数据访问装置,图10为本申请实施例提供的数据访问装置的另一结构示意图。
可选地,如图10所示,该数据访问装置还包括:第二接收模块14,还用于接收客户端发送的目录下的数据删除操作,数据删除操作包括:目录的信息和待删除数据的信息;删除模块15,用于根据目录的信息和待删除数据的信息,删除内存中目录的索引文件中待删除数据的索引;移动模块16,用于将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中所述目录的待删除索引文件中;第二响应模块17,用于向客户端返回数据删除响应。
图11为本申请实施例提供的数据访问装置的又一结构示意图。
可选地,如图11所示,该数据访问装置还包括:创建模块18;若待删除数据为目录下的第一组待删除数据,则创建模块18用于在移动模块16将待删除数据的索引从磁盘中目录的索引文件移动至磁盘中目录的待删除索引文件中之前,在磁盘中创建目录的待删除索引文件。
在图9、图10及图11所示的数据访问装置的基础上,本申请还可提供数据访问装置,图12为本申请实施例提供的数据访问装置的又一结构示意图。
可选地,如图12所示,该数据访问装置还包括:第三接收模块19,用于接收客户端发送的目录的数据写入请求,数据写入请求包括:目录的信息,和待写入数据;写入模块20,用于根据目录的信息,将待写入数据存储至磁盘中目录下,并生成待写入数据的索引;增加模块21,用于将待写入数据的索引增加至磁盘中目录的索引文件以及内存中目录的索引文件中;第三响应模块22,用于向客户端返回数据写入响应。
图13为本申请实施例提供的数据访问装置的又一结构示意图。
可选地,如图13所示,本申请提供的数据访问装置还可以包括:第四接收模块23,用于接收客户端发送的目录的数据读取请求,数据读取请求包括:目录的信息,和待读取数据的标识信息;查找模块24,用于根据目录的信息,确定内存中是否存储有目录的索引文件,若是,则根据待读取数据的标识信息,从内存中的目录的索引文件查找待读取数据的索引,并根据待读取数据的索引从磁盘中目录下查找待读取数据;第四响应模块25,用于向客户端返回数据读取响应。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
本申请实施例还提供一种数据访问设备,该设备可以是具有数据处理能力的计算机、服务器等。
图14为本申请实施例提供的数据访问设备的结构示意图。
如图14所示,该数据访问设备包括:处理器31和存储器32,存储器32中存储有可在处理器31运行的计算机程序,处理器31执行计算机程序时实现如前述方法实施例所述的数据访问方法。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请实施例还提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述方法实施例所述的数据访问方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种数据访问方法,其特征在于,包括:
接收客户端发送的目录访问请求,所述目录访问请求包括:目录的信息;
根据所述目录的信息,将所述目录的索引文件从磁盘加载至内存,存储在所述内存下的所述目录的索引文件用以确定所述目录下的数据,所述目录的索引文件包括:所述目录下数据的索引;
向所述客户端返回目录访问响应。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目录的信息,将所述目录的索引文件从磁盘加载至内存,包括:
根据所述目录的信息,从所述磁盘中查找所述目录的索引文件;
采用所述内存中数据库对应的存储格式,将所述目录的索引文件加载至所述内存中的数据库。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的所述目录下的数据删除操作,所述数据删除操作包括:所述目录的信息和待删除数据的信息;
根据所述目录的信息和所述待删除数据的信息,删除所述内存中所述目录的索引文件中所述待删除数据的索引;
将所述待删除数据的索引从所述磁盘中所述目录的索引文件移动至所述磁盘中所述目录的待删除索引文件中;
向所述客户端返回数据删除响应。
4.根据权利要求3所述的方法,其特征在于,若所述待删除数据为所述目录下的第一组待删除数据,则所述将所述待删除数据的索引从所述磁盘中所述目录的索引文件移动至所述磁盘中所述目录的待删除索引文件中之前,所述方法还包括:
在所述磁盘中创建所述目录的待删除索引文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的所述目录的数据写入请求;所述数据写入请求包括:所述目录的信息,和待写入数据;
根据所述目录的信息,将所述待写入数据存储至所述磁盘中所述目录下,并生成所述待写入数据的索引;
将所述待写入数据的索引增加至所述磁盘中所述目录的索引文件以及所述内存中所述目录的索引文件中;
向所述客户端返回数据写入响应。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的所述目录的数据读取请求;所述数据读取请求包括:所述目录的信息,和待读取数据的标识信息;
根据所述目录的信息,确定所述内存中是否存储有所述目录的索引文件;
若是,则根据所述待读取数据的标识信息,从所述内存中的所述目录的索引文件查找所述待读取数据的索引,并根据所述待读取数据的索引从所述磁盘中所述目录下查找所述待读取数据;
向所述客户端返回数据读取响应。
7.一种数据访问装置,其特征在于,包括:
第一接收模块,用于接收客户端发送的目录访问请求,所述目录访问请求包括:目录的信息;
加载模块,用于根据所述目录的信息,将所述目录的索引文件从磁盘加载至内存,存储在所述内存下的所述目录的索引文件用以确定所述目录下的数据,所述目录的索引文件包括:所述目录下数据的索引;
第一响应模块,用于向所述客户端返回目录访问响应。
8.根据权利要求7所述的装置,其特征在于,所述加载模块,还用于根据所述目录的信息,从所述磁盘中查找所述目录的索引文件;采用所述内存中数据库对应的存储格式,将所述目录的索引文件加载至所述内存中的数据库。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述客户端发送的所述目录下的数据删除操作,所述数据删除操作包括:所述目录的信息和待删除数据的信息;
删除模块,用于根据所述目录的信息和所述待删除数据的信息,删除所述内存中所述目录的索引文件中所述待删除数据的索引;
移动模块,用于将所述待删除数据的索引从所述磁盘中所述目录的索引文件移动至所述磁盘中所述目录的待删除索引文件中;
第二响应模块,用于向所述客户端返回数据删除响应。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:创建模块;
若所述待删除数据为所述目录下的第一组待删除数据,则所述创建模块,用于在所述移动模块将所述待删除数据的索引从所述磁盘中所述目录的索引文件移动至所述磁盘中所述目录的待删除索引文件中之前,在所述磁盘中创建所述目录的待删除索引文件。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收所述客户端发送的所述目录的数据写入请求;所述数据写入请求包括:所述目录的信息,和待写入数据;
写入模块,用于根据所述目录的信息,将所述待写入数据存储至所述磁盘中所述目录下,并生成所述待写入数据的索引;
增加模块,用于将所述待写入数据的索引增加至所述磁盘中所述目录的索引文件以及所述内存中所述目录的索引文件中;
第三响应模块,用于向所述客户端返回数据写入响应。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第四接收模块,用于接收所述客户端发送的所述目录的数据读取请求;所述数据读取请求包括:所述目录的信息,和待读取数据的标识信息;
查找模块,用于根据所述目录的信息,确定所述内存中是否存储有所述目录的索引文件;若是,则根据所述待读取数据的标识信息,从所述内存中的所述目录的索引文件查找所述待读取数据的索引,并根据所述待读取数据的索引从所述磁盘中所述目录下查找所述待读取数据;
第四响应模块,用于向所述客户端返回数据读取响应。
13.一种数据访问设备,其特征在于,包括:处理器和存储器,存储器中存储有可在处理器运行的计算机程序,处理器执行计算机程序时实现如权利要求1-6任一项所述的数据访问方法。
14.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910591781.9A CN110287201A (zh) | 2019-07-02 | 2019-07-02 | 数据访问方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910591781.9A CN110287201A (zh) | 2019-07-02 | 2019-07-02 | 数据访问方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110287201A true CN110287201A (zh) | 2019-09-27 |
Family
ID=68021814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910591781.9A Pending CN110287201A (zh) | 2019-07-02 | 2019-07-02 | 数据访问方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287201A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046044A (zh) * | 2019-12-13 | 2020-04-21 | 南京富士通南大软件技术有限公司 | 一种基于内存型数据库的分布式对象存储***的高可靠性架构 |
CN111414335A (zh) * | 2020-03-20 | 2020-07-14 | 深圳市凯沃尔电子有限公司 | 一种数据文件查找方法和装置 |
CN113127479A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 |
WO2022036927A1 (zh) * | 2020-08-19 | 2022-02-24 | 安徽鸿程光电有限公司 | 文件存储方法、装置、设备和介质 |
WO2022141650A1 (en) * | 2021-01-04 | 2022-07-07 | Alibaba Group Holding Limited | Memory-frugal index design in storage engine |
CN116954745A (zh) * | 2023-05-25 | 2023-10-27 | 成都融见软件科技有限公司 | 一种目标文件部分加载*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198902A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc. | Memory mapping techniques |
CN104636464A (zh) * | 2015-02-09 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 访问文件的方法和装置 |
CN105069091A (zh) * | 2015-08-05 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种基于hbase的虚拟文件***及其实现方法 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件***的目录访问方法和装置 |
-
2019
- 2019-07-02 CN CN201910591781.9A patent/CN110287201A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198902A1 (en) * | 2008-02-04 | 2009-08-06 | Apple Inc. | Memory mapping techniques |
CN104636464A (zh) * | 2015-02-09 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 访问文件的方法和装置 |
CN105069091A (zh) * | 2015-08-05 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种基于hbase的虚拟文件***及其实现方法 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件***的目录访问方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046044A (zh) * | 2019-12-13 | 2020-04-21 | 南京富士通南大软件技术有限公司 | 一种基于内存型数据库的分布式对象存储***的高可靠性架构 |
CN113127479A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种Elasticsearch索引的加载方法、装置、计算机设备和存储介质 |
CN111414335A (zh) * | 2020-03-20 | 2020-07-14 | 深圳市凯沃尔电子有限公司 | 一种数据文件查找方法和装置 |
WO2022036927A1 (zh) * | 2020-08-19 | 2022-02-24 | 安徽鸿程光电有限公司 | 文件存储方法、装置、设备和介质 |
WO2022141650A1 (en) * | 2021-01-04 | 2022-07-07 | Alibaba Group Holding Limited | Memory-frugal index design in storage engine |
CN116954745A (zh) * | 2023-05-25 | 2023-10-27 | 成都融见软件科技有限公司 | 一种目标文件部分加载*** |
CN116954745B (zh) * | 2023-05-25 | 2024-02-09 | 成都融见软件科技有限公司 | 一种目标文件部分加载*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287201A (zh) | 数据访问方法、装置、设备及存储介质 | |
CN103548003B (zh) | 用于提高去重复***备份性能的客户端侧指纹缓存的方法和*** | |
CN109739815B (zh) | 文件处理方法、***、装置、设备及存储介质 | |
CN105701156B (zh) | 一种分布式文件***管理方法及装置 | |
US8321487B1 (en) | Recovery of directory information | |
JP2006107446A (ja) | ネットワーク・ドキュメントのバッチ索引付けのためのシステムおよび方法 | |
CN110321325A (zh) | 文件索引节点查找方法、终端、服务器、***及存储介质 | |
CN108614837B (zh) | 文件存储和检索的方法及装置 | |
CN109766318B (zh) | 文件读取方法及装置 | |
CN109101580A (zh) | 一种基于Redis的热点数据缓存方法和装置 | |
CN110399348A (zh) | 文件重删方法、装置、***及计算机可读存储介质 | |
CN109558378A (zh) | 文件管理方法、装置、设备及存储介质 | |
CN105138275B (zh) | 一种Lustre存储***数据共享方法 | |
CN111198856A (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
CN110505495A (zh) | 多媒体资源抽帧方法、装置、服务器及存储介质 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
CN105912540A (zh) | 文件***同步的方法及装置 | |
CN109947730A (zh) | 元数据恢复方法、装置、分布式文件***及可读存储介质 | |
CN109522305B (zh) | 一种大数据去重方法及装置 | |
CN108090186A (zh) | 一种大数据平台上的电力数据去重方法 | |
CN112286457B (zh) | 对象重删方法、装置、电子设备及机器可读存储介质 | |
CN113448946A (zh) | 数据迁移方法及装置、电子设备 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
Nguyen et al. | An efficient similar image search framework for large-scale data on cloud | |
US8495025B2 (en) | Foldering by stable query |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190927 |