CN114816219A - 数据写入和读取方法、装置及数据读写系统 - Google Patents

数据写入和读取方法、装置及数据读写系统 Download PDF

Info

Publication number
CN114816219A
CN114816219A CN202110083890.7A CN202110083890A CN114816219A CN 114816219 A CN114816219 A CN 114816219A CN 202110083890 A CN202110083890 A CN 202110083890A CN 114816219 A CN114816219 A CN 114816219A
Authority
CN
China
Prior art keywords
target key
key value
target
data
writing
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
CN202110083890.7A
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 CN202110083890.7A priority Critical patent/CN114816219A/zh
Publication of CN114816219A publication Critical patent/CN114816219A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

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

Abstract

本申请提供了一种数据写入和读取方法、装置及数据读写系统,数据写入方法应用于存储服务器;方法包括:接收用户的数据写入请求;其中,数据写入请求中携带有目标键值对;目标键值对包括目标键和目标键值;如果目标键值的字节长度大于预设长度阈值,将目标键值写入存储服务器的目标存储引擎的指定文件;基于目标键值在指定文件中的位置生成目标键值对应的新目标键值;将新目标键值和目标键作为新目标键值对写入目标存储引擎。本申请能够缓解现有技术中引擎写放大问题导致的消耗系统性能的问题,另一方面在进行数据读取操作时,减少扫描的数据,能够消除潜在的系统性能瓶颈。

Description

数据写入和读取方法、装置及数据读写系统
技术领域
本申请涉及软件测试技术领域,尤其是涉及一种数据写入和读取方法、装置及数据读写系统。
背景技术
分布式表格存储服务是一个完全托管的分布式键值(Key Value)数据库服务,主要以表格的形式存储用户数据。用户创建的表按照一定顺序存储,并被水平分割成多个分片,分片数据存储在存储服务器上,对应的元数据(分片的key范围,以及对应的存储服务器)存储在管理服务器上,并由代理服务器对外提供服务。
其中存储服务器上存储的分片数据,一般采用单分片一个引擎的方式,如常用的leveldb、rocksdb类似的单机数据库等,此类引擎普遍存在这样的特点,先追加写日志再写内存,然后通过一定的策略,定期将内存中的数据持久化到磁盘等介质中,同时为了提高读的效率,需要对持久化的数据压缩合并,从而对于一次用户写请求,引擎可能会写多次,这就产生了写放大问题。另一方面,在根据用户读请求,进行数据读取时,需要进行全引擎级别的遍历操作,即从头到尾地把数据扫描一遍,获取到用户想要的数据。
综上,对于字节长度较大的键值类型数据,由于引擎的写放大问题,需要写入大量数据,容易导致系统性能下降;而且当系统进行数据读取数据时,又需要扫描大量的数据,容易产生系统瓶颈。
发明内容
本申请的目的在于提供一种数据写入和读取方法、装置及数据读写系统,能够缓解现有技术中引擎写放大问题导致的消耗系统性能的问题,另一方面在进行读取操作时,减少扫描的数据,能够消除潜在的系统性能瓶颈。
第一方面,本申请实施例提供一种数据写入方法,方法应用于存储服务器;方法包括:接收用户的数据写入请求;其中,数据写入请求中携带有目标键值对;目标键值对包括目标键和目标键值;如果目标键值的字节长度大于预设长度阈值,将目标键值写入存储服务器的目标存储引擎的指定文件;指定文件为目标存储引擎外部绑定的可读写文件;基于目标键值在指定文件中的位置生成目标键值对应的新目标键值;将新目标键值和目标键作为新目标键值对写入目标存储引擎。
进一步的,上述基于目标键值在指定文件中的位置生成目标键值对应的新目标键值的步骤,包括:获取目标键值在指定文件中的位置偏移值和字节长度;根据位置偏移值和字节长度,生成目标键值对应的新目标键值。
进一步的,上述方法还包括:如果目标键值的字节长度小于预设长度阈值,将目标键值对写入目标存储引擎。
进一步的,上述存储服务器中存储有多个数据分片分别对应的键区间;每个数据分片对应一个存储引擎;将目标键值写入存储服务器的目标存储引擎的指定文件的步骤之前,还包括:根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片;将目标数据分片对应的存储引擎作为目标存储引擎。
进一步的,上述根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片的步骤,包括:根据多个数据分片分别对应的键区间,查找目标键所属的目标键区间;将目标键区间对应的数据分片确定为目标键对应的目标数据分片。
进一步的,上述方法还包括:为新目标键值标注指定标签。
第二方面,本申请实施例还提供一种数据读取方法,方法应用于存储服务器,存储服务器的指定文件中存储有第一方面所述方法写入的数据,方法包括:接收用户的数据读取请求;其中,数据读取请求中携带有目标键;通过存储服务器的目标存储引擎查找目标键对应的目标键值;如果目标键值指向指定文件,根据目标键值从指定文件获取数据读取请求对应的数据;其中,指定文件为目标存储引擎外部绑定的可读写文件。
进一步的,上述根据目标键值从指定文件获取数据读取请求对应的数据的步骤,包括:将目标键值作为索引数据,从指定文件中查找数据读取请求对应的数据。
进一步的,上述方法还包括:如果目标键值不指向指定文件,将目标键值确定为数据读取请求对应的数据。
进一步的,上述存储服务器中存储有多个数据分片分别对应的键区间;每个数据分片对应一个存储引擎;通过存储服务器的目标存储引擎查找目标键对应的目标键值的步骤之前,还包括:根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片;将目标数据分片对应的存储引擎作为目标存储引擎。
进一步的,上述方法还包括:检测目标键值是否标注有指定标签;如果是,确定目标键值指向指定文件;如果否,确定目标键值不指向指定文件。
第三方面,本申请实施例还提供一种数据写入装置,装置应用于存储服务器;方法包括:写入请求接收模块,用于接收用户的数据写入请求;其中,数据写入请求中携带有目标键值对;目标键值对包括目标键和目标键值;键值写入模块,用于如果目标键值的字节长度大于预设长度阈值,将目标键值写入存储服务器的目标存储引擎的指定文件;指定文件为目标存储引擎外部绑定的可读写文件;新键值生成模块,用于基于目标键值在指定文件中的位置生成目标键值对应的新目标键值;键值对写入模块,用于将新目标键值和目标键作为新目标键值对写入目标存储引擎。
第四方面,本申请实施例还提供一种数据读取装置,装置应用于存储服务器,存储服务器的指定文件中存储有第一方面所述方法写入的数据,装置包括:读取请求接收模块,用于接收用户的数据读取请求;其中,数据读取请求中携带有目标键;键值查找模块,用于通过存储服务器的目标存储引擎查找目标键对应的目标键值;数据读取模块,用于如果目标键值指向指定文件,根据目标键值从指定文件获取数据读取请求对应的数据;其中,指定文件为目标存储引擎外部绑定的可读写文件。
第五方面,本申请实施例还提供一种数据读写系统,系统包括:代理服务器和存储服务器;代理服务器与存储服务器通信连接;代理服务器用于将用户的数据写入请求或者数据读取请求发送至存储服务器;存储服务器用于执行第一方面或第二方面所述的方法。
第六方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面或第二方面所述的方法。
第七方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述第一方面或第二方面所述的方法。
本申请实施例提供的数据写入方法应用于存储服务器;当接收到用户的数据写入请求时,根据请求中携带的目标键值对中的目标键值进行判断;如果目标键值的字节长度大于预设长度阈值,将目标键值写入存储服务器的目标存储引擎的指定文件;该指定文件为目标存储引擎外部绑定的可读写文件;并基于目标键值在指定文件中的位置生成目标键值对应的新目标键值;将新目标键值和目标键作为新目标键值对写入目标存储引擎。
这种方式可以对字节长度较大的目标键值进行特殊处理,将目标键值与目标键分离,将目标键值写入目标存储引擎的指定文件中,即引擎外部绑定的可读写文件中,将目标键和基于目标键值在指定文件中的位置而生成的新目标键值写入目标存储引擎,从而使目标存储引擎中写入的数据相对较少,缓解了现有技术中引擎写放大问题导致的消耗系统性能的问题,另一方面,通过这样种方式写入的数据,可以使系统在进行数据读取操作时,减少扫描的数据,消除潜在的系统性能瓶颈。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据写入方法的流程图;
图2为本申请实施例提供的一种数据读取方法的流程图;
图3为本申请实施例提供的一种数据写入装置的结构框图;
图4为本申请实施例提供的一种数据读取装置的结构框图;
图5为本申请实施例提供的一种数据读写系统的结构框图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,对于字节长度较大的键值类型数据,由于引擎的写放大问题,需要写入大量数据,容易导致系统性能下降;而且当系统进行读取数据时,又需要扫描大量的数据,容易产生系统瓶颈。
基于此,本申请实施例提供一种数据写入和读取方法、装置及数据读写系统,能够缓解现有技术中引擎写放大问题导致的消耗系统性能的问题,另一方面在进行数据读取操作时,减少扫描的数据,能够消除潜在的系统性能瓶颈。
图1为本申请实施例提供的一种数据写入方法的流程图,该方法应用于存储服务器;该数据写入方法具体包括以下步骤:
步骤S102,接收用户的数据写入请求;其中,数据写入请求中携带有目标键值对;目标键值对包括目标键和目标键值。
在分布式表格存储服务中,上述数据写入请求通常是代理服务器将接收到的用户的数据写入请求转发给存储服务器的,具体转发给哪个存储服务器,需要代理服务器进行判断,代理服务器中预先缓存有各数据分片对应的键区间,与存储服务器的对应关系,因而代理服务器在接收到用户的数据写入请求后,就可以根据请求中携带的目标键找到对应的数据分片,从而确定出目标存储服务器,并向其转发上述用户的数据写入请求。
步骤S104,如果目标键值的字节长度大于预设长度阈值,将目标键值写入存储服务器的目标存储引擎的指定文件。
上述数据写入请求中携带有目标键值对,也就是用户想要存储的数据,目标键值对中包括目标键和目标键值,存储服务器在获取到目标键值后,需要首先基于其字节长度和预设长度阈值进行判断,如果目标键值的字节长度大于预设长度阈值,则将目标键值写入存储服务器的目标存储引擎的指定文件中,该指定文件为目标存储引擎外部绑定的可读写文件,与目标存储引擎内部是两个不同的存储区域。
需要说明的是,一个存储服务器上可以配置有一个或多个存储引擎,每个存储引擎又可绑定一个或多个指定文件,用于存放字节长度较大的键值。目标存储引擎的确定方式有多种,在此不做具体限定。
步骤S106,基于目标键值在指定文件中的位置生成目标键值对应的新目标键值。
上述目标键值在指定文件中的位置可以包括目标键值在指定文件中的位置偏移值和字节长度,由这两个数据即可确定目标键值在指定文件中的具体位置。在将目标键值写入存储服务器的目标存储引擎的指定文件的同时,还需要进一步基于目标键值在指定文件中的位置生成目标键值对应的新目标键值,也就是可以将目标键值在指定文件中的位置偏移值和字节长度作为新目标键值。
步骤S108,将新目标键值和目标键作为新目标键值对写入目标存储引擎。
在确定出新目标键值后,进一步将目标键值和数据写入请求中携带的目标键作为新目标键值对写入目标存储引擎中。
本申请实施例提供的数据写入方法,可以对字节长度较大的目标键值进行特殊处理,即将目标键值与目标键分离,将目标键值写入目标存储引擎的指定文件中,将目标键和基于目标键值在指定文件中的位置而生成的新目标键值写入目标存储引擎,从而使目标存储引擎中写入的数据相对较少,缓解了现有技术中引擎写放大问题导致的消耗系统性能的问题,另一方面,通过这样种方式写入的数据,可以使系统在进行数据读取操作时,减少扫描的数据,消除潜在的系统性能瓶颈。
为了提高数据查找的准确性,本申请实施例中,上述基于目标键值在指定文件中的位置生成目标键值对应的新目标键值的步骤,可以通过以下方式实现:
获取目标键值在指定文件中的位置偏移值和字节长度;根据位置偏移值和字节长度,生成目标键值对应的新目标键值。
在分布式表格存储服务中,上述存储服务器中还存储有多个数据分片分别对应的键区间;每个数据分片对应一个存储引擎;比如,数据分片A,对应的键区间为:1-100,对应的存储引擎为a,数据分片B,对应的键区间为:100-200,对应的存储引擎为b,数据分片C,对应的键区间为:200-300,对应的存储引擎为c,以此类推。
上述将目标键值写入存储服务器的目标存储引擎的指定文件的步骤之前,还包括目标存储引擎的确定过程,具体参见如下方式:
(1)根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片。
具体的,根据多个数据分片分别对应的键区间,查找目标键所属的目标键区间;比如,目标键为30,那么其属于目标键区间1-100。
将目标键区间对应的数据分片确定为目标键对应的目标数据分片。目标键区间1-100对应的数据分片为A,那么就将数据分片A作为目标数据分片。
(2)将目标数据分片对应的存储引擎作为目标存储引擎。数据分片A对应的存储引擎为a,则存储引擎a为目标存储引擎。
为了方便存储服务器在读取数据时,能够方便地判断查找到的目标键值是字节长度小于阈值的目标键值,还是用于表征字节长度大于阈值的目标键值在指定文件中的位置的信息,本申请实施例还提供一种优选实施方式,在上述确定出新目标键值后,为新目标键值标注指定标签。通过该指定标签可以确定出在读取数据时,查找到的目标键值为用于表征字节长度大于阈值的目标键值在指定文件中的位置的信息,进而可以基于上述信息从指定文件中查找到对应的数据。
上面说明了字节长度超过阈值的目标键值的写入方式,对于字节长度没有超过阈值的目标键值,还是可以采用常规的数据写入方式进行操作,即将目标键值对直接写入目标存储引擎中。
本申请实施例通过对不同字节长度的键值进行分类存储,对于字节长度大于阈值的键值,采用键值和键分离的方式,只将键值对应于指定文件中的位置信息和键写入引擎,将键值写入引擎的指定文件中,这样就可以使引擎的数据不会太大,从而缓解现有技术中引擎写放大问题导致的消耗系统性能的问题,另一方面,通过这样种方式写入的数据,可以使系统在进行数据读取操作时,减少扫描的数据,消除潜在的系统性能瓶颈。
基于上述数据写入方法,本申请实施例还提供一种数据读取方法,该方法应用于存储服务器,该存储服务器的指定文件中存储有通过上述实施例的数据写入方法而写入的数据,参见图2所示的本申请实施例提供的一种数据读取方法的流程图,该方法具体包括以下步骤:
步骤S202,接收用户的数据读取请求;其中,数据读取请求中携带有目标键。
同上述数据写入请求一样,用户的数据读取请求也可以是由代理服务器转发而来的。该数据读取请求中只携带有目标键。
步骤S204,通过存储服务器的目标存储引擎查找目标键对应的目标键值。
存储服务器中可以包括一个或多个存储引擎,目标存储引擎的确定方式有多种,在此不做具体限定。通过目标存储引擎可以查找到目标键对应的目标键值。比如,调用目标存储引擎的数据读取接口,即可获取目标键对应的目标键值。
步骤S206,如果目标键值指向指定文件,根据目标键值从指定文件获取数据读取请求对应的数据。
上述指定文件为目标存储引擎外部绑定的可读写文件。判断目标键值是否指向指定文件的方式有多种,比如可以通过检测目标键值是否有指定标签,有就指向,没有就不指向;或者也可以依据字节长度进行判断,字节长度小于第二阈值,就指向,不小于,就不指向;或者还可以每次都到指定文件中遍历一次,看看有无索引,有就指向,没有就不指向。
如果目标键值指向指定文件,就根据目标键值从指定文件中获取数据读取请求对应的数据,这种情况下,目标键值对应的是原目标键值在指定文件中的位置信息,从而可以根据该位置信息找到指定文件中对应的原目标键值数据。
上述根据目标键值从指定文件获取数据读取请求对应的数据的步骤,可以通过以下方式实现:将目标键值作为索引数据,从指定文件中查找数据读取请求对应的数据。
对于存储服务器中存储有多个数据分片分别对应的键区间;每个数据分片对应一个存储引擎的情况,还需要进行目标存储引擎的确定过程,如下;
根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片;将目标数据分片对应的存储引擎作为目标存储引擎。具体的实现方式同上一实施例中的方式,在此不再赘述。
上述是针对目标键值指向指定文件的情况说明,如果目标键值不指向指定文件,则可以将目标键值直接确定为数据读取请求对应的数据。
本申请实施例提供的数据读取方法,是针对上一实施例提供的数据写入方法写入存储服务器的数据,进行的数据读取操作过程。对于字节长度超过阈值的键值,需要到指定文件中查找具体的数据。该读取数据的过程中,由于存储引擎中存储的数据比较少,因而不需要扫描大量的数据,可以避免造成系统性能瓶颈。
针对上述数据写入方法,本申请实施例还提供一种数据写入装置,该装置应用于存储服务器;参见图3所示,该数据写入装置包括:
写入请求接收模块302,用于接收用户的数据写入请求;其中,数据写入请求中携带有目标键值对;目标键值对包括目标键和目标键值;键值写入模块304,用于如果目标键值的字节长度大于预设长度阈值,将目标键值写入存储服务器的目标存储引擎的指定文件;指定文件为目标存储引擎外部绑定的可读写文件;新键值生成模块306,用于基于目标键值在指定文件中的位置生成目标键值对应的新目标键值;键值对写入模块308,用于将新目标键值和目标键作为新目标键值对写入目标存储引擎。
在另一种可能的实施方式中,上述新键值生成模块306,还用于:获取目标键值在指定文件中的位置偏移值和字节长度;根据位置偏移值和字节长度,生成目标键值对应的新目标键值。
在另一种可能的实施方式中,上述键值对写入模块308,还用于如果目标键值的字节长度小于预设长度阈值,将目标键值对写入目标存储引擎。
在另一种可能的实施方式中,存储服务器中存储有多个数据分片分别对应的键区间;每个数据分片对应一个存储引擎;上述数据写入装置还包括目标存储引擎确定模块,用于根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片;将目标数据分片对应的存储引擎作为目标存储引擎。
在另一种可能的实施方式中,上述目标存储引擎确定模块还用于:根据多个数据分片分别对应的键区间,查找目标键所属的目标键区间;将目标键区间对应的数据分片确定为目标键对应的目标数据分片。
在另一种可能的实施方式中,上述数据写入装置还包括:标签标注模块,用于为新目标键值标注指定标签。
本申请实施例提供的数据写入装置,其实现原理及产生的技术效果和前述数据写入方法实施例相同,为简要描述,数据写入装置的实施例部分未提及之处,可参考前述数据写入方法实施例中相应内容。
针对上述数据读取方法,本申请实施例还提供一种数据读取装置,该装置应用于存储服务器,该存储服务器的指定文件中存储有上述数据写入方法实施例的方法写入的数据,参见图4所示,该数据读取装置包括:
读取请求接收模块402,用于接收用户的数据读取请求;其中,数据读取请求中携带有目标键;键值查找模块404,用于通过存储服务器的目标存储引擎查找目标键对应的目标键值;数据读取模块406,用于如果目标键值指向指定文件,根据目标键值从指定文件获取数据读取请求对应的数据;其中,指定文件为目标存储引擎外部绑定的可读写文件。
在另一种可能的实施方式中,上述数据读取模块406还用于将目标键值作为索引数据,从指定文件中查找数据读取请求对应的数据。
在另一种可能的实施方式中,上述数据读取模块406,还用于:如果目标键值不指向指定文件,将目标键值确定为数据读取请求对应的数据。
在另一种可能的实施方式中,存储服务器中存储有多个数据分片分别对应的键区间;每个数据分片对应一个存储引擎;上述数据读取装置还包括:目标存储引擎确定模块,用于根据多个数据分片分别对应的键区间,查找目标键对应的目标数据分片;将目标数据分片对应的存储引擎作为目标存储引擎。
在另一种可能的实施方式中,上述装置还包括判断模块,用于检测目标键值是否标注有指定标签;如果是,确定目标键值指向指定文件;如果否,确定目标键值不指向指定文件。
本申请实施例提供的数据读取装置,其实现原理及产生的技术效果和前述数据读取方法实施例相同,为简要描述,数据读取装置的实施例部分未提及之处,可参考前述数据读取方法实施例中相应内容。
基于上述数据写入方法和数据读取方法,本申请实施例还提供一种数据读写系统,参见图5所示,该系统包括:代理服务器52和存储服务器54;代理服务器52与存储服务器54通信连接;代理服务器52用于将用户的数据写入请求或者数据读取请求发送至存储服务器54;存储服务器54用于执行上述数据写入方法或上述数据读取方法的步骤。
本申请实施例提供的数据读写系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,数据读写系统的实施例部分未提及之处,可参考前述方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图6所示,为该电子设备的结构示意图,其中,该电子设备包括处理器61和存储器60,该存储器60存储有能够被该处理器61执行的计算机可执行指令,该处理器61执行该计算机可执行指令以实现上述方法。
在图6示出的实施方式中,该电子设备还包括总线62和通信接口63,其中,处理器61、通信接口63和存储器60通过总线62连接。
其中,存储器60可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线62可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器61可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器61中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器61可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器61读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述方法,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的数据写入和读取方法、装置及数据读写系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (16)

1.一种数据写入方法,其特征在于,所述方法应用于存储服务器;所述方法包括:
接收用户的数据写入请求;其中,所述数据写入请求中携带有目标键值对;所述目标键值对包括目标键和目标键值;
如果所述目标键值的字节长度大于预设长度阈值,将所述目标键值写入所述存储服务器的目标存储引擎的指定文件;所述指定文件为所述目标存储引擎外部绑定的可读写文件;
基于所述目标键值在所述指定文件中的位置生成所述目标键值对应的新目标键值;
将所述新目标键值和所述目标键作为新目标键值对写入所述目标存储引擎。
2.根据权利要求1所述的方法,其特征在于,基于所述目标键值在所述指定文件中的位置生成所述目标键值对应的新目标键值的步骤,包括:
获取所述目标键值在所述指定文件中的位置偏移值和字节长度;
根据所述位置偏移值和所述字节长度,生成所述目标键值对应的新目标键值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述目标键值的字节长度小于预设长度阈值,将所述目标键值对写入所述目标存储引擎。
4.根据权利要求1所述的方法,其特征在于,所述存储服务器中存储有多个数据分片分别对应的键区间;每个所述数据分片对应一个存储引擎;
将所述目标键值写入所述存储服务器的目标存储引擎的指定文件的步骤之前,还包括:
根据多个数据分片分别对应的键区间,查找所述目标键对应的目标数据分片;
将所述目标数据分片对应的存储引擎作为目标存储引擎。
5.根据权利要求4所述的方法,其特征在于,根据多个数据分片分别对应的键区间,查找所述目标键对应的目标数据分片的步骤,包括:
根据多个数据分片分别对应的键区间,查找所述目标键所属的目标键区间;
将所述目标键区间对应的数据分片确定为所述目标键对应的目标数据分片。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述新目标键值标注指定标签。
7.一种数据读取方法,其特征在于,所述方法应用于存储服务器,所述存储服务器的指定文件中存储有权利要求1-6中任一项所述方法写入的数据,所述方法包括:
接收用户的数据读取请求;其中,所述数据读取请求中携带有目标键;
通过所述存储服务器的目标存储引擎查找所述目标键对应的目标键值;
如果所述目标键值指向指定文件,根据所述目标键值从所述指定文件获取所述数据读取请求对应的数据;其中,所述指定文件为所述目标存储引擎外部绑定的可读写文件。
8.根据权利要求7所述的方法,其特征在于,根据所述目标键值从所述指定文件获取所述数据读取请求对应的数据的步骤,包括:
将所述目标键值作为索引数据,从所述指定文件中查找所述数据读取请求对应的数据。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
如果所述目标键值不指向所述指定文件,将所述目标键值确定为所述数据读取请求对应的数据。
10.根据权利要求7所述的方法,其特征在于,所述存储服务器中存储有多个数据分片分别对应的键区间;每个所述数据分片对应一个存储引擎;
通过所述存储服务器的目标存储引擎查找所述目标键对应的目标键值的步骤之前,还包括:
根据多个数据分片分别对应的键区间,查找所述目标键对应的目标数据分片;
将所述目标数据分片对应的存储引擎作为目标存储引擎。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括:
检测所述目标键值是否标注有指定标签;
如果是,确定所述目标键值指向所述指定文件;
如果否,确定所述目标键值不指向所述指定文件。
12.一种数据写入装置,其特征在于,所述装置应用于存储服务器;所述方法包括:
写入请求接收模块,用于接收用户的数据写入请求;其中,所述数据写入请求中携带有目标键值对;所述目标键值对包括目标键和目标键值;
键值写入模块,用于如果所述目标键值的字节长度大于预设长度阈值,将所述目标键值写入所述存储服务器的目标存储引擎的指定文件;所述指定文件为所述目标存储引擎外部绑定的可读写文件;
新键值生成模块,用于基于所述目标键值在所述指定文件中的位置生成所述目标键值对应的新目标键值;
键值对写入模块,用于将所述新目标键值和所述目标键作为新目标键值对写入所述目标存储引擎。
13.一种数据读取装置,其特征在于,所述装置应用于存储服务器,所述存储服务器的指定文件中存储有权利要求1-6中任一项所述方法写入的数据,所述装置包括:
读取请求接收模块,用于接收用户的数据读取请求;其中,所述数据读取请求中携带有目标键;
键值查找模块,用于通过所述存储服务器的目标存储引擎查找所述目标键对应的目标键值;
数据读取模块,用于如果所述目标键值指向指定文件,根据所述目标键值从所述指定文件获取所述数据读取请求对应的数据;其中,所述指定文件为所述目标存储引擎外部绑定的可读写文件。
14.一种数据读写系统,其特征在于,所述系统包括:代理服务器和存储服务器;
所述代理服务器与所述存储服务器通信连接;
所述代理服务器用于将用户的数据写入请求或者数据读取请求发送至所述存储服务器;
所述存储服务器用于执行如权利要求1-6任一项所述的数据写入方法或如权利要求7-11任一项所述的数据读取方法的步骤。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1-6或7-11任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1-6或7-11任一项所述的方法。
CN202110083890.7A 2021-01-21 2021-01-21 数据写入和读取方法、装置及数据读写系统 Pending CN114816219A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110083890.7A CN114816219A (zh) 2021-01-21 2021-01-21 数据写入和读取方法、装置及数据读写系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110083890.7A CN114816219A (zh) 2021-01-21 2021-01-21 数据写入和读取方法、装置及数据读写系统

Publications (1)

Publication Number Publication Date
CN114816219A true CN114816219A (zh) 2022-07-29

Family

ID=82524312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110083890.7A Pending CN114816219A (zh) 2021-01-21 2021-01-21 数据写入和读取方法、装置及数据读写系统

Country Status (1)

Country Link
CN (1) CN114816219A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117271395A (zh) * 2023-11-22 2023-12-22 民航成都信息技术有限公司 一种数据缓存方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117271395A (zh) * 2023-11-22 2023-12-22 民航成都信息技术有限公司 一种数据缓存方法、装置、电子设备及存储介质
CN117271395B (zh) * 2023-11-22 2024-02-06 民航成都信息技术有限公司 一种数据缓存方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US9081838B2 (en) Methods, apparatuses, and computer program products for database record recovery
CN111782707A (zh) 一种数据查询方法及系统
CN108900554B (zh) Http协议资产检测方法、系统、设备及计算机介质
US10255325B2 (en) Extreme value computation
CN113609347A (zh) 数据存储及查询方法、装置及数据库系统
CN111831691B (zh) 一种数据读写方法及装置、电子设备、存储介质
CN114816219A (zh) 数据写入和读取方法、装置及数据读写系统
CN115033577A (zh) 设备订单数据的存储方法、查询方法及装置
CN116126997B (zh) 一种文献去重存储方法、系统、设备及存储介质
CN113010455A (zh) 数据处理方法、装置和电子设备
CN111402958B (zh) 一种建立基因比对表的方法、系统、设备及介质
CN111382179B (zh) 数据处理方法、装置及电子设备
CN111639087A (zh) 数据库中数据更新方法、装置和电子设备
CN115422293A (zh) 一种分布式数据库及其数据检索方法
CN112559451A (zh) 一种数据查询方法、装置及其可读存储介质
CN110879819A (zh) 路由信息快速准确识别方法、装置、服务器及存储介质
CN113505142B (zh) 数据查询方法、装置及服务器
CN113411364B (zh) 资源获取方法、装置及服务器
CN113342813A (zh) 键值数据处理方法、装置、计算机设备及可读存储介质
CN113094283A (zh) 一种数据获取方法、装置、设备及存储介质
KR20100008466A (ko) 중복 웹페이지 제거 장치 및 방법
CN111339390A (zh) 一种基于固定电话爬取信息的方法、计算设备及存储介质
CN114968963A (zh) 文件覆盖写方法、装置和电子设备
CN112887447A (zh) 域名查询方法、装置和域名服务器
CN117891840A (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