CN114911806A - 更新数据的方法和相关装置 - Google Patents
更新数据的方法和相关装置 Download PDFInfo
- Publication number
- CN114911806A CN114911806A CN202110185125.6A CN202110185125A CN114911806A CN 114911806 A CN114911806 A CN 114911806A CN 202110185125 A CN202110185125 A CN 202110185125A CN 114911806 A CN114911806 A CN 114911806A
- Authority
- CN
- China
- Prior art keywords
- key
- value
- storage address
- target
- storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000013507 mapping Methods 0.000 claims abstract description 110
- 238000012986 modification Methods 0.000 claims abstract description 46
- 230000004048 modification Effects 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 15
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000002085 persistent effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2453—Query optimisation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种更新数据的方法和相关装置,该方法包括:在需要对键值中的二级键更新的情况下,确定目标捷径,其中该目标捷径用于指示初始存储地址到最新存储地址的映射关系。在键值修改过程中,没有被修改过的二级键的键值对中的存储地址仍为初始存储地址。这样,在利用没有被修改过的二级键作为关键词查找数据时,可以直接利用该目标捷径确定修改后的键值的最新地址,从而找到对应的数据。因此,上述技术方案可以加快数据查找速度,提升用户体验。
Description
技术领域
本申请涉及信息技术领域,更具体地,涉及更新数据的方法和相关装置。
背景技术
数据库是结构化信息或数据的有组织的集合,通常以电子方式存储在计算机系统中。数据库大体可以分为两类:关系型数据库和非关系型数据库。
关系型数据库是把复杂的数据结构归结为简单的二元关系。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格分类、合并、连接或选取等运算来实现数据库的管理。关系型数据库采用结构化查询语言(structuredquery language,SQL)对数据库进行查询。
非关系型数据库(not only SQL,NoSQL)是对不同于传统的关系型数据库的数据库的统称。键值(key-value)数据库是一种典型的非关系型数据库。与传统的关系型数据库相比,键值数据库具有更好的扩展性和灵活性。
键值存储本身只提供了键值对的相关操作。如果需要以非键属性进行查询,则需要引入二级索引。然而,现有的二级索引更新过程比较复杂,需要引入额外的操作。
发明内容
本申请提供一种更新数据的方法和相关装置,可以在利用次级键作为关键词的情况下,快速查找到对应的数据。
第一方面,本申请实施例提供一种更新数据的方法,包括:获取键值修改请求,该键值修改请求用于对目标键值中的目标二级键和该目标键值中的值进行修改;将与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,其中该第一键值对包括第一键和第一存储地址,该第一键包括修改前的该目标二级键,该第一键还包括该目标键值中的主键,该第一存储地址为第一值的存储地址,该第一值为该目标键值,该第二键值对包括第二键和第二存储地址,该第二键包括修改后的该目标二级键,该第二键还包括该目标键值中的主键,该第二存储地址为第二值的存储地址,该第二值为修改后的该目标键值;在共享值映射表中建立该第一存储地址到该第二存储地址的第一映射关系;确定对应于该第二存储地址的目标捷径,其中该目标捷径用于指示第三存储地址到该第二存储地址的映射关系,该第三存储地址为该目标键值初次保存时的存储地址,以便于能够使用该目标键值中未修改的二级键和该目标捷径确定该目标键值的最新存储地址,其中该未修改的二级键对应的存储地址为该第三存储地址。
上述技术方案在键值发生两次或两次以上修改的情况下,建立对应于该键值的目标捷径。该目标捷径记录有初始存储地址到最新存储地址的对应关系。在键值修改过程中,没有被修改过的二级键的键值对中的存储地址仍为初始存储地址。这样,在利用没有被修改过的二级键作为关键词查找数据时,可以直接利用该目标捷径确定修改后的键值的最新地址,从而找到对应的数据。因此,上述技术方案可以加快数据查找速度,提升用户体验。
结合第一方面,在第一方面的一种可能的实现方式中,该共享值映射表保存在保电内存中,该捷径表保存在非保电内存中。
保电内存中配备有电容或者电池,可以防止计算机设备突然掉电而丢失暂存的数据,从而保证系统的崩溃一致性。换句话说,即使计算机设备突然掉电,用于保存键值修改记录的共享值映射表可以不被删除。这样,当计算机设备恢复时,可以利用共享值映射表重新确定捷径。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:确定该保电内存的剩余存储空间大小是否小于预设阈值;若该保电内存的剩余存储空间大小小于该预设阈值,则将M个二级索引中的第m个二级索引中的第三键值对修改为第四键值对,删除该第一映射关系和该目标捷径,将该共享值映射表中的该第三存储地址到该第一存储地址的映射关系修改为该第三存储地址到该第二存储地址的映射关系,其中该M个二级索引与M个第二键一一对应,该M个第二键为该目标键值中未修改的二级键,M为大于或等于1的正整数,m=1,…,M,该第三键值对包括第三键和该第一存储地址,该第三键包括该M个二级键中的第m个二级键,该第三键还包括该目标键值中的主键,该第四键值对包括该第三键和该第二存储地址。
保电内存价格较高,并且保电内存的价格高低与存储空间大小成正比。利用上述技术方案可以使用存储空间较小的保电内存,从而达到节省成本的目的。
结合第一方面,在第一方面的一种可能的实现方式中,在该将与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对之前,该方法还包括:在写前日志记录对该目标二级键的操作,该对该目标二级键的操作包括:将与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,建立该第一映射关系,其中该写前日志保存在该保电内存中;在该写前日志记录修改后的该目标键值。
利用上述技术方案,如果在二级索引修改完成之前,计算机设备突然断电,那么可以利用保电内存中保存的写前日志继续完成二级索引的修改操作,从而提升了系统的崩溃一致性。
结合第一方面,在第一方面的一种可能的实现方式中,该第一值保存在共享值日志中,该第一存储地址为该第一值在该共享值日志中的存储地址;该第二值保存在该共享值存储日志中,该第二存储地址为该第二值在该共享存储日志中的存储地址;该方法还包括:在主索引中新建第四键值对,该第四键值对包括主键和该第二存储地址。
第二方面,本申请实施例提供一种计算机设备,该计算设备包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。
第三方面,本申请实施例提供一种计算机设备,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如第一方面或第一方面的任一种可能的实现方式所述的方法。
第四方面,本申请实施例提供一种芯片系统,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如第一方面或第一方面的任一种可能的实现方式所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中的方法。
第六方面,本申请实施例提供一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面的方法设计中任意一种可能的实现方式中的方法。
附图说明
图1是本申请实施例提供的一种实施环境的架构图。
图2是本申请实施例的存储系统的示意图。
图3是插入新键值{p5,s5,u5,m5}的更新示意图。
图4是键值{p1,s1,u1,m1}的更新示意图。
图5是键值{p1,s3,u1,m1}的更新示意图。
图6是根据本申请实施例提供的一种更新数据的方法的示意性流程图。
图7是根据本申请实施例提供的一种计算机设备的示意性结构框图。
图8是根据本申请实施例提供的一种计算机设备的示意性结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了帮助本领域技术人员更好地理解本申请的技术方案,首先对本申请技术方案涉及到的一些相关技术进行介绍。
结构化合并树(log structured merge tree,LSM tree)是一种常见的用于键值存储的数据结构。LSM tree各层由内部有序的数据表构成,除最顶层以外,各层以内的数据表之间有序且无重叠数据。这种数据结构将更新以日志的形式追加写到树中,并将上层的较新的数据通过压缩机制合并到下层。这种结构使用顺序写的模式,有利于发挥存储设备的带宽。常见的基于LSM tree的数据库包括AsterixDB,Cassandra,Spanner,DualDB等。
B+树(B+tree)是另一种常见的用于键值存储的数据结构。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。B+树是B树(B tree)的一种变形树。与B树相比,B+树的磁盘读写代价更低、查询效率更加稳定。MongoDB是一种常见的基于B+树的数据库。
目前,一些主流的数据库已经可以支持二级索引。例如,表1是一种主索引和二级索引的示意。
表1
主索引 | 二级索引 | 二级索引 |
p1→s1,u1,m1 | s1+p1→“” | u1+p1→“” |
p2→s2,u2,m2 | s2+p2→“” | u2+p2→“” |
p3→s1,u2,m3 | s1+p3→“” | u2+p3→“” |
如表1所示的p,s,u和m中的p可以称为主键,s和u是二级键,m是值中的其他字段。如表1所示,主索引记录了键值对。例如,p1→s1,u1,m1是一个键值对,p1为键(key),s1,u1,m1为对应于键p1的值(value)。
如表1所示的二级索引中的键是主键和二级键组成的组合键。如表1所示的二级索引记录的是主键和二级键的对应关系,因此对应于组合键的值可以为空。例如,s1+p1→“”记录了二级键s1和主键p1存在对应关系。又如,u1+p1→“”记录了二级键u1和主键p1存在对应关系。
如表1所示,如果希望以p1作为关键词进行查找,那么可以根据主索引中的键值对{p1→s1,u1,m1}查询到p1对应的值为s1,u1,m1。
还如表1所示,如果希望以s1作为关键词进行查找,那么可以根据二级索引中的键值对s1+p1→“”和键值对s1+p3→“”确定关键词s1与主键p1存在对应关系,且关键词s1与主键p2存在对应关系。在此情况下,可以以p1和p3作为关键词,从主索引中找到对应的值。如表1所示,可以根据主索引中的键值对{p1→s1,u1,m1}查询到p1对应的值为s1,u1,m1,根据主索引中的键值对{p3→s1,u2,m3}确定p3对应的值为s1,u2,m3。在此情况下,关键词s1的查询结果可以为s1,u1,m1和s1,u2,m3。
如果希望将如表1所示的键值对{p1→s1,u1,m1}更新为{p1→s3,u1,m1},那么可以通过以下两种方式。
方式1,先用p1从主索引中确认需要删除的组合键为s1+p1;然后从二级索引中删除键值对{s1+p1→“”},插入新的键值对{s3+p1→“”}。此外,还需要将主索引中的键值对{p1→s1,u1,m1}更新为{p1→s3,u1,m1}。
表2是采用方式1得到的更新结果的示意。
表2
主索引 | 二级索引 | 二级索引 |
p1→s3,u1,m1 | s3+p1→“” | u1+p1→“” |
p2→s2,u2,m2 | s2+p2→“” | u2+p2→“” |
p3→s1,u2,m3 | s1+p3→“” | u2+p3→“” |
方式2,不删除旧的键值对和组合键,直接插入新的键值对和组合键。在查询的时候进行数据验证。例如,例如,当查询s1时,可能会得到由p1索引到旧记录{p1→s1,u1,m1}。在验证时,可以发现p1对应的最新的键值对为{p1→s3,u1,m1},因此可以放弃不同,从而放弃查询到的s1,u1,m1。
表3是采用方式2得到的更新结果的示意。
表3
主索引 | 二级索引 | 二级索引 |
p1→s3,u1,m1 | s3+p1→“” | |
p1→s1,u1,m1 | s1+p1→“” | u1+p1→“” |
p2→s2,u2,m2 | s2+p2→“” | u2+p2→“” |
p3→s1,u2,m3 | s1+p3→“” | u2+p3→“” |
对于上述方式1,在数据更新阶段需要引入额外的查询命令确定需要删除的组合键,因而引入了额外的查询开销。而上述方式2虽然没有在数据更新阶段引入额外的查询命令,但是在查询阶段需要额外的数据验证步骤,增加了验证开销。此外,方式2随着更新的数据的增加,索引内的旧记录也随之增加,对于同一个主键或者二级键的旧记录越多,那么额外的验证开销就越大。
图1是本申请实施例提供的一种实施环境的架构图。下述实施例中的更新数据的方法可以应用于该实施环境架构中。如图1所示,该实施环境架构中可以包括服务器10、终端20以及数据库。其中,服务器可以提供为下述实施例中的计算机设备。服务器可以是提供存储系统的平台。服务器可以执行下述方法实施例更新数据的方法。终端可以是移动终端或个人电脑(personal computer,PC)。终端可以安装有服务器对应的客户端,终端可以通过该客户端,修改保存在服务器中的键值。例如,终端可以对键值中的键(例如主键,和/或,部分或全部二级键)和/或值进行修改。终端也可以利用键查询对应的数据。
图2是本申请实施例的存储系统的示意图。如图2所示的存储系统100可以部署在如图1所示的服务器102中。如图2所示,存储系统100包括主索引101,二级索引111,二级索引112,二级索引113,共享值映射表121,共享值日志122和捷径表123。
主索引101中保存有多个键值对。该多个键值对中每个键值对中的键是一组键值中的主键,每个键值对中的值是主键对应的键值的存储地址。假设存在两个键值,分别为{p1,s1,u1,m1}和{p2,s2,u2,m2}。为了便于描述,可以称{p1,s1,u1,m1}为键值1,{p2,s2,u2,m2}为键值2。p可以表示主键。s,u和m都可以作为二级键。对于键值1和键值2,主索引101中的键值对可以如表4所示。
表4
主索引101 |
p1→v1 |
p2→v2 |
表4中保存有两个键值对,分别为{p1→v1}和{p2→v2}。键值对{p1→v1}中的键p1为键值1中的主键p1,值v1是键值1的存储地址。键值对{p2→v2}中的键p2为键值2中的主键p2,值v2是键值2的存储地址。存储地址v1中保存有{p1,s1,u1,m1},存储地址v2中保存有{p2,s2,u2,m2}。
二级索引111中保存有多个键值对。该多个键值对中的每个键值对中的键是一个组合键,该组合键由二级键和主键组成。该多个键值对中的每个键值对中的值是组合键对应的键值的的存储地址。还以上述键值1和键值2为例。表5是二级索引111的示意。
表5
二级索引111 |
s1+p1→v1 |
s2+p2→v2 |
表5中保存有两个键值对,分别为{s1+p1→v1}和{s2+p2→v2}。键值对{s1+p1→v1}中的键s1+p1是由二级键s1和主键p1组成的一个组合键,值v1是键值1的存储地址。键值对{s2+p2→v2}中的键s2+p2是由二级键s2和主键p2组成的一个组合键,值v2是键值2的存储地址。
如上所述,键值1和键值2中包括两个二级键,s和u。因此,除了如表5所示的二级索引111外,还可以包括如表6所示的二级索引112和如表7所示的二级索引113。
表6
二级索引112 |
u1+p1→v1 |
u2+p2→v2 |
表7
二级索引113 |
m1+p1→v1 |
m2+p2→v2 |
如表6所示的二级索引112和如表7所示的二级索引113与如表5所示的二级索引111类似,每个二级索引中都包括多个键值对,键值对中的键是由二级键和主键组成的一个组合键,值是对应的键值的存储地址。
键值存储在共享值日志122中。
在一些实施例中,共享值日志可以仅包括一个文件,所有的键值都可以保存在该文件中。在此情况下,键值的存储地址可以包括起始偏移值和值的大小。
在另一些实施例中,共享值日志可以包括多个文件。不同的键值可能保存在不同的文件中。在此情况下,键值的存储地址除了包括起始偏移值和值的大小以外,还需要包括文件名或者文件序号。这样,在查询键值的时候可以先根据文件名或文件序号查找到对应的文件,然后再根据起始偏移值和值的大小确定对应的键值。
表8是地址和键值的对应关系的示意。
表8
地址 | 键值 |
v1 | p1,s1,u1,m1 |
v2 | p2,s2,u2,m2 |
如果没有修改已经保存在主索引或者二级索引中的键值,那么共享值映射表121的内容为空。例如,如果插入一个新的键值{p5,s5,u5,m5},那么可以在表4至表8的基础上增加相应的增加键值{p5,s5,u5,m5}对应的键值对,以及存储地址和键值的对应关系。假设键值{p5,s5,u5,m5}的存储地址为v5。那么图3示出了加入新键值后表4至表8中的各个表以及共享值映射表121的变化。如图3所示,插入键值{p5,s5,u5,m5}前后共享值映射表121均是空的,即没有任何内容。
如果修改了已经保存在主索引或二级索引中的键值,那么共享值映射表121会相应的更新。
例如,假设在插入键值{p5,s5,u5,m5}后将键值{p1,s1,u1,m1}修改为{p1,s3,u1,m1},并假设键值{p1,s3,u1,m1}的存储地址为v3。在此情况下,可以在主索引中插入新的键值对p1→v3,删除二级索引111中的键值对s1+p1→v1并在二级索引111中插入新的键值对s3+p1→v3。上述修改操作并未修改二级键u1和m1,因此可以不需要对二级索引112和二级索引113进行修改。但是需要在共享值映射表121中增加一个映射关系,该映射关系记录了v1到v3的映射,其中v1可以称为原始值,v3可以称为当前值。
图4示出了将键值{p1,s1,u1,m1}修改为{p1,s3,u1,m1}后各个表的变化。如图4所示,修改前的共享值映射表121为空,修改后的共享值映射表增加了v1→v3的映射关系。假设以二级键s3作为关键词进行检索,那么可以根据二级索引111中的键值对s3+p1→v3查询到存储地址v3,然后根据存储地址v3从共享值日志中找到与关键词s3对应的键值。如果以二级键u1作为关键词进行检索,那么可以根据二级索引112中的键值对u1+p1→v1查询到存储地址v1,然后根据共享值映射表121中的映射关系v1→v3确定与关键词u1对应的键值的存储地址为v3,最后根据存储地址v3从共享值日志中找到与关键词u1对应的键值。
假设继续将键值{p1,s3,u1,m1}修改为{p1,s3,u2,m1},并假设键值{p1,s3,u1,m1}的存储地址为v4。在此情况下,可以在主索引中插入新的键值对p1→v4,删除二级索引112中的键值对u1+p1→v1并在二级索引112中插入新的键值对u2+p1→v4。上述修改操作并未修改二级键s3和二级键m1,因此可以不需要对二级索引111和二级索引113进行修改。此外,在共享值映射表121中新增了新的映射关系v3→v4,在捷径表123中增加映射关系v1→v4。
图5示出了将键值{p1,s3,u1,m1}修改为{p1,s3,u2,m1}后各个表的变化。如图5所示,修改前的共享值映射表121的映射关系为v1→v3,修改后的共享值映射表的映射关系增加了新的映射关系v3→v4。此外,前的捷径表123为空,修改后捷径表123中新增了映射关系v1→v4。捷径表中的映射关系也可以称为捷径(shortcut)。
捷径表123中的捷径反映的是键值的初始存储位置和最新存储位置的对应关系。初始存储位置是键值初次保存的存储位置,最新存储位置是键值经过修改后的最新的存储位置。如上所述,键值{p1,s1,u1,m1}的初始存储位置为v1,经过两次修改后最新的存储位置为v4。因此,如图5所示,捷径表123中的捷径反映了v1→v4的映射关系。
在一些实施例中,捷径表123中的捷径可以是在键值第二次被修改后才建立。如图4和图5所示,键值{p1,s1,u1,m1}修改为{p1,s3,u1,m1}时,捷径表123中并未建立v1→v4的捷径。因为键值{p1,s1,u1,m1}只被修改过一次,可以直接从共享值映射表121中的映射查找到键值的初始存储位置到最新存储位置的对应关系。在键值{p1,s3,u1,m1}被修改为{p1,s3,u2,m1},在捷径表123中新建捷径v1→v4。此时,共享值映射表121中没有办法查询到初始存储位置到最新存储位置的对应关系。因此,利用捷径表123中的捷径可以快速查询到初始存储位置到最新存储位置的对应关系。
在另一些实施例中,即使第一次修改键值的存储,也可以在捷径表123中建立相应的捷径。当该键值的存储地址再次被修改后,更新捷径表123中对应的映射关系。还以键值{p1,s1,u1,m1}被依次修改为{p1,s3,u1,m1}和{p1,s3,u2,m1}为例,在键值{p1,s1,u1,m1}修改为{p1,s3,u1,m1}时,捷径表123中建立v1→v3的捷径;在键值{p1,s3,u1,m1}被修改为{p1,s3,u2,m1}时,在捷径表123中捷径v1→v3被修改为捷径v1→v3。
在进行数据查询时,可以先确定捷径表123中有没有匹配的捷径,如果有匹配的捷径,再利用捷径映射的存储位置,搜索共享值映射表,减少映射表的搜索路径;如果捷径中没有匹配的项,则只能利用二级索引中查找到的存储位置去搜索共享值映射表。
以图5为例,假设以二级键m1作为关键词进行检索,那么可以根据二级索引113中的键值对m1+p1→v1查询到存储地址v1,由于捷径表123中有与存储地址v1匹配的捷径v1→v4,那么可以直接根据捷径v1→v4确定与关键词m1对应的键值的存储地址为v4,然后再次搜索共享值映射表,发现v4没有更新的映射,即v4是最新的存储位置,最后根据存储地址v4从共享值日志中找到与关键词m1对应的键值。以二级键s3作为关键词进行检索,根据二级索引111中的键值对s3+p1→v3查询到存储地址v3,那么可以确定捷径表123中没有对应于存储地址v3的捷径。此时,从共享值映射表121中查询到对应于存储地址v3的映射关系v3→v4,根据映射关系v3→v4确定存储地址v4,最后根据存储地址v4从共享值日志中找到与关键词s3对应的键值。
假设{p1,s3,u2,m1}被进一步修改为存储地址为v6的键值{p1,s3,u3,m1},共享值映射表中会增加v4→v6的映射。此时用m1为二级键进行查询,首先从二级索引113中的键值对m1+p1→v1获取到存储位置v1,再从捷径表中获取到捷径v1→v4,然后利用v4搜索共享值映射表,获取到最新的存储位置v6,从而读取最新的键值,并更新捷径表,将v1→v4更新为v1→v6。在此过程中,使用捷径,缩短了共享值映射表的搜索路径,将搜索路径从v1→v3,v3→v4,v4→v6变为v4→v6。
上述实施例中在修改了键值后,主索引中直接插入新的键值对,旧的键值对没有被删除。这样,在用主键进行查找的时候可以先查到最新插入的键值对,利用最新插入的键值对确定对应的键值的存储地址,然后从该存储地址中读取对应的键值。
在另一些实施例中,可以在主索引中插入新的键值对后,将无效的键值对删除。例如,将键值{p1,s1,u1,m1}修改为{p1,s3,u1,m1}后,主索引可以删除键值对p1→v1。
在一些实施例中,共享值映射表121可以保存在保电内存中。保电内存(例如非易失性随机访问存储器(non-volatile random access memory,NVRAM)、非易失性双列直插式内存模块(non-volatile dual in-line memory module,NVDIMM)等)中配备有电容或者电池,可以防止计算机设备突然掉电而丢失暂存的数据,从而保证系统的崩溃一致性。
在一些实施例中,如果保存共享值映射表121的内存(例如保电内存)的剩余存储空间大小小于预设阈值,那么可以直接将二级索引中的值修改为最新的存储地址,并删除共享值映射表121中的映射关系。
例如,将键值{p1,s3,u1,m1}修改为{p1,s3,u2,m1}后,确定用于保存共享值映射表121的保电内存的剩余存储空间大小小于预设阈值。在此情况下,可以将二级索引111中的键值对s3+p1→v3修改为s3+p1→v4,然后删除共享值映射表121中的映射关系v3→v4,将共享值映射表121中的映射关系v1→v3修改为v1→v4,删除捷径表123中的捷径v1→v4。这样,可以释放保电内存的存储空间,并且不会影响后续的数据查询。
捷径表123可以保存在非保电的内存中。在一些实施例中,可以为用于保存捷径表123的内存空间设置一个存储空间阈值,如果该内存空间的剩余存储空间大小小于该预设阈值,那么可以删除该内存空间保存的部分捷径。
在一些实施例中,存储系统100中还可以包括写前日志,写前日志记录有键值修改时的更新操作。例如,可以包括对主索引、二级索引和共享值映射表的更新操作。写前日志还记录有最新的键值。
在进行键值更新操作时,首先在写前日志文件中分配新的空间,然后将所有的操作(包括对主索引和二级索引,以及共享日映射表的操作)以及最新的键值形成日志(redolog),并记录到写前日志中,然后再将最新的键值写入缓存中,缓存中的值在后台刷回到共享值日志122。如果在写日志时发现用于保存写前日志的空间不够,可以先将缓存中的所有数据同步到共享值日志中,然后清空写前日志,即将写前日志的尾指针重置为头部,以释放写前日志,然后再将日志记录到写前日志,并进行更新操作。
还以将键值{p1,s3,u1,m1}修改为{p1,s3,u2,m1}为例。在修改主索引、二级索引和共享值映射表之前,可以在写前日志记录需要对主索引、二级索引和共享值映射表的操作,即:在主索引中插入新的键值对p1→v4,删除二级索引112中的键值对u1+p1→v1并在二级索引112中插入新的键值对u2+p1→v4,删除二级索引111中的键值对s3+p1→v3并在二级索引111中插入新的键值对s3+p1→v4,将共享值映射表121中的映射关系v1→v3中的当前值v3更新为v4。
该写前日志也可以保存在保电内存中。这样,如果索引和/或共享值映射表更新尚未完成但是系统发生掉电(例如只更新了主索引,没有更新二级索引),那么可以利用写前日志中保存的内容继续对尚未更新的内容进行更新。
图6是根据本申请实施例提供的一种更新数据的方法的示意性流程图。图6所示的方法可以由计算机设备或者计算机设备中的部件(例如芯片或片上系统(system on chip,SOC)等实现)。该计算机设备可以是服务器也可以是其他能够存储数据库的计算机设备。
601,获取键值修改请求,该键值修改请求用于对目标键值中的目标二级键和该目标键值中的值进行修改。
602,将与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,其中该第一键值对包括第一键和第一存储地址,该第一键包括修改前的该目标二级键,该第一键还包括该目标键值中的主键,该第一存储地址为第一值的存储地址,该第一值为该目标键值,该第二键值对包括第二键和第二存储地址,该第二键包括修改后的该目标二级键,该第二键还包括该目标键值中的主键,该第二存储地址为第二值的存储地址,该第二值为修改后的该目标键值。
603,在共享值映射表中建立该第一存储地址到该第二存储地址的第一映射关系。
604,确定对应于该第二存储地址的目标捷径,其中该目标捷径用于指示第三存储地址到该第二存储地址的映射关系,该第三存储地址为该目标键值初次保存时的存储地址,以便于能够使用该目标键值中未修改的二级键和该目标捷径确定该目标键值的最新存储地址,其中该未修改的二级键对应的存储地址为该第三存储地址。
在一些实施例中,键值修改请求可以请求修改目标键值中的一个二级键。在此情况下,该键值修改请求所请求修改的二级键为步骤501中的目标二级键。
例如,键值修改请求用于指示将键值{p1,s3,u1,m1}修改为{p1,s3,u2,m1}。换句话说,该键值修改请求修改了二级键u1以及键值{p1,s3,u1,m1}的值。键值{p1,s3,u1,m1}是目标键值,键值{p1,s3,u2,m1}是修改后的目标键值。该键值修改请求修改的目标二级键为u1。根据该键值修改请求,二级索引112中的键值对u1+p1→v1被删除,并在二级索引112中新建了键值对u2+p1→v4,在共享值映射表121中新增了新的映射关系v3→v4,在捷径表123中增加映射关系v1→v4。换句话说,键值对u1+p1→v1是第一键值对,键值对u1+p1→v4是第二键值对,映射关系v3→v4是第一映射关系。目标捷径为映射关系v1→v4。
在另一些实施例中,键值修改请求可以请求修改多个二级键。例如,键值修改请求可以用于请求对目标键值中的N个二级键进行修改,N为大于或等于1的正整数。可以理解,N需要小于或等于该目标键值包括的总二级键数目。在此情况下,该目标二级键可以是该N个二级键中的任一个。该N个二级键与N个二级索引一一对应。
可选的,在一些实施例中,该共享值映射表保存在保电内存中,该捷径表保存在非保电内存中。
可选的,在一些实施例中,该方法还包括:确定该保电内存的剩余存储空间大小是否小于预设阈值;若该保电内存的剩余存储空间大小小于该预设阈值,则将M个二级索引中的第m个二级索引中的第三键值对修改为第四键值对,删除该第一映射关系和该目标捷径,将该共享值映射表中的该第三存储地址到该第一存储地址的映射关系修改为该第三存储地址到该第二存储地址的映射关系,其中该M个二级索引与M个第二键一一对应,该M个第二键为该目标键值中未修改的二级键,M为大于或等于1的正整数,m=1,…,M,该第三键值对包括第三键和该第一存储地址,该第三键包括该M个二级键中的第m个二级键,该第三键还包括该目标键值中的主键,该第四键值对包括该第三键和该第二存储地址。
例如,根据键值修改请求将键值{p1,s3,u1,m1}修改为{p1,s3,u2,m1}后,确定保电内存的剩余存储空间大小小于预设阈值。在此情况下,可以将二级索引111中的键值对s3+p1→v3修改为s3+p1→v4,然后删除共享值映射表121中的映射关系v3→v4,将共享值映射表121中的映射关系v1→v3修改为v1→v4,删除捷径表123中的捷径v1→v4。
可选的,在一些实施例中,在该将与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对之前,该方法还包括:在写前日志记录对该目标二级键的操作,该对该目标二级键的操作包括:将与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,建立该第一映射关系,其中该写前日志保存在该保电内存中;在该写前日志记录修改后的该目标键值。
可选的,在一些实施例中,该第一值保存在共享值日志中,该第一存储地址为该第一值在该共享值日志中的存储地址;该第二值保存在该共享值存储日志中,该第二存储地址为该第二值在该共享存储日志中的存储地址;该方法还包括:在主索引中新建第四键值对,该第四键值对包括主键和该第二存储地址。
图7是根据本申请实施例提供的一种计算机设备的示意性结构框图。如图7所示的计算机设备700可以包括获取单元701,处理单元702,第一存储单元703,第二存储单元704和第三存储单元705。
获取单元701,用于获取键值修改请求,该键值修改请求用于对目标键值中的目标二级键和该目标键值中的值进行修改。
处理单元702,用于将第一存储单元703保存的与该目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,其中该第一键值对包括第一键和第一存储地址,该第一键包括修改前的该目标二级键,该第一键还包括该目标键值中的主键,该第一存储地址为第一值的存储地址,该第一值为该目标键值,该第二键值对包括第二键和第二存储地址,该第二键包括修改后的该目标二级键,该第二键还包括该目标键值中的主键,该第二存储地址为第二值的存储地址,该第二值为修改后的该目标键值。
处理单元702,还用于在第二存储单元704保存的共享值映射表中建立该第一存储地址到该第二存储地址的第一映射关系。
处理单元705,还用于在第三存储单元705建立对应于该第二存储地址的目标捷径,其中该目标捷径用于指示第三存储地址到该第二存储地址的映射关系,该第三存储地址为该目标键值初次保存时的存储地址,以便于能够使用所述目标键值中未修改的二级键和所述目标捷径确定所述目标键值的最新存储地址,其中所述未修改的二级键对应的存储地址为所述第三存储地址。
获取单元701可以由接收器或者输入/输出接口实现,处理单元702可以由处理器或逻辑电路实现。不同的存储单元可以由不同的存储装置实现。例如,第二存储单元可以由保电存储设备实现,例如保电内存。第三存储单元可以由非保电的存储设备实现,例如非保电的内存。第一存储单元可以由掉电可保存的存储设备实现,例如硬盘等。
例如,非保电内存可以包括静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)或直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。保电内存可以包括NVRAM或NVDIMM。掉电可保存的存储设备可以包括固态硬盘(solidstate disk,SSD)、机械硬盘或者混合硬盘。
图7所示的计算机设备的各个单元的具体功能和有益效果可以参见上述实施例,为了简洁,在此就不再赘述。
图8是根据本申请实施例提供的一种计算机设备的示意性结构框图。如图8所示的计算机设备800可以执行如图6所示的方法。如图8所示,计算机设备800包括总线801、处理器802、存储器803和通信模块804。处理器802、存储器803和通信模块804之间通过总线801通信。其中,处理器802可以是编程门阵列(field programmable gate array,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signalprocessor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)、其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片。存储器803中存储有可执行代码,处理器802读取存储器803中的该可执行代码以上述实施例所示的方法。存储器803中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为50AndroidTM,LinuxTM,iOSTM等。
通信模块804可以用于接收键值修改请求。通信模块804可以由接收器和发送器实现。
本申请实施例还提供一种芯片系统,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行上述方法。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器包括保电内存、非保电内存和掉电可保存的存储设备。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例所述的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述实施例所述的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种更新数据的方法,其特征在于,包括:
获取键值修改请求,所述键值修改请求用于对目标键值中的目标二级键和所述目标键值中的值进行修改;
将与所述目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,其中所述第一键值对包括第一键和第一存储地址,所述第一键包括修改前的所述目标二级键,所述第一键还包括所述目标键值中的主键,所述第一存储地址为第一值的存储地址,所述第一值为所述目标键值,所述第二键值对包括第二键和第二存储地址,所述第二键包括修改后的所述目标二级键,所述第二键还包括所述目标键值中的主键,所述第二存储地址为第二值的存储地址,所述第二值为修改后的所述目标键值;
在共享值映射表中建立所述第一存储地址到所述第二存储地址的第一映射关系;
确定对应于所述第二存储地址的目标捷径,其中所述目标捷径用于指示第三存储地址到所述第二存储地址的映射关系,所述第三存储地址为所述目标键值初次保存时的存储地址,以便于能够使用所述目标键值中未修改的二级键和所述目标捷径确定所述目标键值的最新存储地址,其中所述未修改的二级键对应的存储地址为所述第三存储地址。
2.如权利要求1所述的方法,其特征在于,所述共享值映射表保存在保电内存中,所述捷径表保存在非保电内存中。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:确定所述保电内存的剩余存储空间大小是否小于预设阈值;
若所述保电内存的剩余存储空间大小小于所述预设阈值,则将M个二级索引中的第m个二级索引中的第三键值对修改为第四键值对,删除所述第一映射关系和所述目标捷径,将所述共享值映射表中的所述第三存储地址到所述第一存储地址的映射关系修改为所述第三存储地址到所述第二存储地址的映射关系,其中
所述M个二级索引与M个第二键一一对应,所述M个第二键为所述目标键值中未修改的二级键,M为大于或等于1的正整数,m=1,…,M,
所述第三键值对包括第三键和所述第一存储地址,所述第三键包括所述M个二级键中的第m个二级键,所述第三键还包括所述目标键值中的主键,
所述第四键值对包括所述第三键和所述第二存储地址。
4.如权利要求2或3所述的方法,其特征在于,在所述将与所述目标二级键对应的目标二级索引中的第一键值对修改为第二键值对之前,所述方法还包括:
在写前日志记录对所述目标二级键的操作,所述对所述目标二级键的操作包括:将与所述目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,建立所述第一映射关系,其中所述写前日志保存在所述保电内存中;
在所述写前日志记录修改后的所述目标键值。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述第一值保存在共享值日志中,所述第一存储地址为所述第一值在所述共享值日志中的存储地址;
所述第二值保存在所述共享值存储日志中,所述第二存储地址为所述第二值在所述共享存储日志中的存储地址;
所述方法还包括:在主索引中新建第四键值对,所述第四键值对包括主键和所述第二存储地址。
6.一种计算机设备,其特征在于,包括:
获取单元,用于获取键值修改请求,所述键值修改请求用于对目标键值中的目标二级键和所述目标键值中的值进行修改;
处理单元,用于将第一存储单元保存的与所述目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,其中所述第一键值对包括第一键和第一存储地址,所述第一键包括修改前的所述目标二级键,所述第一键还包括所述目标键值中的主键,所述第一存储地址为第一值的存储地址,所述第一值为所述目标键值,所述第二键值对包括第二键和第二存储地址,所述第二键包括修改后的所述目标二级键,所述第二键还包括所述目标键值中的主键,所述第二存储地址为第二值的存储地址,所述第二值为修改后的所述目标键值;
所述处理单元,还用于在第二存储单元保存的共享值映射表中建立所述第一存储地址到所述第二存储地址的第一映射关系;
所述处理单元,还用于确定对应于所述第二存储地址的目标捷径,其中所述目标捷径用于指示第三存储地址到所述第二存储地址的映射关系,所述第三存储地址为所述目标键值初次保存时的存储地址,以便于能够使用所述目标键值中未修改的二级键和所述目标捷径确定所述目标键值的最新存储地址,其中所述未修改的二级键对应的存储地址为所述第三存储地址。
7.如权利要求6所述的计算机设备,其特征在于,所述第二存储单元为保电存储单元,所述第三存储单元为非保电存储单元。
8.如权利要求7所述的计算机设备,其特征在于,所述方法还包括:所述处理单元,还用于确定所述第二存储单元的剩余存储空间大小是否小于预设阈值;
若所述第二存储单元的剩余存储空间大小小于所述预设阈值,则将M个二级索引中的第m个二级索引中的第三键值对修改为第四键值对,删除所述第一映射关系和所述目标捷径,将所述共享值映射表中的所述第三存储地址到所述第一存储地址的映射关系修改为所述第三存储地址到所述第二存储地址的映射关系,其中
所述M个二级索引与M个第二键一一对应,所述M个第二键为所述目标键值中未修改的二级键,M为大于或等于1的正整数,m=1,…,M,
所述第三键值对包括第三键和所述第一存储地址,所述第三键包括所述M个二级键中的第m个二级键,所述第三键还包括所述目标键值中的主键,
所述第四键值对包括所述第三键和所述第二存储地址。
9.如权利要求7或8所述的计算机设备,其特征在于,所述处理单元,还用于在所述将与所述目标二级键对应的目标二级索引中的第一键值对修改为第二键值对之前,在写前日志记录对所述目标二级键的操作,所述对所述目标二级键的操作包括:将与所述目标二级键对应的目标二级索引中的第一键值对修改为第二键值对,建立所述第一映射关系,其中所述写前日志保存在所述第二存储单元中;
在所述写前日志记录修改后的所述目标键值。
10.如权利要求6至9中任一项所述的计算机设备,其特征在于,所述第一值保存在共享值日志中,所述第一存储地址为所述第一值在所述共享值日志中的存储地址;
所述第二值保存在所述共享值存储日志中,所述第二存储地址为所述第二值在所述共享存储日志中的存储地址;
所述处理单元,还用于在主索引中新建第四键值对,所述第四键值对包括主键和所述第二存储地址。
11.一种计算机设备,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-5中任一项所述的方法。
12.一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-5中任一项所述的方法。
13.一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110185125.6A CN114911806A (zh) | 2021-02-10 | 2021-02-10 | 更新数据的方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110185125.6A CN114911806A (zh) | 2021-02-10 | 2021-02-10 | 更新数据的方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911806A true CN114911806A (zh) | 2022-08-16 |
Family
ID=82761369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110185125.6A Pending CN114911806A (zh) | 2021-02-10 | 2021-02-10 | 更新数据的方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911806A (zh) |
-
2021
- 2021-02-10 CN CN202110185125.6A patent/CN114911806A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579683B2 (en) | Memory system including key-value store | |
US11182356B2 (en) | Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems | |
US11580162B2 (en) | Key value append | |
US9715505B1 (en) | Method and system for maintaining persistent live segment records for garbage collection | |
US9183129B2 (en) | Method and system for managing large write-once tables in shadow page databases | |
US10733045B2 (en) | Online repair of metadata for structured data including file systems | |
CN108021717B (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
US20010051954A1 (en) | Data updating apparatus that performs quick restoration processing | |
CN105556520A (zh) | 在存储器中镜像盘中的数据以提高查询性能 | |
US10691666B1 (en) | Providing strong consistency for object storage | |
US11221999B2 (en) | Database key compression | |
CN110168532B (zh) | 数据更新方法和存储装置 | |
CN104572920A (zh) | 一种数据整理方法和装置 | |
CN113535670B (zh) | 一种虚拟化资源镜像存储系统及其实现方法 | |
US10331662B2 (en) | Dynamic column synopsis for analytical databases | |
Lv et al. | Log-compact R-tree: an efficient spatial index for SSD | |
US20230252012A1 (en) | Method for indexing data | |
CN112416879B (zh) | 一种基于ntfs文件系统的块级数据去重方法 | |
JP2017021857A (ja) | メモリシステムのローカルコントローラ | |
US9400817B2 (en) | In-place index repair | |
CN116048396B (zh) | 基于日志结构化合并树的数据存储装置和存储控制方法 | |
US11481372B1 (en) | Systems and methods for indexing multi-versioned data | |
CN114911806A (zh) | 更新数据的方法和相关装置 | |
US11914587B2 (en) | Systems and methods for key-based indexing in storage devices | |
CN115827653B (zh) | 一种用于htap和海量数据的纯列式更新方法及装置 |
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 |