CN112740198A - 用于在数据库中提早移除墓碑记录的系统和方法 - Google Patents
用于在数据库中提早移除墓碑记录的系统和方法 Download PDFInfo
- Publication number
- CN112740198A CN112740198A CN201980062443.4A CN201980062443A CN112740198A CN 112740198 A CN112740198 A CN 112740198A CN 201980062443 A CN201980062443 A CN 201980062443A CN 112740198 A CN112740198 A CN 112740198A
- Authority
- CN
- China
- Prior art keywords
- record
- storage system
- records
- initial
- tombstone
- 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 43
- 238000003860 storage Methods 0.000 claims abstract description 111
- 238000012217 deletion Methods 0.000 claims abstract description 10
- 230000037430 deletion Effects 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 20
- 230000000694 effects Effects 0.000 claims description 5
- 230000005055 memory storage Effects 0.000 description 12
- 238000003780 insertion Methods 0.000 description 7
- 230000037431 insertion Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种提早删除墓碑的方法,包括:在所述存储系统中的第一记录中设置初始标志;在所述存储系统中的第二记录中设置删除标志;选择所述存储系统中的要在合并操作中写入所述存储系统的盘区的一个或多个记录的集,所述一个或多个记录中的每一个记录与所述第一键相关联;以及执行所述合并操作,其中如果确定具有初始标志集的所述第一记录是所述集中的最旧记录并且具有删除标志集的所述第二记录是所述集中的最新记录,在所述合并操作期间不将所述第二记录写入所述盘区。
Description
背景技术
数据结构是提供各种方式来与存储在其中的数据交互的数据组织。数据结构可以被设计用于各种目的,例如,用于促进数据的有效搜索(诸如在二叉搜索树中)、用于允许稀疏数据的有效存储(诸如利用链表)、或用于提供可搜索数据的有效存储(诸如利用B树)。
利用键值范例的数据结构接受键值对,并且被配置成对键的查询作出响应。键值数据结构可以包括诸如字典(例如,映射、哈希映射等)这样的结构,其中键被存储在链接(或包含)相应值的列表中。虽然这些结构在存储器中(例如,在不同于存储装置的主存储器或系统状态存储器中)是有用的,但是这些结构在持久存储装置中(例如,盘上)的存储表示可能是低效的。因而,已经引入了一类基于日志的存储结构。一个实施例是日志结构合并树(LSM树)。
LSM树数据库可以由一个或多个盘驻留不可变层加上可变存储器驻留存储器层组成。当从LSM树读取时,读取器可以从所有层读取和合并结果。在索引新的记录时,对应的索引条目被添加到可变存储器驻留层。
LSM树数据库中的事务被存储为给定记录的不可变版本。已经存储在系统上的记录内容的不可变版本可以保持不变,直到所述内容从系统删除(如果有的话)。即,所接收的事务可以创建记录内容的新版本以存储在系统中,而不是更改记录内容。因此,记录的多个版本(例如,具有不同内容的记录)除了事务标识符(例如,其可以包括事务号)之外可以具有相同的键。
附图说明
被包括以提供对所公开的主题的进一步理解的附图被并入本说明书中并且构成本说明书的一部分。附图还展示了所公开的主题的实施方案,并且与具体实施方式一起用于解释所公开的主题的实施方案的原理。并未企图示出比基本理解所公开的主题所必须的结构细节更多的细节以及可以实践所述结构细节的各种方式。
图1示出了根据所公开的主题的实现方式的示例数据库系统。
图2示出了常规墓碑(tombstone)移除过程中的一系列事务。
图3示出了根据所公开的主题的实现方式的墓碑移除过程中的一系列事务。
图4A示出了根据所公开的主题的实现方式的待解决的示例重复集。
图4B示出了根据所公开的主题的实现方式的待解决的另一示例重复集。
图5A示出了根据所公开的主题的实现方式的待解决的另一示例重复集。
图5B示出了根据所公开的主题的实现方式的待解决的另一示例重复集。
图6示出了根据所公开的主题的实现方式的计算机。
图7示出了根据所公开的主题的实现方式的网络配置。
具体实施方式
参考附图描述了公开文本的各个方面或特征,其中,贯穿全文,相同的附图标记用于指示相同的元件。在本说明书中,阐述了许多细节以便提供对公开文本的透彻理解。然而,应理解,可以在没有这些特定细节的情况下或用其他方法、组件、材料等来实践公开文本的某些方面。在其他实例中,以框图形式示出了公知的结构和设备以便于描述公开文本。
所公开的方法和技术可以应用于各种不同的数据库结构。所公开的主题不限于单一类型的架构,但出于说明性目的,以下讨论将描述使用具有键范围多租户的日志结构合并(LSM)树的实现方式。LSM树能够描述具有不可变数据版本的数据改变。键范围多租户允许到服务器的动态绑定,并且可以被用来保持每个租户的数据分离。
通过将“墓碑”插入存储装置中,可以有效地删除基于LSM树的存储装置中的不可变记录。墓碑是指示与键对应的值已被删除的数据标记。例如,墓碑可以通过在记录中设置指定的标志值来实现。墓碑的目的不仅是标记相关联的值的删除,而且还避免(或推迟)了从树中修剪值的可能昂贵的操作。因此,当在时间排序的搜索期间遇到墓碑时,对应的值被理解为要被删除,即使键值对的过期版本驻留在树内的较旧位置处。
由于基于LSM树的存储装置中的物理记录的每个版本是不可变的,所以标记为删除的记录可能在延长数天、数月或数年的任意长的时间段内实际上不被删除。在数据库结构、维护和管理的技术领域内,这种推迟可能是特别成问题的,尤其是在利用具有大量短寿命记录的表(例如,消息队列表)的数据库系统中(其中可能在短时间段内累积大量墓碑)。当大量墓碑累积时,此类表中的键排序的搜索具有挑战性,因为键排序的搜索需要读取给定键范围中的所有墓碑,所以它们都可能被忽略。
所公开的实施方案通过改变参数和实现当满足时允许从数据库结构中提早移除墓碑的规则来解决数据库结构中的墓碑累积的技术问题。提早移除提供了许多改进,诸如,减少整个系统中的过时数据的存储、增加系统的速度、以及增加顺序扫描的速度。
图1示出了可以通过实施所公开的墓碑移除过程来改进的示例系统100。数据的不可变版本被存储在系统100上的“盘区(extent)”中。“盘区”是指典型地在存储介质内连续的存储区域,其可以用于存储数据。如以下将描述的,“盘区引用”可以用作对存储在物理存储装置中的物理盘区的逻辑引用,并且可以用于将对物理存储装置的访问虚拟化到存储装置中的一个或多个“级别”中,作为数据库维护和优化过程的一部分,数据通过所述一个或多个“级别”随时间迁移。
系统100可以在单个计算设备或多个连接的计算设备上运行。例如,系统100可以被实现在膝上型计算机、台式计算机、单个服务器、服务器群集、服务器群、或分布式服务器系统上,或者可以被实现为虚拟计算设备或系统、或物理和虚拟系统的任何合适的组合。为了简单起见,未示出诸如处理器、操作系统和数据库管理系统的其他组件等各个部分。
系统100可以是计算系统和网络基础设施的一部分,或者可以通过其他方式连接到包括更大的服务器网络(其可以包括类似于系统100的其他服务器系统)的单独的计算系统和网络基础设施。在一些实现方式中,系统100可以是图6中所示的计算机600、中央组件700和/或第二计算机800,和/或图7中所示的数据库系统1200a-1200d中的一个或多个。
系统100包括访问层105、虚拟化层115和物理存储层127。访问层105可以包括一个或多个服务器111、112、113,所述服务器为租户提供平台以在主接口上托管应用和数据库并且充当供用户与系统100交互的主接口。访问层105还可以包括数据库存储引擎110,所述数据库存储引擎可以处理跨服务器111、112、113的负载平衡,并且可以接受和处理来自计算设备(例如,图6中所示的计算机600和/或第二计算机800)的对系统100的查询。例如,数据库存储引擎110可以从租户组织接收查询,并且处理所述查询以向虚拟化层115发送命令。数据库存储引擎110可以是服务器系统100上的用于接收对数据库系统的查询并且取得与所接收的查询相关的数据的硬件和软件的任何合适的组合。
虚拟化层115将租户数据虚拟化以向每个租户提供系统服务(诸如,定制数据库),所述系统服务允许租户仅访问租户自己的数据,即使来自多个租户的数据可被存储在系统100中。虚拟化层可以包括盘区引用集120和存储器存储装置125。在一些实现方式中,盘区引用集120和存储器存储装置125可以被存储在图6中所示的中央组件700和/或图7中所示的数据库系统1200a-1200d中。
存储器存储装置125在数据被记录到物理存储层127中的盘区之前存储数据的初始版本。即,诸如新记录的插入或墓碑的插入的数据事务发生在存储器存储装置125级别。随着时间的推移,为了优化存储器存储装置125的使用,转储清除操作(flush operations)将数据从存储器存储装置125级别传输到物理存储级别127中的顶级别盘区130,并且合并操作将数据在盘区130之间传输作为数据库维护操作的一部分。在虚拟化术语中,因此可以说较新的数据驻留在树的“顶部”附近或在数据库的“上级别”处,而较旧的数据驻留在树的“底部”附近或在数据库的“下级别”处。然而,应理解,此术语仅用作概念化的帮助,并且不一定对数据库中数据相对于彼此的实际物理位置具有任何影响。
盘区引用集120可以使用来自租户数据的元数据来定义盘区130在物理存储装置127中的位置(例如,租户数据可以作为盘区130的一部分存储所在的位置)。元数据可以包括例如定义哪些键在盘区中可见的键范围、指示盘区130中的记录/墓碑的事务顺序的事务号(本文中称为“XCN”)以及将盘区与给定租户相关联的租户标识符(ID)数据。盘区引用集120可以使用服务器系统100上的硬件和软件的任何合适组合来实现,其可操作以提供对存储在物理存储装置127中的物理盘区的逻辑引用的功能。
虚拟化层115可以从数据库存储引擎110接收查询,并且通过检查数据的最近版本是否在存储器存储装置125中或者通过引用盘区引用集120检查数据的最近版本是否已经被转储清除到物理存储层127中的盘区130来找到所请求的数据。可以例如从数据库系统的与至少一个租户相关联的授权用户接收查询。如果数据已经被转储清除到物理存储装置127,则虚拟化层115可以基于盘区引用集120中的元数据来定位所请求的数据。即,虚拟化层115可以从盘区130取得由查询所请求的数据,并且可以将数据返回到数据库存储引擎110,所述数据库存储引擎可以将数据提供给例如向数据库系统传输查询的计算设备。
物理存储层127可以包括不可变数据存储设备,并且可以被实现为例如半导体存储器、固态驱动器(SSD)、硬盘驱动器、光学存储器、光学存储设备、或任何其他合适的物理数据存储介质、或其某种组合。物理存储层127可以实现盘区130,所述盘区包含租户数据的不可变版本。物理存储层127还可以包括目录135以管理盘区130的标识和寿命并跟踪数据容量以管理硬件(诸如,可以存储盘区的存储设备和服务器)。
由于物理存储装置127中的数据是不可变的,因此当系统100执行数据事务以修改所存储的数据时,系统100创建数据的新版本并将其插入存储器存储装置125中,而不是更改/删除已经存储的数据的内容。因此,如本文所公开的数据的多个版本(例如,每个版本具有不同的内容)可以具有相同的键。通过使用增量顺序事务标识符(XCN)来标记每个事务,系统100使用数据版本的相同键来实现存储数据的改变。例如,记录的稍后版本将具有比记录的先前版本更高的XCN,并且两个记录将具有相同的键,但是可能具有不同的内容值。
当系统100执行需要读出数据的操作时,系统100可以执行由XCN按时间排序的搜索。在搜索期间,当遇到墓碑时,系统100可以忽视与所述墓碑具有相同键和比所述墓碑低的XCN的任何先前记录。即,即使键值对的一个或多个过期版本驻留在盘区130内的较旧位置处,系统也将好像对应值被删除一样来起作用。
为了描述所公开的实施方案,将所公开的提早墓碑移除过程与常规的墓碑移除过程进行比较是有指导性的。图2示出了从基于LSM树的存储系统逐渐移除墓碑的常规过程。如前所述,通过转储清除和合并操作,系统中的数据(例如,记录和墓碑)通过虚拟级别从存储器存储装置(新数据)“向下”迁移到物理存储装置中的盘区(较旧数据)。在常规的基于LSM树的存储系统中,直到墓碑到达存储最旧记录的物理存储装置的最低级别,才移除墓碑。
图2描绘了存储器存储装置225中的一系列事务以及到物理存储盘区227的后续合并操作。具有键KA和事务号xc10的记录230被插入基表行210中,并且在二级索引中输入具有键KB和递增更高的事务号xc11的对应记录235。当记录230更新(即,在新事务中)时,在基表行210中输入新的记录240。新的记录240与先前的记录230具有相同键KA,而且还具有更新的值(未示出)和下一个递增事务号xc12。所述更新提示插入墓碑237以标记二级索引记录235的删除,以及新的二级索引记录245的插入。
随着时间的推移,可以出现多个更新250,从而导致额外的墓碑和更新的二级索引记录255。最后,用墓碑260标记更新的记录以用于删除,并且为对应的二级索引记录添加对应的墓碑265。当系统执行转储清除操作以将数据从存储器存储装置225推出到物理存储盘区227时,过时的更新记录270不需要被向前运送到物理存储盘区227。它们被丢弃并且不被向前写入。然而,最近的记录中的每一个记录(在这种情况下是墓碑(例如,260、237、265))被向前运送。如此,墓碑280被存储在盘区227中。
在图2中描绘的转储清除操作中,即使记录280中的每一个记录都是墓碑,但在常规系统中,也不能将其丢弃。墓碑基本上阻止或防止了与所述墓碑具有相同键的任何先前记录被系统读取。墓碑280不能被丢弃,只要存在与墓碑280之一具有相同键的附加记录仍然被存储在存储装置的虚拟级别更向下的某处的任何可能性。例如,不知道从盘区227至盘区229的先前合并操作是否导致键KA的记录290被写入盘区229。如果记录290存在于盘区229中,则丢弃墓碑280将使得记录290在读出中可访问。为此,在常规系统中,墓碑准许通过系统,直到它们到达物理存储装置中的最低级别(即,最后)盘区。仅在那时,系统可以确保不存在需要被墓碑阻止的先前记录。
因而,到目标盘区的常规合并操作如下:
1)选择记录的范围(例如,基于时间参数(诸如,XCN))
2)以时间顺序将具有相同键的记录从所述范围内添加到重复集(缓冲器)中
3)保留来自重复集的最新记录R;保留剩余的重复集记录作为修剪集
4)通过不向目标盘区写入那些记录来丢弃修剪集
5)如果R是墓碑并且目标盘区是系统中的最低级别盘区,则将R丢弃;否则,将R写入目标盘区。
如图2中所示,此合并过程可能导致墓碑在物理存储装置中的累积,直到墓碑最终到达最低级别盘区,在所述最低级别盘区中,可以安全地丢弃墓碑。在许多数据库应用中,这种结果是不利的,可能对系统操作速度具有负面影响,并且占据了可以通过其他方式用于存储内容数据的存储空间。此外,某些数据库服务可能快速生成过多的不必要的墓碑,诸如在大量记录的插入与删除之间时间较短的消息队列服务。
图3描绘了根据本公开的主题的计算机实现的过程,所述过程使得能够从存储系统提早移除墓碑。当记录330最初被插入存储器存储装置225的基行表310中时,系统首先进行检查以确保在系统中不存在与键KA相关联的其他活动记录(即,未标记以删除的记录)。如果没有发现其他记录,则记录330被标记为“初始标志”,指示其是与键KA相关联的当前第一和最早活动记录。
因此,在这个实施例中,具有键KA和事务号xc10的初始记录330被插入基表行310中,并且在二级索引中输入具有键KB和递增更高的事务号xc11的对应初始记录335。当记录330更新(即,在新事务中给定不同的值)时,在基表行210中输入新的记录340。新的记录340是更新,而不是初始记录,因为初始记录330已经与键KA相关联。因此,更新记录340的“初始标志”留在值0。
更新记录340与初始记录330具有相同键KA,而且还存储调整的值(未示出)和下一个递增事务号xc12。所述更新提示插入墓碑337以标记二级索引记录335的删除。墓碑337使得初始二级索引记录335无效(即,被有效地删除)。新的二级索引记录345的插入由“初始标志”标记。
随着时间的推移,可以出现多个更新350,从而导致额外的墓碑和新的初始二级索引记录355。最后,用墓碑360标记更新的记录以用于删除,并且为对应的二级索引记录添加对应的墓碑365。
在这种情况下,当系统执行转储清除/合并操作时,不需要将所有过时更新记录270向前运送至物理存储盘区227,因此它们被丢弃并且不向前写入。然而,与常规系统中不同,所公开的系统可以确定剩余的墓碑是需要向前运送还是也可以被丢弃。自动确定是否可以提早丢弃墓碑的所公开的合并操作的实施方案如下:
1)选择记录的范围(例如,基于时间参数(诸如,XCN))
2)以时间顺序将具有相同键的记录从所述范围内添加到重复集(缓冲器)中
3)保留来自重复集的最新记录R;保留剩余的重复集记录作为修剪集
4)如果R是墓碑并且目标盘区是系统中的最低级别盘区,则将R丢弃
5)如果R是墓碑并且修剪集中的最旧记录为初始记录,则将R丢弃
6)如果修剪集为空并且R既是墓碑又是初始记录,则将R丢弃
7)通过不将修剪集记录写入目标盘区来丢弃修剪集记录
8)如果R未被丢弃并且R不是墓碑,则将R写入目标盘区,继承修剪集中的最旧记录的初始标志设置
9)如果R未被丢弃并且R是墓碑,则将R写入目标盘区标记为墓碑
将以上列出的操作过程应用于图3中所描绘的情况,可以基于具有在扫描操作开始时的时间点T之后的相关联的事务时间的记录来确定所选择的记录的范围。例如,在这种情况下,所述范围可以包括事务号(XCN)xc10-xc25。对于键KA,重复集中的最新记录R是xc24TS KA。修剪集中的最旧记录是xc10初始KA。因而,在这个实例中,触发上面列出的操作号5,并且可以丢弃R。将所述操作应用于完全指定的XCN范围,丢弃记录370、380中的全部记录,并且不将任何记录写入盘区227。
与常规系统相比,在这种情况下,因为所公开的系统可以准确地确定不再需要墓碑,所以墓碑可以被当前公开的系统安全地丢弃。在设置初始标志时(即,对于记录330、335、345等),已经发生了使用键KA、KB对附加记录的扫描。初始标志指示对于键KA-KF不存在较旧的活动记录。因此,为了阻止访问而需要墓碑360、337的唯一记录全部在重复集的范围内,并且这些记录将在当前合并中被全部丢弃。
因而,所公开的计算机实现的过程实施方案可以在墓碑到达最低级别盘区之前安全且自动地丢弃墓碑,从而通过释放额外的存储空间并且改进系统的操作速度来改进系统。
图4A、图4B、图5A和图5C描绘了所公开的计算机实现的过程实施方案可以在合并操作中解决的重复集的场景。在图4A中,重复集400中的最新记录R是墓碑410。修剪集420将包括来自重复集400的剩余记录。修剪集420中的最旧记录是更新记录430。在这种情况下,由于最旧记录未被标记为初始记录并且R未被标记为墓碑和初始记录,系统将保留对于键KA的墓碑记录并且丢弃剩余的记录,除非目标盘区是最低级别盘区(在这种情况下,R和修剪集两者可被丢弃)。
在图4B中,重复集401中的最新记录R是更新的记录440。修剪集450将包括来自重复集401的剩余记录。在这种情况下,尽管修剪集450中的最旧记录是初始记录460,但由于R不是墓碑记录,修剪集450将被丢弃并且R将被写入目标盘区标记为初始记录。
在图5A中,重复集500中的最新记录R是记录440,其被标记为初始记录和墓碑。这可以在记录被插入并随后在同一事务中被标记为删除时发生。修剪集520中的最旧记录是更新的记录530。由于记录530没有被标记为初始记录,所以对于键KA的墓碑记录将被向前写入目标盘区。即,在这种情况下,尽管R也是初始记录,但是在确定哪个标志向前传送时墓碑标志优先。
在图5B中,重复集500中的最新记录R再次被标记为初始记录和墓碑。然而,在这种情况下,修剪集550中的最旧记录被标记为初始记录560。因而,R和修剪集550都可被丢弃。
本公开的主题的实现方式可以在各种组件和网络架构中实现并且与各种组件和网络架构一起使用。图6是适合于实现本公开的主题的实现方式的示例计算机600。计算机600可以是多个计算机的网络中的单个计算机。如图6中所示,计算机600可以与中央或分布式组件700(例如,服务器、云服务器、数据库、集群、应用服务器等)通信。中央组件700可以与一个或多个其他计算机(诸如,第二计算机800)通信,所述一个或多个其他计算机可以包括存储设备810。第二计算机800可以是服务器、云服务器等。存储装置810可以使用任何合适的易失性和非易失性物理存储介质的任何合适的组合,包括例如硬盘驱动器、固态驱动器、光学介质、闪速存储器、磁带驱动器、寄存器和随机存取存储器等、或其任何组合。
数据(诸如以上所讨论的记录)可以使用任何合适的文件系统或存储方案或层次结构以任何合适的格式存储在例如存储装置810中。例如,存储装置810可以使用如上所述的具有多个级别的日志结构合并(LSM)树来存储数据。进一步地,如果图6至图7中所示的系统是多租户系统,则存储装置可以被组织成用于租户的数据库的每个实例的单独的日志结构合并树。可替代地,特定服务器或系统上的所有记录的内容可以被存储在单个日志结构合并树内,在这种情况下,与记录的版本相关联的唯一租户标识符可以被用于在针对每个租户的数据之间进行区分。最近的事务可以被存储在树的最高级别或顶级别,而较旧的事务可以被存储在树的较低级别。可替代地,每个记录的最近事务或版本可以被存储在树的最高级别,而先前版本或先前事务存储在树的较低级别。
向和/或从中央组件700获得的信息可以针对每个计算机被隔离,使得计算机600可不与计算机800共享信息。可替代地或此外,计算机600可以直接与第二计算机800通信。
计算机(例如,用户计算机、企业计算机等)600包括将计算机600的主要组件互连的总线610,诸如,中央处理器640、存储器670(通常为RAM,但其也可以包括ROM、闪速RAM等)、输入/输出控制器680、用户显示器620(诸如,经由显示适配器的显示器或触摸屏)、用户输入接口660(其可以包括一个或多个控制器和诸如键盘、鼠标、WiFi/蜂窝无线电、触摸屏、麦克风/扬声器等相关联的用户输入设备并且可以紧密地耦接到I/O控制器680)、固定存储装置630(诸如,硬盘驱动器、闪速存储器、光纤通道网络、SAN设备、SCSI设备等)、以及可操作以控制和接收光盘、闪速驱动器等的可移除介质组件650。
总线610实现中央处理器640与存储器670之间的数据通信,所述存储器可以包括只读存储器(ROM)或闪速存储器(均未示出)以及随机存取存储器(RAM)(未示出),如前所述。RAM可以包括其中加载操作系统和应用程序的主存储器。除了其他代码之外,ROM或闪速存储器可以包含基本输入输出系统(BIOS),所述系统控制基本硬件操作,诸如,与外围组件的交互。与计算机600驻留在一起的应用可以被存储在计算机可读介质上并且经由计算机可读介质来访问,诸如,硬盘驱动器(例如,固定存储装置630)、光盘驱动器、软盘、或其他存储介质650。
固定存储装置630可以与计算机600集成,或者可以是单独的并且通过其他接口来访问。网络接口690可以通过经由互联网服务提供商(ISP)到互联网的电话链路来提供到远程服务器的直接连接、或通过经由POP(存在点)或其他技术到互联网的直接网络链路来提供到远程服务器的直接连接。网络接口690可以使用无线技术来提供此类连接,包括数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等。例如,网络接口690可以使计算机能够经由一个或多个局域网、广域网或其他网络来与其他计算机通信,如图7中所示。
许多其他设备或组件(未示出)可以通过类似的方式连接(例如,数据缓存系统、应用服务器、通信网络交换机、防火墙设备、认证和/或授权服务器、计算机和/或网络安全系统等)。相反地,不需要存在图6中所示的所有组件来实践本公开文本。这些组件可以按与所示不同的方式互连。实现本公开文本的代码可以被存储在诸如存储器670、固定存储装置630、可移除介质650中的一个或多个的计算机可读存储介质中,或被存储在远程存储位置上。
图7示出了根据所公开的主题的实现方式的示例网络布置。在由云1202表示的网络中的不同节点处的四个单独的数据库系统1200a-d通过联网链路1204彼此通信并且与用户(未示出)通信。数据库系统1200中的每一个数据库系统可操作来托管数据库的多个实例,其中每个实例仅可由与特定租户相关联的用户访问。数据库系统中的每一个数据库系统可以构成计算机集群以及存储区域网络(未示出)、负载平衡器和备份服务器以及防火墙、其他安全系统和认证系统。系统1200中的任何一个处的实例中的一些可以是生活或生产实例,所述实例处理和提交从用户或从计算元件(未示出)接收的事务以用于在实例中摄取和提供数据以供存储。
数据库系统(例如,1200c)可以包括至少一个存储设备,诸如在图6中。例如,存储装置可以包括存储器670、固定存储装置630、可移除介质650、与中央组件700和/或第二计算机800包括在一起的存储设备和/或与数据库系统1200a-1200d中的一个或多个相关联的一个或多个存储设备。
在一些实现方式中,图6至图7中所示的一个或多个服务器可以使用日志结构合并树数据结构将数据存储在至少一个存储设备(例如,与中央组件700、第二计算机800和/或数据库系统1200a-1200d相关联的存储设备)的不可变存储装置中。
所公开的主题的系统和方法可以用于单租户和/或多租户系统。多租户系统可以允许不同租户(可以是例如用户、用户组、或组织)通过可在不同租户之间共享的服务器系统上的软件工具或实例来访问其自己在服务器系统上的记录。每个租户的记录的内容可以是该租户的数据库的一部分。多个租户的记录的内容可以全部存储在同一服务器系统内,但每个租户可以仅能够访问属于所述租户或由所述租户创建的记录的内容。这可以允许服务器系统实现多租户,而不必例如在单独的服务器或服务器系统上分开地存储每个租户的记录的内容。用于租户的数据库可以是例如关系数据库、层次数据库、或任何其他合适的数据库类型。存储在服务器系统上的所有记录可以被存储在任何合适的结构中,包括例如LSM树。
进一步地,多租户系统可以具有遍及在每个节点处具有计算系统的网络分布的服务器系统上的各种租户实例。每个租户的生活或生产数据库实例可以使其事务在一个特定的计算机系统处被处理。用于处理该实例的事务的计算系统还可以处理其他租户的其他实例的事务。
具体实施方式的一些部分根据对计算机存储器内的数据的操作的图示或符号表示来呈现。这些图示、描述和表示通常被数据处理领域的技术人员用来将其工作的实质最有效地传达给本领域的其他技术人员。计算机实现的过程在此并且一般地被认为是导致期望结果的自相一致的步骤序列。这些步骤是需要物理量的物理操纵的那些步骤。通常,尽管不是必须的,这些量采取能够被存储、转移、组合、比较和以其他方式操纵的电信号或磁信号的形式。主要出于普遍使用的原因,已经证明有时将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应该记住,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。除非特别声明,否则如从以上讨论中显而易见的,应当认识到贯穿本说明书,使用诸如“写入”、“读取”、“接收”、“传输”、“修改”、“更新”、“发送”等术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其将计算机系统的寄存器和存储器内表示为物理(例如,电子)量的数据操纵和转换为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
更一般地,本公开的主题的不同实现方式可以包括计算机实现的过程和用于实践这些过程的装置的形式或以计算机实现的过程和用于实践这些过程的装置的形式来实现。实现方式还可以实现为计算机程序产品的形式,所述计算机程序产品具有包含在非暂时性和/或有形介质(诸如,软盘、CD-ROM、硬盘驱动器、USB(通用串行总线)驱动器或任何其他机器可读存储介质)中实现的指令的计算机程序代码,其中,当所述计算机程序代码被加载到计算机中并由计算机执行时,所述计算机成为用于实践所公开的主题的实现方式的装置。实现方式还可以实现为计算机程序代码的形式,无论是否被存储在存储介质中,所述计算机程序代码例如被加载到计算机中和/或由计算机执行、或通过一些传输介质传输(诸如,通过电线或电缆、通过光纤或经由电磁辐射),其中,当所述计算机程序代码被加载到计算机中并由计算机执行时,所述计算机成为用于实践所公开的主题的实现方式的装置。当在通用微处理器上实现时,计算机程序代码段配置微处理器以创建特定逻辑电路。在一些配置中,存储在计算机可读存储介质上的一组计算机可读指令可以由通用处理器实现,其可以将所述通用处理器或包含所述通用处理器的设备转变成经配置以实现或执行所述指令的专用设备。实现方式可以使用硬件来实现,所述硬件可以包括处理器(诸如,通用微处理器和/或专用集成电路(ASIC)),所述处理器以硬件和/或固件来实现根据所公开的主题的实现方式的技术的全部或部分。处理器可以耦接到存储器(诸如,RAM、ROM、闪速存储器、硬盘或能够存储电子信息的任何其他设备)。存储器可以存储适于由处理器执行以执行根据所公开的主题的实现方式的技术的指令。
为了解释的目的,已经参考具体实施方式描述了前述说明。然而,以上说明性讨论不旨在是详尽的或旨在将所公开的主题的实现方式限制为所公开的确切形式。鉴于以上教导,许多修改和变化是可能的。选择和描述这些实现方式是为了解释所公开的主题的实现方式的原理及其实践应用,从而使得本领域其他技术人员能够利用那些实现方式以及具有如可能适合于所设想的特定用途的各种修改的各种实现方式。
Claims (22)
1.一种在合并操作期间从基于日志结构合并(LSM)树的存储系统删除一个或多个记录的计算机实现的方法,包括:
在所述存储系统中的第一记录中设置初始标志,所述初始标志指示所述第一记录与第一键相关联,所述第一键不与任何其他活动记录相关联;
在所述存储系统中的第二记录中设置删除标志,所述第二记录与所述第一键相关联,并且所述删除标志指示与所述第一键相关联的值被指定为被从所述存储系统删除;
选择所述存储系统中的要在合并操作中写入所述存储系统的盘区的一个或多个记录的集,所述一个或多个记录中的每一个记录与所述第一键相关联;以及
执行所述合并操作,其中至少部分地基于确定具有初始标志集的所述第一记录是所述集中的最旧记录并且具有删除标志集的所述第二记录是所述集中的最新记录,在所述合并操作期间不将所述第二记录写入所述盘区。
2.根据权利要求1所述的方法,其中所述第一记录和所述第二记录是同一记录,是所述集中的唯一记录。
3.根据权利要求1或2所述的方法,其中所述一个或多个记录的集全部是基于具有在扫描操作开始时的时间点T之后的相关联的事务时间来选择的。
4.根据权利要求1至3中任一项所述的方法,其进一步包括当第三记录是所述集中的最旧记录并且所述合并操作将记录写入所述存储系统中的最低盘区时,在所述第三记录中设置初始标志。
5.根据权利要求1至4中任一项所述的方法,其进一步包括在所述第一记录中设置所述初始标志之前:
在所述存储系统中执行对与所述第一记录具有相同键的活动记录的搜索;以及
当所述搜索没有得到所述存储系统中存储的与所述第一记录具有相同键的记录时,设置所述第一记录的所述初始标志。
6.根据权利要求1至5中任一项所述的方法,其中在所述第一记录被插入所述存储系统中时,发生在所述第一记录中设置所述初始标志的搜索和确定。
7.一种在对目标盘区的合并操作期间管理基于日志结构合并(LSM)树的存储系统中的一个或多个记录的计算机实现的方法,包括:
选择属于时间范围内的一个或多个记录;
从所述一个或多个记录的范围内选择具有相同键的一个或多个记录,以形成以时间顺序组织的重复集;
将最新记录R与所述重复集分离,以从剩余的重复集记录形成修剪集;
通过不将所述修剪集写入所述目标盘区来丢弃所述修剪集;以及
当R是墓碑并且所述修剪集中的最旧记录是初始记录时,通过不将R写入所述目标盘区来丢弃R,
其中墓碑是指示对应于与所述墓碑相关联的键的值已被删除的记录,并且初始记录是包括指定的记录,所述指定指示当所述初始记录被插入时,在所述系统中没有其他活动记录与和所述初始记录相关联的相同键相关联。
8.根据权利要求7所述的方法,其进一步包括当R是墓碑并且所述目标盘区是所述系统中的最低级别盘区时,通过不将R写入所述目标盘区来丢弃R。
9.根据权利要求7或8所述的方法,其进一步包括当所述修剪集为空并且R既是墓碑又是初始记录时,丢弃R。
10.根据权利要求7至9中任一项所述的方法,其进一步包括当R未被丢弃并且R不是墓碑并且所述修剪集中的最旧记录是初始记录时,将R写入所述目标盘区指定为初始记录。
11.根据权利要求7至10中任一项所述的方法,其进一步包括当R未被丢弃并且R是墓碑时,将R写入所述目标盘区指定为墓碑记录。
12.一种存储系统,其包括:
存储计算机可执行指令的至少一个存储器;
存储多个记录的数据库;以及
至少一个处理器,其中所述至少一个处理器被配置成访问所述至少一个存储器并且执行所述计算机可执行指令以便:
在所述存储系统中的第一记录中设置初始标志,所述初始标志指示所述第一记录与第一键相关联,所述第一键不与任何其他活动记录相关联;
在所述存储系统中的第二记录中设置删除标志,所述第二记录与所述第一键相关联,并且所述删除标志指示与所述第一键相关联的值被指定为从所述存储系统删除;
选择所述存储系统中的要在合并操作中写入所述存储系统的盘区的一个或多个记录的集,所述一个或多个记录中的每一个记录与所述第一键相关联;并且
执行所述合并操作,其中至少部分地基于确定具有初始标志集的所述第一记录是所述集中的最旧记录并且具有删除标志集的所述第二记录是所述集中的最新记录,在所述合并操作期间不将所述第二记录写入所述盘区。
13.根据权利要求12所述的存储系统,其中所述第一记录和所述第二记录是同一记录,是所述集中的唯一记录。
14.根据权利要求12或13所述的存储系统,其中所述一个或多个记录的集全部是基于具有在扫描操作开始时的时间点T之后的相关联的事务时间来选择的。
15.根据权利要求12至14中任一项所述的存储系统,其中所述处理器进一步被配置成当第三记录是所述集中的最旧记录并且所述合并操作将记录写入所述存储系统中的最低盘区时,在所述第三记录中设置初始标志。
16.根据权利要求12至15中任一项所述的存储系统,其中过程进一步被配置成在所述第一记录中设置所述初始标志之前:
在所述存储系统中执行对与所述第一记录具有相同键的活动记录的搜索;并且
当所述搜索没有得到所述存储系统中存储的与所述第一记录具有相同键的记录时,设置所述第一记录的所述初始标志。
17.根据权利要求12至16中任一项所述的存储系统,其中在所述第一记录被插入所述存储系统中时,发生在所述第一记录中设置所述初始标志的搜索和确定。
18.一种存储系统,其包括:
存储计算机可执行指令的至少一个存储器;
存储多个记录的数据库;以及
至少一个处理器,其中所述至少一个处理器被配置成访问所述至少一个存储器并且执行所述计算机可执行指令以便:
选择属于时间范围内的一个或多个记录;
从所述一个或多个记录的范围内选择具有相同键的一个或多个记录,以形成以时间顺序组织的重复集;
将最新记录R与所述重复集分离,以从剩余的重复集记录形成修剪集;
通过不将所述修剪集写入所述目标盘区来丢弃所述修剪集;并且
当R是墓碑并且所述修剪集中的最旧记录是初始记录时,通过不将R写入所述目标盘区来丢弃R,
其中墓碑是指示对应于与所述墓碑相关联的键的值已被删除的记录,并且初始记录是包括指定的记录,所述指定指示当所述初始记录被插入时,在所述系统中没有其他活动记录与和所述初始记录相关联的相同键相关联。
19.根据权利要求18所述的存储系统,其中所述处理器进一步被配置成当R是墓碑并且所述目标盘区是所述系统中的最低级别盘区时,通过不将R写入所述目标盘区来丢弃R。
20.根据权利要求18或19所述的存储系统,其中所述处理器进一步被配置当所述修剪集为空并且R既是墓碑又是初始记录时,丢弃R。
21.根据权利要求18至20中任一项所述的存储系统,其中所述处理器进一步被配置当R未被丢弃并且R不是墓碑并且所述修剪集中的最旧记录是初始记录时,将R写入所述目标盘区指定为初始记录。
22.根据权利要求18至21中任一项所述的存储系统,其中所述处理器进一步被配置当R未被丢弃并且R是墓碑时,将R写入所述目标盘区指定为墓碑记录。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/139,717 US11099771B2 (en) | 2018-09-24 | 2018-09-24 | System and method for early removal of tombstone records in database |
US16/139,717 | 2018-09-24 | ||
PCT/US2019/052731 WO2020068855A1 (en) | 2018-09-24 | 2019-09-24 | System and method for early removal of tombstone records in database |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112740198A true CN112740198A (zh) | 2021-04-30 |
Family
ID=68165796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980062443.4A Pending CN112740198A (zh) | 2018-09-24 | 2019-09-24 | 用于在数据库中提早移除墓碑记录的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11099771B2 (zh) |
EP (1) | EP3814928B1 (zh) |
JP (1) | JP2022500727A (zh) |
CN (1) | CN112740198A (zh) |
WO (1) | WO2020068855A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536047A (zh) * | 2021-06-28 | 2021-10-22 | 北京明略软件系统有限公司 | 一种图数据库数据删除方法、系统、电子设备及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321294B2 (en) | 2019-09-09 | 2022-05-03 | Salesforce.Com, Inc. | Database index repair |
WO2021197493A1 (zh) * | 2020-04-04 | 2021-10-07 | 厦门网宿有限公司 | 一种基于LSM-Tree存储引擎的文件管理方法和装置 |
CN111708485A (zh) * | 2020-05-24 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种存储介质读写数据的方法 |
US11483150B2 (en) | 2020-06-01 | 2022-10-25 | Salesforce.Com, Inc. | Private key cache in secure enclave |
US11921683B2 (en) * | 2020-06-08 | 2024-03-05 | Paypal, Inc. | Use of time to live value during database compaction |
CN112000846B (zh) * | 2020-08-19 | 2021-07-20 | 东北大学 | 基于gpu分组lsm树索引的方法 |
CN113806307A (zh) * | 2021-08-09 | 2021-12-17 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
CN113625971A (zh) * | 2021-08-17 | 2021-11-09 | 咪咕数字传媒有限公司 | 数据存储方法、装置、设备以及计算机存储介质 |
US20230060733A1 (en) * | 2021-08-27 | 2023-03-02 | Salesforce.Com, Inc. | Mechanisms for truncating tenant data |
US20230138151A1 (en) * | 2021-11-01 | 2023-05-04 | Salesforce.Com, Inc. | Knowledge Graph for Information Retrieval and Exploration |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101120337A (zh) * | 2004-04-02 | 2008-02-06 | 易享信息技术(上海)有限公司 | 多租户数据库系统中的自定义实体和字段 |
CN101122924A (zh) * | 2007-09-30 | 2008-02-13 | 华为技术有限公司 | 逻辑日志生成方法、数据库备份/恢复方法与系统 |
US20130198455A1 (en) * | 2012-01-31 | 2013-08-01 | International Business Machines Corporation | Cache memory garbage collector |
US20140006348A1 (en) * | 2012-06-27 | 2014-01-02 | Microsoft Corporation | Opportunistic clearing of sync states associated with a database |
US20140195492A1 (en) * | 2012-12-19 | 2014-07-10 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using lsm trees |
US9684570B1 (en) * | 2012-12-19 | 2017-06-20 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using immutable LSM trees |
CN107533507A (zh) * | 2015-02-23 | 2018-01-02 | 国际商业机器公司 | 根据日志结构管理存储装置中的数据 |
US20180107402A1 (en) * | 2016-10-19 | 2018-04-19 | Acronis International Gmbh | System and method for data storage using log-structured merge trees |
US20180225321A1 (en) * | 2017-02-09 | 2018-08-09 | Micron Technology, Inc. | Merge tree garbage metrics |
US20180225315A1 (en) * | 2017-02-09 | 2018-08-09 | Micron Technology, Inc. | Kvs tree |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887275A (en) * | 1996-02-08 | 1999-03-23 | Oracle Corporation | Method and apparatus for locating a first set of data using a global identifier and a virtual addressing data structure |
US6219678B1 (en) * | 1998-06-25 | 2001-04-17 | Sun Microsystems, Inc. | System and method for maintaining an association for an object |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
US9047312B1 (en) * | 2011-03-30 | 2015-06-02 | Amazon Technologies, Inc. | System and method for deletion of extraneous delete marker objects |
US8600949B2 (en) * | 2011-06-21 | 2013-12-03 | Netapp, Inc. | Deduplication in an extent-based architecture |
US8924664B2 (en) * | 2012-12-13 | 2014-12-30 | Infinidat Ltd. | Logical object deletion |
US9400816B1 (en) * | 2013-02-28 | 2016-07-26 | Google Inc. | System for indexing collections of structured objects that provides strong multiversioning semantics |
US9218383B2 (en) * | 2013-03-15 | 2015-12-22 | International Business Machines Corporation | Differentiated secondary index maintenance in log structured NoSQL data stores |
US9515878B2 (en) * | 2014-11-13 | 2016-12-06 | Software AG USA Inc. | Method, medium, and system for configuring a new node in a distributed memory network |
US9817587B1 (en) * | 2015-03-04 | 2017-11-14 | Amazon Technologies, Inc. | Memory-based on-demand data page generation |
US10552387B1 (en) * | 2015-12-15 | 2020-02-04 | Workday, Inc. | Managing data using a simulation of purging |
US11321299B2 (en) * | 2016-02-01 | 2022-05-03 | Verizon Patent And Licensing Inc. | Scalable conflict detection in transaction management |
US20170315740A1 (en) * | 2016-04-29 | 2017-11-02 | Netapp, Inc. | Technique for pacing and balancing processing of internal and external i/o requests in a storage system |
US10795871B2 (en) * | 2016-09-26 | 2020-10-06 | Vmware, Inc. | Key-value stores implemented using fragmented log-structured merge trees |
JP2020514935A (ja) * | 2017-03-15 | 2020-05-21 | ファウナ, インク.Fauna, Inc. | データベース用の方法及びシステム |
WO2018200475A1 (en) * | 2017-04-24 | 2018-11-01 | Reniac, Inc. | System and method to accelerate compaction |
US10783186B2 (en) * | 2017-08-31 | 2020-09-22 | Micron Technology, Inc. | Heterogenous key-value sets in tree database |
WO2019144100A1 (en) * | 2018-01-22 | 2019-07-25 | President And Fellows Of Harvard College | Key-value stores with optimized merge policies and optimized lsm-tree structures |
US10810162B2 (en) * | 2018-07-12 | 2020-10-20 | EMC IP Holding Company LLC | Physical file verification |
-
2018
- 2018-09-24 US US16/139,717 patent/US11099771B2/en active Active
-
2019
- 2019-09-24 EP EP19783855.0A patent/EP3814928B1/en active Active
- 2019-09-24 WO PCT/US2019/052731 patent/WO2020068855A1/en unknown
- 2019-09-24 CN CN201980062443.4A patent/CN112740198A/zh active Pending
- 2019-09-24 JP JP2021505411A patent/JP2022500727A/ja active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101120337A (zh) * | 2004-04-02 | 2008-02-06 | 易享信息技术(上海)有限公司 | 多租户数据库系统中的自定义实体和字段 |
CN101122924A (zh) * | 2007-09-30 | 2008-02-13 | 华为技术有限公司 | 逻辑日志生成方法、数据库备份/恢复方法与系统 |
US20130198455A1 (en) * | 2012-01-31 | 2013-08-01 | International Business Machines Corporation | Cache memory garbage collector |
US20140006348A1 (en) * | 2012-06-27 | 2014-01-02 | Microsoft Corporation | Opportunistic clearing of sync states associated with a database |
US20140195492A1 (en) * | 2012-12-19 | 2014-07-10 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using lsm trees |
US9684570B1 (en) * | 2012-12-19 | 2017-06-20 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using immutable LSM trees |
CN107533507A (zh) * | 2015-02-23 | 2018-01-02 | 国际商业机器公司 | 根据日志结构管理存储装置中的数据 |
US20180107402A1 (en) * | 2016-10-19 | 2018-04-19 | Acronis International Gmbh | System and method for data storage using log-structured merge trees |
US20180225321A1 (en) * | 2017-02-09 | 2018-08-09 | Micron Technology, Inc. | Merge tree garbage metrics |
US20180225315A1 (en) * | 2017-02-09 | 2018-08-09 | Micron Technology, Inc. | Kvs tree |
Non-Patent Citations (3)
Title |
---|
ANONYMOUS: "Method of Providing Log Structured Merge (LSM) Trees that Decrease Lifespan of Tombstones", 《IP.COM》, 22 August 2011 (2011-08-22), pages 1 - 3 * |
游理通;王振杰;黄林鹏;: "一个基于日志结构的非易失性内存键值存储系统", 计算机研究与发展, no. 09, 15 September 2018 (2018-09-15) * |
马文龙: "Key-Value型NoSQL本地存储系统研究", 《计算机学报》, vol. 41, no. 08, 1 June 2017 (2017-06-01) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536047A (zh) * | 2021-06-28 | 2021-10-22 | 北京明略软件系统有限公司 | 一种图数据库数据删除方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020068855A1 (en) | 2020-04-02 |
JP2022500727A (ja) | 2022-01-04 |
EP3814928A1 (en) | 2021-05-05 |
EP3814928B1 (en) | 2023-11-01 |
US20200097205A1 (en) | 2020-03-26 |
US11099771B2 (en) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112740198A (zh) | 用于在数据库中提早移除墓碑记录的系统和方法 | |
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
EP3814930B1 (en) | System and method for bulk removal of records in a database | |
US10303363B2 (en) | System and method for data storage using log-structured merge trees | |
CN110799961B (zh) | 在数据库中创建和删除租户的系统和方法 | |
US11841826B2 (en) | Embedded reference counts for file clones | |
US10824610B2 (en) | Balancing write amplification and space amplification in buffer trees | |
US10732840B2 (en) | Efficient space accounting mechanisms for tracking unshared pages between a snapshot volume and its parent volume | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
US11308038B2 (en) | Copying container images |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |