CN102968456B - 一种栅格数据读取处理方法和装置 - Google Patents
一种栅格数据读取处理方法和装置 Download PDFInfo
- Publication number
- CN102968456B CN102968456B CN201210426086.5A CN201210426086A CN102968456B CN 102968456 B CN102968456 B CN 102968456B CN 201210426086 A CN201210426086 A CN 201210426086A CN 102968456 B CN102968456 B CN 102968456B
- Authority
- CN
- China
- Prior art keywords
- grid block
- caching
- data
- grid
- block data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种栅格数据读取处理方法和装置,涉空间信息服务技术领域。所述方法包括:预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;然后,接收客户端的栅格数据读取请求;在所述内存记录表中查询是否存在请求的栅格块数据;如果存在,则从缓存栅格块中读出栅格块数据返回给客户端;如果不存在,则从磁盘中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录并将栅格块数据返回给客户端。本发明大大提高了栅格数据的处理效率,节省了系统资源。
Description
技术领域
本发明涉空间信息服务技术领域,特别是涉及一种栅格数据读取处理方法和装置。
背景技术
基于栅格模型的数据结构简称为栅格数据结构,是指将空间分割成有规则的网格,成为栅格数据块,在各个栅格数据块上给出相应的属性值来表示地理实体的一种数据组织形式。栅格数据结构因为相对简单,而且空间分析和地理现象的模拟比较容易,有利于遥感数据的匹配应用和分析,输出方法快速,且成本比较低廉,因此被广泛应用于地理信息系统(GeographicInformation System,GIS)中。
但是,在地理信息系统的应用中,经常需要频繁的读写处理栅格数据,而栅格数据结构的图形数据量大、冗余度高,在进行数据读写时需要耗费大量的时间,对于频繁读写来说,效率会进一步地降低。因为栅格数据结构的图形数据量大,会占用系统较多的空间,一般来说这些数据都是存储在硬盘中,当系统需要时,在从硬盘的文件中进行I/O操作来实现数据的读写,并且在磁盘中是通过处理磁盘数据库文件的方式获取数据。而频繁的读写,无疑舍增加I/O操作的次数,占用大量系统资源,降低系统的反应速度,并且磁盘的数据库文件的处理方式效率也不高。
参照图1,其为栅格数据的应用环境:假设数据服务器上有一系列栅格数据文件,分别为file1.rd,file2.rd,...,fileN.rd;每个栅格文件数据结构中又包含一系列栅格块数据;栅格块数据是每个客户请求栅格数据的基本单位;每个栅格块数据是由m*n个象素组成;对于大型的数据服务器,栅格数据文件可达上万个乃至更多;同时又有大量的远程客户端进行栅格数据文件访问请求,比如图1中,Client1:请求file1.rd中第1,3,7块数据,...,ClientX:请求fileX.rd中第m,n,s块数据...,ClientZ:请求fileZ.rd中第a,b,c块数据...;那么针对各个客户端请求中的栅格块数据,如果都从硬盘的文件中进行I/O操作来读取数据到缓存中进行处理并返回给客户端,而大量的从硬盘的数据库文件中进行I/O操作导致占用大量系统资源,降低系统的反应速度,并且在磁盘的数据库文件处理效率低。
发明内容
本发明所要解决的技术问题是提供一种栅格数据读取处理方法和装置,解决现有技术中针对客户端请求,获取栅格数据效率低,并且系统反应速度低等问题。
为了解决上述问题,本发明公开了一种栅格数据读取处理方法,包括:
根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;
针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息;
在分配完缓存栅格块和建立内存数据库及相应的内存记录表后,针对客户端的栅格数据读取请求,读取栅格数据的处理过程包括:
接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;
在所述内存记录表中查询是否存在所述栅格块属性信息;
如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端。
优选的,所述如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端,包括:
如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;
若存在空的缓存栅格块,则将所述新读取的所述栅格块数据的存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
若不存在空的缓存栅格块,则将所述新读取的所述栅格块数据替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,所述栅格块数据信息包括还包括使用历史信息,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定。
优选的,所述栅格块数据的栅格块数据使用历史信息包括:
服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数。
优选的,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定包括:
查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据;
或,查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。
优选的,所述栅格块数据的栅格块属性信息包括:
栅格块数据的栅格号,和栅格块数据所属的栅格数据文件的文件名称。
优选的,还包括:
定期将所述内存记录表存储至磁盘文件中。
优选的,当栅格数据读取处理装置重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。
优选的,所述并采用标识号记录每个缓存栅格块的起始地址包括:
将所述缓存栅格块的起始地址存储于一数组内,所述数组大小为N个。
相应的,本发明还公开了一种栅格数据读取处理装置,包括:
缓存栅格块配置模块,用于根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;
内存数据库建立模块,用于针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;
请求接收模块,用于接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;
栅格块信息查询模块,用于在所述内存记录表中查询是否存在所述栅格块属性信息;
第一返回模块,用于如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
第二返回模块,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端。
优选的,所述第二返回模块包括:
空缓存栅格块判断模块,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;
存储返回模块,用于若存在空的缓存栅格块,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
替换返回模块,用于若不存在空的缓存栅格块,则从磁盘中相应的栅格数据文件中提取相应栅格块数据,替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,所述栅格块数据信息包括还包括使用历史信息,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定。
与现有技术相比,本发明包括以下优点:
本发明通过针对栅格数据文件中的栅格块数据大小,预先分配N个能存储栅格块数据的缓存栅格块,然后针对这些缓存栅格块建立内存数据库并生成相应的内存记录表,以记录每个缓存栅格块中存储的栅格块数据的栅格块属性信息和栅格块数据使用历史信息,以及该缓存栅格块起始地址的标识号;那么当客户端发送栅格数据读取请求时,针对请求对应的栅格块属性信息,则可首先根据内存记录表中查找内存中是否已缓存了相应的栅格块数据,如果有那么即可将其返回给客户端;如果没有,那么则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块进行后续处理。
在上述过程中,首先,本发明通过内存数据库进行处理,比通过磁盘的数据块文件进行处理,效率要大大提高。
其次,内存数据库的内存记录表的查找效率比磁盘文件中针对请求量大的栅格块数据可将其长时间存储于缓存栅格块中,那么对于这类栅格数据的请求,可大大直接提高数据处理效率,并且从整体流程上可减少从硬盘的文件中进行I/O操作来实现数据的读写操作,节省系统资源,提高反应速度。
附图说明
图1是本发明一种栅格数据读取处理方法的应用环境示意图;
图2是本发明一种栅格数据读取处理方法的流程示意图;
图3是本发明优选的一种栅格数据读取处理方法的流程示意图;
图4是本发明一种栅格数据读取处理装置的结构示意图;
图5是本发明优选的一种栅格数据读取处理装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图2,示出了本发明一种栅格数据读取处理方法的流程示意图,具体可以包括:
步骤110,根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;
在本实施例中,可预先由服务器的栅格数据服务程序预先确定缓存确定用于栅格数据处理的缓存的总大小,然后将这些缓存按栅格数据文件中各栅格块数据大小对整个缓存进行分块得打N个缓存栅格块。比如,假设缓存大小为T(Mb),假设栅格数据文件的每象素数值存储需要p个字节,栅格块数据是由m*n个个象素组成,则每个栅格块数据占用m*n*p字节,计算缓存可以缓存栅格块数据的缓存栅格块数量N=[T*1024*1024/(m*n*p)],在服务器程序上,先进行预先分配N个缓存栅格块,每个缓存栅格块有m*n*p字节,共N*m*n*p字节大小的缓存。
然后,可采用标识号记录每个缓存栅格块的起始地址。
优选的,本实施例中,所述并采用标识号记录每个缓存栅格块的起始地址包括:
将所述缓存栅格块的起始地址存储于一数组内,所述数组大小为N个。即将前述的N个缓存栅格块的每个缓存栅格块的起始地址存储于一数组里,数组大小可为N个,数组为p[N],其中,p[0]为缓存中第1个栅格块数据的地址,通过p[0]就可以读写出第1个缓存栅格块的所有象素数据,以此推理,通过p[N]可以对第N个缓存栅格块中的栅格块数据进行读写操作。
步骤120,针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息;
在服务器程序里,建立内存数据库,以记录缓存使用情况,即建立内存数据表来记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息,还可包括栅格块数据的使用历史信息。
优选的,本发明中,所述栅格块数据的属性信息包括:栅格块数据的栅格号,和栅格块数据所属的栅格数据文件的文件名称。所述栅格块数据的使用历史信息可包括:服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数。
本发明最优的内存数据库中的内存数据表的结构可如表一:
内存数据库表结构示意
表一
其中,表中的关键字段针对每个缓存栅格块:
如果其中存储有栅格块数据,则记录栅格块数据所属栅格块文件(如前述的file1.rd)的文件名称(其字符类型为string)和栅格块数据在所属栅格块文件中的栅格块号(其字符类型为int),相应记录该缓存栅格块存储的栅格块数据被访问的最后访问时间(可为系统时间DateTime),及该缓存栅格块存储的栅格块数据被访问的访问累加次数(其字符类型为int),然后针对该栅格块,相应记录其标识号,即在缓存中的编号(比如前述数组p[N]中的N)。其中,前门四个关键字段如果不存在,则可设置为null(空)。
在该内存记录表中,以“文件名称”字段与“栅格块号”字段组成表的key键,用以根据用户请求中的栅格数据文件名称和栅格块号进行查询。
在本实施例中以SQLite为例进行说明,构建内存数据库。(SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,其中ACID,指数据库事务正确执行的四个基本要素的缩写,包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))。在SQLite中,数据库通常是存储在磁盘文件中的,在某些情况下,我们可以让数据库始终驻留在内存中:本发明可采用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递″:memory:″,如:
rc=sqlite3_open(″:memory:″,&db);
在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新的数据库在纯内存中被成功创建了。由于没有持久化,该数据库在当前数据库连接被关闭后就会立刻消失。
本发明构建内存数据库的方法有多种,本发明不对其加以限制。
在本实施例中,步骤110与步骤120是服务器中栅格数据服务程序启动时进行。
在分配完缓存栅格块和建立内存数据库及相应的内存记录表后,针对客户端的栅格数据读取请求的处理过程包括:
步骤130,接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;
在实际中,客户端发送的栅格数据读取请求中,可能请求了一个栅格数据文件的多个栅格块数据。那么本发明实施例则提取请求中各个栅格块数据信息进行处理,在处理时,针对各栅格块数据信息,一般采用逐个处理的方式。
比如,当服务器程序接收到一客户的“读取栅格文件fileX.rd中的a,b,c栅格块数据”请求时,服务器程序进行如下处理:
以栅格块数据为单元,将客户请求分单元处理;即分成”fileX.rd中请求a块”、”fileX.rd中请求b块”、”fileX.rd中请求c块”3个处理单元,逐个处理每个单元。
针对每个单元,其处理过程包括步骤140至160:
步骤140,在所述内存记录表中查询是否存在所述栅格块属性信息;如果存在,则转入步骤150;如果不存在,则转入步骤160;
以请求每个栅格块数据的属性信息为key,在内存记录表中查询是否存在相应记录。如果存在,则转入步骤150;如果不存在,则转入步骤160。
比如以前述待处理的每个单元中栅格数据的文件名称+栅格块号为key,在内存记录表中查询是否存在相应记录,如果存在,则转入步骤150;如果不存在,则转入步骤160。
步骤150,如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
在本发明中,所述的更新包括修改和增加动作。
如果步骤140中,在内存记录表中查找结果不为null,则根据相应标识号从相应缓存栅格块的起始地址开始读取栅格块数据返回给客户端,并更新内存记录表中针对该栅格块数据的栅格块数据信息。在本发明实施例中,栅格块数据信息包括栅格块数据使用历史信息,在本步骤则更新栅格块数据使用历史信息。
步骤160,如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端。
如果步骤140中,在内存记录表中查找结果为null,那么如果N个缓存栅格块存在未使用的,则从磁盘中相应的栅格数据文件中读出所述栅格块数据到内存里,再将该栅格块数据存入一个空的缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,同时可将该栅格块数据返回给客户端;如果N个缓存栅格块存在已经使用完,那么从磁盘中相应的栅格数据文件中读出所述栅格块数据到内存里,再将该栅格块数据替换一缓存栅格块中的栅格块数据,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,同时可将该栅格块数据返回给客户端。
优选的,所述如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端,包括:
步骤170,如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;
实际中,本发明的数据服务器上的所有栅格数据文件可同样象素尺度(大小)划分栅格块数据,也可以不同象素尺度(不同大小)划分栅格块数据,那么以在针对某一大小a的栅格块数据信息,则可查找至少大于等于a缓存栅格块是否存在空闲。如果存在,才能进行步骤171和172。
步骤171,若存在空的缓存栅格块,则将所述新读取的所述栅格块数据的存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
步骤172,若不存在空的缓存栅格块,则将所述新读取的所述栅格块数据替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,所述栅格块数据信息包括还包括使用历史信息,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定。
其中,所述栅格块数据的栅格块数据使用历史信息包括:
服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数。
进一步的,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定包括:
步骤S11,查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据;
或,步骤S12,查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。
另外,本实施例还可包括:
步骤180,定期将所述内存记录表存储至磁盘文件中。
进一步的,包括:
步骤181,当栅格数据读取处理装置重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。
按一定时间间隔将内存记录表表保存在文件中。因内存记录表表是在内存数据库里,防止服务器程序崩溃或机器断电或其他异常等导致关机重起时丢失客户访问栅格数据的使用情况,将内存记录表表按一定时间间隔存储到磁盘的文件里,当服务器程序重新启动时,可以重新建立内存记录表表并根据内存记录表表重新加载并缓存栅格块数据,以提高客户端数据请求服务的响应能力。
参照图3,其示出了本发明优选的一种栅格数据读取处理方法的流程示意图,具体可以包括:
步骤210,根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并将所述缓存栅格块的起始地址存储于一数组内;所述N≥2;所述数组大小为N个;
比如前述的N个缓存栅格块的每个缓存栅格块的起始地址存储于一数组里,数组大小可为N个,数组为p[N]p[0]为缓存中第1个栅格块数据的地址,通过p[0]就可以读写出第1个缓存栅格块的所有象素数据,以此推理,通过p[N]可以对第N个缓存栅格块中的栅格块数据进行读写操作。
本步骤与步骤110原理基本类似,在此不再详述。
步骤220,针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录的信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据所属的栅格块文件的文件名称,所述栅格块数据在所属的栅格块文件中的栅格块号,服务器针对所述栅格块数据的最后访问时间,针对所述栅格块数据的访问累加次数,以及该缓存栅格块起始地址的数组编号;其中,同一缓存栅格块对应的文件名称、栅格块号、最后访问时间、访问累加次数、数组编号相互对应。
即如表一所示,表一中“在缓存中的编号”即为所述数组编号,即p[N]中的N。本步骤与步骤120原理基本类似,在此不再详述。
在分配完缓存栅格块和建立内存数据库及相应的内存记录表后,针对客户端的栅格数据读取请求,读取栅格数据的处理过程包括:
步骤230,接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的文件名称及对应的栅格块号;
本步骤与步骤110类似,在此不在详述。
步骤240,在所述内存记录表中以所述文件名称和栅格块号为关键字查询是否存在记录;如果存在,则进入步骤250;如果不存在,则进入步骤260;
本步骤则可以请求中的栅格数据文件的“文件名称”+“栅格块号”组成key间在表一所示结构的内存数据表中进行查找。
步骤250,如果存在所述记录,则根据记录中的数组编号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
如果查找结果不为null,则取出“最后访问时间”,“访问累加次数”,“在缓存中的编号”这3个字段值x,y,z,将x修改为当前时间,y值加1,z值不变,重新修改这条内存记录表记录。对于z值,就可以通过p[z]得到该栅格块在缓存中的数据地址,进而可以从缓存中读出该栅格块的所有象素数据,再返回给客户端。
步骤260,如果不存在所述记录,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;如果存在,则进入步骤270;如果不存在,则进入步骤280;
如果查找结果为null,则说明缓存中到目前为止还没有对此栅格文件的栅格块进行数据缓存,所以,数据服务器程序先将从磁盘的栅格数据文件中读出此栅格块数据到内存里,然后再按步骤270至步骤280放进缓存栅格块里。
在本发明中,预先已经确定好了数据服务器程序只可以缓存N个栅格块数据,可按下面d方法可已经使用过的栅格块的最大编号value(即表一中在缓存中的编号,或者前述数组编号):
d:读内存记录表表,将结果按降序排列,则得到第1条记录的value=“在缓存中的编号”值即为目前缓存中的已经使用过的缓存栅格块的最大编号。
如果value+1<N,则缓存中栅格块有剩余,即进入步骤270;如果value+1=N,则缓存中栅格块用完,则需要进行缓存中栅格块数据的替换方法,即进入步骤280。
步骤270,若存在空的缓存栅格块,则将所述新读取的所述栅格块数据存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
如果value+1<N,则缓存中栅格块有剩余,直接将栅格数据放入缓存中地址以p[value+1]开始的栅格块内存即可,并可返回当前栅格块数据占用的缓存块的编号为value+1。
本步骤可在内存记录表中记录该缓存数据块的相关信息:这条记录的key键值来自前述请求处理单元的信息(即栅格块数据的文件名称和栅格块号),“最后访问时间”值为当前时间,“访问累加次数”值为1,“在缓存中的编号”值为当前缓存的数组编号,同时将栅格块数据返回给客户端。
步骤280,若不存在空的缓存栅格块,则将所述新读取的所述栅格块数据替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的数组编号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的最后访问时间或者访问累加次数进行确定。
进行本步骤的前提是内存记录表表有N条记录了,也就是缓存中所有块都用完,现在有了新的栅格块数据,需要将这N个缓存栅格块中的某一个存储的栅格块数据替换为现在这个新的栅格块数据。
其中,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的最后访问时间进行确定包括:
步骤S21,查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据;
本步骤可查询内存记录表表并对字段“最后访问时间”进行升序排序,将第1条记录“在缓存中的编号”值返回,并第1条记录是结果给替换掉。然后根据“在缓存中的编号”值将新的栅格块数据替换掉相应缓存栅格块中的已有的栅格块数据。“最后访问时间”含义是说明有很长时间都没有客户访问次栅格块数据了,应该给新的客户要访问的栅格块数据缓存机会。
其中,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的最后访问时间或者访问累加次数进行确定包括:
步骤S22,查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。
本步骤可查询内存记录表表并对字段“访问累加次数”进行升序排序,将第1条记录“在缓存中的编号”值返回,并第1条记录是结果给替换掉。然后根据“在缓存中的编号”值将新的栅格块数据替换掉相应缓存栅格块中的已有的栅格块数据。“访问累加次数”含义是说明访问此栅格块的客户非常少,也应该给访问量大的栅格块数据缓存机会。
另外,本实施例还可包括:
步骤S280,定期将所述内存记录表存储至磁盘文件中。
进一步的,包括:
步骤S281,当栅格数据读取处理装置重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。
步骤S280与步骤S281与图2实施例相应步骤原理类似,在此不再详述。
本实施例是按数据服务器上的所有栅格数据文件以同样大小划分栅格块,每个栅格块占同样存储空间为基础进行说明,对于栅格数据文件以不同象素尺度划分栅格块,每个数据文件的栅格块存储大小各异情况下,也可以采用本发明,本质上没有重大区别。
比如存在两种大小的栅格块数据,那么相应缓存栅格块大小也为两种,比如N个缓存块中有m个大小为i1的缓存栅格块,N-m个大小为i2的缓存栅格块。那么针对客户端请求中大小为i1的栅格块数据,在步骤260中,则查询所述m个大小大于等于i1的缓存栅格块是否有空余;
如果有空余,则将栅格块数据存入其中一个空余的缓存栅格块,并将栅格块数据返回客户端,同时可在内存记录表中增加一条记录,记录栅格块数据对应的文件名称、栅格块号,最后访问时间为当前时间,访问累加次数为1,在缓存中的编号为该缓存栅格块的数组编号,该缓存数据块的大小(可预先在内存数据表中增加一个“大小”字段以标记缓存栅格块大小)
如果没空余,则将栅格块数据替换其中一个缓存栅格块中的原栅格块数据,并将栅格块数据返回客户端,同时可在内存记录表中更改该缓存栅格块的记录,记录其中存储的栅格块数据对应的文件名称、栅格块号,最后访问时间为当前时间,访问累加次数为1,在缓存中的编号为该缓存栅格块的数组编号,该缓存栅格块大小(可预先在内存数据表中增加一个“大小”字段以标记缓存栅格块大小)。
在没空余的情况下,如果采用步骤S21,则根据请求中栅格块数据大小a,在内存记录表中查找大于等于a的缓存栅格块中存储的栅格块数据的最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据。
即筛选内存记录表中缓存栅格块大小大于当前处理的栅格块数据的记录,然后进行相应替换动作。
如果采用步骤S22,则根据请求中栅格块数据大小a,在内存记录表中查找大于等于a的缓存栅格块中存储的栅格块数据的访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。
即筛选内存记录表中缓存栅格块大小大于当前处理的栅格块数据的记录,然后进行相应替换动作。
参照图4,其示出了本发明一种栅格数据读取处理装置的结构示意图,具体可以包括:
缓存栅格块配置模块310,用于根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;
内存数据库建立模块320,用于针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;
请求接收模块330,用于接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的各栅格块属性信息;
栅格块信息查询模块340,用于在所述内存记录表中查询是否存在所述栅格块属性信息;
第一返回模块350,用于如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
第二返回模块360,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端。
所述第二返回模块包括:
空缓存栅格块判断模块,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;
存储返回模块,用于若存在空的缓存栅格块,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
替换返回模块,用于若不存在空的缓存栅格块,则从磁盘中相应的栅格数据文件中提取相应栅格块数据,替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,所述栅格块数据信息包括还包括使用历史信息,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定。
优选的,所述栅格块数据的栅格块数据使用历史信息包括:
服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数。
优选的,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定包括:
第三返回模块,用于查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据;
或,第四返回模块,用于查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。
优选的,所述栅格块数据的栅格块属性信息包括:
栅格块数据的栅格号,和栅格块数据所属的栅格数据文件的文件名称。
优选的,还包括:
定期存储模块,用于定期将所述内存记录表存储至磁盘文件中。
进一步的还包括:第一加载模块,用于当栅格数据读取处理装置重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。
参照图5,其示出了本发明优选的一种栅格数据读取处理装置的结构示意图,具体可以包括:
缓存栅格块配置模块410,用于根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并将所述缓存栅格块的起始地址存储于一数组内;所述N≥2;所述数组大小为N个;
内存数据库建立模块420,用于针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录的信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据所属的栅格块文件的文件名称,所述栅格块数据在所属的栅格块文件中的栅格块号,服务器针对所述栅格块数据的最后访问时间,针对所述栅格块数据的访问累加次数,以及该缓存栅格块起始地址的数组编号;其中,同一缓存栅格块对应的文件名称、栅格块号、最后访问时间、访问累加次数、数组编号相互对应。
请求接收模块430,用于接收客户端的栅格数据读取请求,并提取栅格数据取读请求中的文件名称及对应的栅格块号;
栅格块信息查询模块440,用于在所述内存记录表中以所述文件名称和栅格块号为关键字查询是否存在记录;如果存在,则进入第一返回模块;如果不存在,则进入第一判断模块;
第一返回模块450,用于如果存在所述记录,则根据记录中的数组编号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
第一判断模块460,用于如果不存在所述记录,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与该栅格块数据大小相应的、空的缓存栅格块;如果存在,则进入第三返回模块,用于;如果不存在,则进入第四返回模块;
第三返回模块470,用于若存在空的缓存栅格块,则将所述新读取的所述栅格块数据存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
第四返回模块480,用于若不存在空的缓存栅格块,则将所述新读取的所述栅格块数据替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的数组编号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;其中,被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的最后访问时间或者访问累加次数进行确定。
其中,所述第四返回模块,包括:
第一替换模块,用于查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的该缓存栅格块中的栅格块数据;
和/或者,所述第四返回模块,包括:
第一替换模块,用于查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的该缓存栅格块中的栅格块数据。
优选的,还包括:
定期存储模块,用于定期将所述内存记录表存储至磁盘文件中。
进一步的还包括:第一加载模块,用于当栅格数据读取处理装置重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。
需要说明的是,对于上述方法实施例而言,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上对本发明所提供的一种栅格数据读取处理方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种栅格数据读取处理方法,其特征在于,包括:
根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;
针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息和使用历史信息;所述使用历史信息包括:服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数;
在分配完缓存栅格块和建立内存数据库及相应的内存记录表后,针对客户端的栅格数据读取请求,读取栅格数据的处理过程包括:
接收客户端的栅格数据读取请求,并提取栅格数据读取请求中的各栅格块属性信息;
针对每个栅格块属性信息,在所述内存记录表中查询是否存在所述栅格块属性信息;
如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端;
其中,所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定,包括:
查找内存记录表中最后访问时间最早值,将新读取的所述栅格块数据,替换所述最后访问时间最早值对应的缓存栅格块中的栅格块数据;所述新读取的所述栅格块数据为从磁盘中相应的栅格数据文件中提取的栅格数据;
或,查找内存记录表中访问累加次数最小值,将新读取的所述栅格块数据,替换所述访问累加次数最小值对应的缓存栅格块中的栅格块数据。
2.根据权利要求1所述的方法,其特征在于,所述如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端,包括:
如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与提取的所述栅格块数据大小相应的、空的缓存栅格块;
若存在空的缓存栅格块,则将所述新读取的所述栅格块数据的存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
若不存在空的缓存栅格块,则将所述新读取的所述栅格块数据替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;所述新读取的所述栅格块数据为从磁盘中相应的栅格数据文件中提取的栅格数据。
3.根据权利要求2所述的方法,其特征在于,所述栅格块数据的栅格块属性信息包括:
栅格块数据的栅格号,和栅格块数据所属的栅格数据文件的文件名称。
4.根据权利要求1所述的方法,其特征在于,还包括:
定期将所述内存记录表存储至磁盘文件中。
5.根据权利要求4所述的方法,其特征在于,当服务器程序重启时,重新加载所述磁盘文件中的内存记录表,并从磁盘中相应的栅格数据文件中提取对应的栅格块数据存入相应的缓存栅格块中。
6.根据权利要求1所述的方法,其特征在于,所述并采用标识号记录每个缓存栅格块的起始地址包括:
将所述缓存栅格块的起始地址存储于一数组内,所述数组大小为N个。
7.一种栅格数据读取处理装置,其特征在于,包括:
缓存栅格块配置模块,用于根据栅格数据文件中的栅格块数据大小,预先在服务器中将缓存分配为N个用于存储N个栅格块数据的缓存栅格块,并采用标识号记录每个缓存栅格块的起始地址;所述N≥2;
内存数据库建立模块,用于针对所述N个缓存栅格块,建立内存数据库并生成相应的内存记录表,所述内存记录表用于记录各个缓存栅格块的使用信息;所述使用信息包括:针对每个缓存栅格块,记录其中存储的栅格块数据的栅格块数据信息,以及该缓存栅格块起始地址的标识号,并将同一缓存栅格块对应的栅格块数据信息与标识号相关联;所述栅格块数据信息包括栅格块数据的属性信息和使用历史信息;所述使用历史信息包括:服务器针对所述栅格块数据的最后访问时间,和/或,针对所述栅格块数据的访问累加次数;
请求接收模块,用于接收客户端的栅格数据读取请求,并提取栅格数据读取请求中的各栅格块属性信息;
栅格块信息查询模块,用于针对每个栅格块属性信息,在所述内存记录表中查询是否存在所述栅格块属性信息;
第一返回模块,用于如果存在所述栅格块属性信息,则根据相应的标识号从缓存栅格块中读出栅格块数据返回给客户端,并更新所述内存记录表中相应的栅格块数据信息;
第二返回模块,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块或替换进入一缓存栅格块,并更新所述内存记录表中对应缓存栅格块的栅格块数据信息,并将栅格块数据返回给客户端;所述被替换的缓存栅格块根据各缓存栅格块中存储的栅格块数据的栅格块数据使用历史信息进行确定;则所述第二返回模块包括:第三返回模块或第四返回模块;
所述第三返回模块,用于查找内存记录表中最后访问时间最早值,将所述新读取的所述栅格块数据,替换所述最后访问时间最早值对应的缓存栅格块中的栅格块数据;
或,所述第四返回模块,用于查找内存记录表中访问累加次数最小值,将所述新读取的所述栅格块数据,替换所述访问累加次数最小值对应的缓存栅格块中的栅格块数据。
8.根据权利要求7所述的装置,其特征在于,所述第二返回模块包括:
空缓存栅格块判断模块,用于如果不存在所述栅格块属性信息,则从磁盘中相应的栅格数据文件中读取相应栅格块数据到内存,并判断所述N个缓存栅格块中是否存在与提取的所述栅格块数据大小相应的、空的缓存栅格块;
存储返回模块,用于若存在空的缓存栅格块,则从磁盘中相应的栅格数据文件中提取相应栅格块数据存入空的缓存栅格块,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将栅格块数据返回给客户端;
替换返回模块,用于若不存在空的缓存栅格块,则从磁盘中相应的栅格数据文件中提取相应栅格块数据,替换掉一缓存栅格块中已存在的栅格块数据,并将新的栅格块数据的栅格块数据信息及所述缓存栅格块的标识号更新入所述内存记录表,并将所述缓存栅格块中的栅格块数据读出并返回客户端;所述新读取的所述栅格块数据为从磁盘中相应的栅格数据文件中提取的栅格数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210426086.5A CN102968456B (zh) | 2012-10-30 | 2012-10-30 | 一种栅格数据读取处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210426086.5A CN102968456B (zh) | 2012-10-30 | 2012-10-30 | 一种栅格数据读取处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968456A CN102968456A (zh) | 2013-03-13 |
CN102968456B true CN102968456B (zh) | 2016-08-24 |
Family
ID=47798594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210426086.5A Active CN102968456B (zh) | 2012-10-30 | 2012-10-30 | 一种栅格数据读取处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968456B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810269A (zh) * | 2014-01-28 | 2014-05-21 | 浙江大学 | 一种基于大内存的地图搜索方法 |
CN107977427B (zh) * | 2017-11-28 | 2021-08-24 | 鲁东大学 | 一种分类型栅格数据的存储及读取方法 |
CN109726219A (zh) * | 2018-11-27 | 2019-05-07 | 中科恒运股份有限公司 | 数据查询的方法及终端设备 |
CN110901229B (zh) * | 2019-11-15 | 2021-02-26 | 深圳市汉森软件有限公司 | 图像数据处理方法、装置、设备及存储介质 |
CN114064286B (zh) * | 2021-11-19 | 2022-08-05 | 北京太琦图形科技有限公司 | 用于处理非结构化网格数据的方法、装置、设备和介质 |
CN116055493B (zh) * | 2023-03-31 | 2023-06-23 | 北京比格大数据有限公司 | 一种跨架构的数据获取方法、网关节点及跨架构平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及系统 |
CN102231155A (zh) * | 2011-06-03 | 2011-11-02 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 三维地震数据管理及组织方法 |
CN102542041A (zh) * | 2011-12-27 | 2012-07-04 | 北京地拓科技发展有限公司 | 栅格数据处理方法及系统 |
-
2012
- 2012-10-30 CN CN201210426086.5A patent/CN102968456B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及系统 |
CN102231155A (zh) * | 2011-06-03 | 2011-11-02 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 三维地震数据管理及组织方法 |
CN102542041A (zh) * | 2011-12-27 | 2012-07-04 | 北京地拓科技发展有限公司 | 栅格数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102968456A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
EP3602351B1 (en) | Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps | |
CN102968456B (zh) | 一种栅格数据读取处理方法和装置 | |
CN104850572B (zh) | HBase非主键索引构建与查询方法及其系统 | |
CN101510209B (zh) | 实现实时检索的方法、系统和服务器 | |
CN110674432A (zh) | 二级缓存方法、装置及计算机可读存储介质 | |
CN105608188A (zh) | 数据处理方法和数据处理装置 | |
CN106294814B (zh) | 基于内存数据库的HBase二级索引构建与查询的装置及方法 | |
CN103902698A (zh) | 一种数据存储系统和存储方法 | |
CN102375853A (zh) | 分布式数据库系统、在其中建立索引的方法和查询方法 | |
US11567681B2 (en) | Method and system for synchronizing requests related to key-value storage having different portions | |
CN109947668A (zh) | 存储数据的方法和装置 | |
CN102867070A (zh) | 更新key-value分布式存储系统缓存的方法 | |
US20080313209A1 (en) | Partition/table allocation on demand | |
Schaffner et al. | A hybrid row-column OLTP database architecture for operational reporting | |
US20090164486A1 (en) | Business intelligence data extraction on demand | |
CN110196847A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN111258978A (zh) | 一种数据存储的方法 | |
US11748357B2 (en) | Method and system for searching a key-value storage | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN103353901A (zh) | 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统 | |
CN109947729A (zh) | 一种实时数据分析方法及装置 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN115599807A (zh) | 一种数据存取方法、装置、应用服务器及存储介质 | |
CN103559307A (zh) | 一种查询的缓存方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |