CN110799961A - 在数据库中创建和删除租户的***和方法 - Google Patents
在数据库中创建和删除租户的***和方法 Download PDFInfo
- Publication number
- CN110799961A CN110799961A CN201880043563.5A CN201880043563A CN110799961A CN 110799961 A CN110799961 A CN 110799961A CN 201880043563 A CN201880043563 A CN 201880043563A CN 110799961 A CN110799961 A CN 110799961A
- Authority
- CN
- China
- Prior art keywords
- tenant
- new
- template
- metadata
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims abstract description 56
- 230000002085 persistent effect Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000004891 communication 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
- 239000007787 solid Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- 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/217—Database tuning
-
- 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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于创建数据库***的租户的***和方法,该租户将租户数据存储在数据库***的与租户标识符相关联的不可变存储器中。可以在数据库***处接收创建新租户的请求。可以在数据库***处选择模板租户的模板租户元数据,以基于接收到的请求来创建新租户。可以基于所选择的模板租户元数据在数据库***处创建新租户标识符。可以通过将新租户标识符与模板租户元数据的至少一部分在使得模板租户元数据可被新租户访问的时间点处的快照相关联来创建新租户。还提供了用于通过移除对租户标识符的引用来移除数据库***的租户的***和方法。
Description
背景技术
在数据库***中,租户通常经历从创建到删除的整个生命周期。即,在数据库内创建租户,使用一段时间,最终将其删除。
在传统数据库中创建新租户时,通常会创建大量记录。这些记录中的每一个都需要单独***数据库***中,这会花费时间并利用计算和硬件资源。
当典型的数据库***接收到删除租户的请求时,该数据库***将经历耗时且耗费资源的逐行删除与该租户相关联的租户数据的过程。
附图的简要说明
包括附图以提供对所公开的主题的进一步理解,该附图被并入本说明书中并构成本说明书的一部分。附图还示出了所公开的主题的实现,并且与具体实施方式一起解释了所公开的主题的实现的原理。没有试图比基本理解所公开的主题和实践该主题的各种方式所必需的更详细地示出结构细节。
图1A示出了根据所公开的主题的实现方式的用于使用模板租户元数据创建数据库***的租户的示例方法。
图1B示出了根据所公开的主题的实现方式的通过移除对租户标识符的引用来从数据库***中移除租户的另一示例方法。
图2示出了根据所公开的主题的实现方式的数据库***中的记录的示例。
图3示出了根据所公开的主题的实现方式的用于创建租户,存储和检索租户数据以及使用虚拟化层移除租户的示例***。
图4A-图4D示出了根据所公开的主题的实现方式的使用模板租户元数据创建新租户的示例***和方法。
图5示出了根据所公开的主题的实现方式的计算机。
图6A-图6B示出了根据所公开的主题的实现方式的网络配置。
具体实施方式
所公开的主题的实现涉及从模板租户中存储的数据创建租户。在传统的数据库***中,通过将记录逐行添加到数据库中来创建新租户。所公开的主题的实现方式通过使新租户的租户标识符指向模板的元数据而减少了创建新租户的时间量以及计算和硬件资源,从而在创建租户时没有必要逐行添加或复制数据。
当接收到创建新租户的请求时,所公开主题的数据库***可以确定***是否已使用特定模板租户和/或与接收到的请求相似的模板租户执行了注册(例如,在特定时间段内)。如果是,则可以使用该模板租户的快照(例如,模板租户数据,版本信息等)来创建新租户。特别地,快照可以成为新租户,并且具有指向模板租户(快照从其拍摄)的数据的部分的元数据。
所公开的主题的实现方式还涉及从数据库中移除和/或删除租户。传统上,租户和租户数据是从数据库中逐行移除的。所公开的主题的数据库***通过移除对数据库中租户的元数据引用来更快速地从***中移除租户。即,所公开主题的数据库***不必发出单独的删除操作以从数据库的行中移除数据。而是,可以执行一个或更多个操作以通过移除对租户数据的引用来从数据库中移除对包含租户数据的那些行的引用。
所公开的主题的实现方式提供了一种用于创建数据库***的租户的方法,该租户将租户数据存储在数据库***的与租户标识符相关联的不可变存储器中。可以在数据库***处接收创建新租户的请求。可以在数据库***处选择模板租户的模板租户元数据,以基于接收到的请求来创建新租户。可以基于所选择的模板租户元数据在数据库***处创建新租户标识符。可以通过将新租户标识符与模板租户元数据的至少一部分在使模板租户元数据可被新租户访问的时间点处的快照相关联,来创建新租户。
该方法可以包括将在新租户创建时间点之后由新租户创建的新租户数据与新租户相关联,其中模板租户不可访问在新租户创建时间点之后由新租户创建的新租户数据。
在该方法中,选择模板租户的模板租户元数据可包括:基于形成新租户的请求的类型确定模板租户是否存在,以及通过将新租户标识符与所确定的模板租户的模板租户元数据的至少一部分在要创建新租户的时间点处的快照相关联,来创建新租户。
在一些实现方式中,当新租户被创建时,可以通过设置许可,更改布局和/或更改用户名等来更改新租户的数据。所公开的主题的实现方式提供了一种用于移除数据库***的租户的方法,该租户具有存储在数据库***的与租户标识符相关联的不可变存储器中的租户数据。数据库***可以接收移除租户的请求。基于接收到的请求,可以从数据库***中移除租户的元数据。可以从数据库***中移除对租户的租户标识符的引用,而无需逐行删除数据库***中与租户标识符相关联的租户数据。该方法可以包括移除与该租户的元数据相关联的至少一个键(key),而无需更改其他租户数据。
在一些实现方式中,这可以包括从不可变存储器中移除与租户的元数据相关联的键范围,而无需移除存储在不可变存储器中的物理数据。
所公开的主题的实现方式还可以提供一种用于创建数据库***的租户的***。该***的至少一个服务器可以接收创建新租户的请求,选择模板租户的模板租户元数据,以基于接收到的请求来创建新租户,基于所选择的模板租户元数据创建新租户标识符,以及通过将新租户标识符与模板租户元数据的至少一部分在模板租户元数据可被新租户访问的时间点处的快照相关联,来创建新租户。该***可以包括至少一个存储设备,用于存储与租户标识符相关联的租户数据和模板租户。
数据库***的至少一个服务器可以将在新租户创建时间点之后由新租户创建的新租户数据与新租户相关联。模板租户无法访问在新创建时间点之后由新租户创建的新租户数据。
数据库***的至少一个服务器可以通过基于形成新租户的请求的类型确定模板租户是否存在来选择模板租户的模板租户元数据。服务器可以通过将新租户标识符与模板租户的模板租户元数据的至少一部分在创建新租户的时间点处的快照相关联来创建新租户。
当新租户被***创建时,数据库***的至少一个服务器可以通过改变设置许可,改变布局和/或改变用户名等来改变新租户的租户数据。
所公开的主题的实现方式还可以提供一种移除数据库***的租户的***。该***可以包括至少一个存储设备,用于存储与租户标识符相关联的租户数据。该***的至少一个服务器可以:接收从至少一个存储设备中移除租户的请求,基于接收到的请求从数据库***中移除该租户的元数据,以及从该数据库***中移除对该租户的租户标识符的引用,而无需逐行删除数据库***中与该租户标识符相关联的租户数据。
在一些实现方式中,数据库***的至少一个服务器可以通过在不改变其他租户数据的情况下移除与租户相关联的至少一个键来移除元数据。该***的服务器可以通过从不可变存储器中移除与租户的元数据相关联的键范围来移除至少一个键,而无需移除存储在至少一个存储器中的物理数据。
图1A示出了根据所公开主题的实现方式的用于使用模板租户元数据创建数据库***的租户的示例方法10。使用方法10创建的数据库***的租户可以将租户数据存储在数据库***的不可变存储器中(例如,如图3所示的***30,图5所示的第二计算机800的存储器810,图6A-图6B中的数据库***1200a-d等)并与租户标识符相关联。如下所述,方法10可以与图4A-图4E所示并在下面描述的***50结合使用,以使用模板租户创建租户。
图4A-图4E的***50可以是数据库***、服务器***、云服务器***等。***50可以包括临时存储器100、持久存储器(persistence)200和日志300。持久存储器200可以具有与其相关联的一个或更多个服务器和/或计算机(例如,图3所示的***30,图5中所示的计算机600和/或计算机800,和/或图6A-图6B中所示的数据库***1200a-1200d)。临时存储器100可以是***50上的硬件和软件的任何合适的组合,用于在“刷新”操作之前将数据的键范围存储在扩展区(extent)中,以将信息存储在持久存储器200中,持久存储器200可以是***50上的硬件和软件的任何合适的组合,以用于存储数据扩展区和数据扩展区引用。模板300可以存储在***50上的硬件和软件的任何组合上,以存储***可以使用以创建新租户的模板租户和元数据。
在图1A的操作12中,数据库***可以接收创建新租户的请求。例如,图3中所示且在下面描述的访问层32的数据库存储引擎33可以接收该请求。在另一个示例中,图5中所示且在下面描述的计算机600、中央组件700和/或第二计算机800可以接收该请求。在又一示例中,图6A-图6B中所示且在下面描述的一个或更多个数据库***1200a-d可以接收该请求。图4A中还示出了操作12,该操作12中,***50的临时存储器100接收创建新租户的请求。
在操作14中,数据库***可以选择模板租户的模板租户元数据以创建新租户。模板租户元数据的选择可以基于所接收的请求的一个或更多个属性。即,数据库***可以确定创建租户的请求中的信息和/或数据是否类似于数据库***存储的租户模板的数据、信息和/或元数据(例如,在图4A,图4B,图4D和/或图4E中示出的模板300中的一个或更多个)。例如,数据库***可以选择与创建新租户的请求最相似的租户模板。相似之处可以包括例如要创建的租户的类型,与要创建的租户相关联的数据和/或元数据的类型等等。如图4B所示,可以基于图4A所示的***50所接收的请求从模板300中选择具有元数据305的模板304。
在操作16中,数据库***可以基于所选择的模板租户元数据创建新租户标识符。例如,图4B示出了在***50的临时存储器100中创建的租户标识符101。
在操作18中,数据库***可以通过将新租户标识符与租户模板数据的一部分在使模板租户元数据可被新租户访问的时间点处的快照相关联,来创建新租户。例如,图4C示出了图4B的模板304的快照。快照可以使新租户可以使用模板租户数据,以便新租户可以以与制作了原始租户数据的副本相同的方式访问租户模板数据,而无需复制基础数据。也就是说,新租户可包含引用,这些引用指向模板租户数据在快照时间点处的快照。
图4D示出了具有***50的临时存储器100中的租户标识符101的新租户102,以及指向模板304的模板租户数据的键。图4E示出了“刷新”操作,其中新租户102被存储在持久存储器200中。也就是说,刷新操作可以从临时存储器100中移除新创建的租户102并将其存储在持久存储器200中。
在某些实现中,可以由存储在文档对象模板(DOT)文件中的数据创建租户,该DOT文件可以存储在例如模板300中。可以通过从数据库中逐行选择数据,将数据转换为对象(例如JavaTM对象)以及串行化(serializing)对象来生成DOT文件。例如,当使用方法10在数据库***中创建新租户时,可以从DOT文件中读取对象,其中每个对象用于通过***操作在数据库中创建行。当***所有数据后,可以进行诸如设置权限、创建布局、更改用户名等更改,以最终确定租户的创建。
在一些实现中,DOT文件可以是包含串行化的JavaTM对象的压缩二进制文件(例如,ZIP文件)。这些文件是通过从数据库中逐行选择所有数据,将数据转换为JavaTM对象,将JavaTM对象串行化到存储设备并压缩文件而产生的。通常,当JavaTM对象被串行化时,数据被转换为字节流,后面再转换回原始数据的副本。
当接收到创建新租户的请求(例如,作为注册请求的一部分)时,确定***是否已使用特定的模板租户(例如,使用特定的DOT文件和正在接收请求的特定数据库的数据库版本)执行了注册。如果是,则可以使用模板租户的快照(例如,模板租户数据,DOT文件,版本信息等)来创建新租户。特别是,快照将成为新租户,并且具有指向模板租户(快照从其拍摄)的数据的部分的元数据。
在一些实现中,当例如在注册时创建新租户时(例如,当将新租户引入数据库***时),可以读取DOT文件之一,并且上面描述的该过程可以相反地执行。可以一次读取一个对象,并且当数据库***发出***语句时,可以使用每个对象在数据库中创建行。***数据后,可以进行诸如设置权限、创建布局和更改用户名之类的更改。此时,租户可能会退出,数据库***中的授权用户可以使用。
在图4A-图4E所示的示例中,可以在数据库***50处接收注册请求。该请求可以从通信地耦合到数据库***50的新客户的计算机处接收。作为特定示例,该请求可以来自当前没有存储在数据库***中的租户和/或租户数据的一方。因为该请求是来自新的一方,所以数据库***50可以确定先前未执行过该方的注册,并且数据库***50选择了新客户的DOT文件。新客户DOT文件可以通过从数据库***50中选择数据,通过选择每个新租户通常需要的新客户数据(例如客户名称,地址,账单信息,标准用户角色,权限,所包括的服务等),来创建该新客户DOT文件。然后,可以将所选数据转换为对象,然后将其串行化为DOT文件,如前所述。在某些情况下,可以在接收到注册请求之前执行DOT文件的创建。
当数据库***50选择了新客户DOT文件时,***50可以读取所选DOT文件的对象,并且可以使用每个对象通过***操作在例如临时存储器100中创建一行数据。即,每个读取对象可以用于在临时存储器100中创建可以与租户标识符101相关联的行。当已经***数据时,可以拍摄快照。快照可以包括DOT文件和其他信息,例如数据库的版本。快照可以例如存储在持久存储器200中。模板300之一,例如模板304,可以具有指向存储在持久存储器200中的快照数据的元数据305。
基于快照和注册请求,可以生成新租户标识符101并将其存储在临时存储器100中。数据库***50可以通过将新租户标识符101与租户模板数据的一部分在使模板租户元数据可被新租户访问的时间点处的快照相关联,来创建新租户。在该示例中,可以拍摄图4B的模板304的快照。该快照可以使得模板304的模板租户数据可用于具有租户标识符101的新租户,从而新租户可以以与制作了原始租户数据的副本相同的方式访问租户模板数据,而无需复制基础数据。即,新租户可以包含指向模板304的数据的快照的引用。如图4D所示,新租户102可以具有租户标识符101以及指向模板304的模板租户数据的键。已完成的租户可以存储在持久存储器200中,并且可以使租户可用于进行注册请求的客户计算机。
图1B示出了根据所公开的主题的实现方式的用于通过移除对租户标识符的引用来从数据库***中移除租户的方法20。使用方法10创建的数据库***的租户可以将租户数据存储在数据库***的不可变存储器中(例如,图3的***30中,图5所示的第二计算机800的存储器810中,图6A-图6B的数据库***1200a-d中等)并与租户标识符相关联。
在操作22中,数据库***可以接收移除租户的请求。例如,图5中所示的计算机600、中央组件700和/或第二计算机800可以接收移除租户的请求(例如,从存储器810中移除)。在另一示例中,数据库***1200a-1200d中的一个或更多个可以接收移除租户的请求。
在操作24中,数据库***可以基于接收到的请求来移除租户。在一些实现方式中,可以通过移除与租户的元数据相关联的至少一个键来从数据库***的存储器中移除元数据,而无需改变其他租户数据。特别地,可以通过从不可变存储器中移除与租户的元数据相关联的键范围来移除至少一个键,而无需移除存储在不可变存储器中的物理数据。
在操作26中,可以从数据库***中移除对租户的租户标识符的引用,而无需逐行删除与数据库***中标识的租户相关联的租户数据。这允许数据库***通过移除租户标识符来快速而准确地移除租户。一旦移除了租户标识符,就不可能对数据库***进行任何查询以检索数据或将数据写入租户,因为在缺少租户标识符的情况下数据库***可能无法找到租户。
在使用模板租户元数据创建数据库***的租户的方法10和结合图1A-图1B描述的从数据库中移除租户的方法20,以及结合图3-图6B全文描述的数据库***中,在多租户***的实例中,可以将可以创建或删除的记录标识为键-值对。可以在数据库中创建租赁(tenancy)(例如,通过以上结合图1A描述的方法10),并且与租赁相关联的授权用户可以查看,访问和/或执行针对该租赁的操作。该值可以是例如关系数据库的表的行的内容、关系数据库的表中的行的标识或任何其他合适的值。键可以是记录的标识符,并且可以采用任何合适的形式,例如字母数字序列。键的某些部分可提供有关记录内容的信息。例如,键的一部分可以是租户标识符,其可以唯一地标识记录的内容所属的租户。键的其他部分可以例如当记录的值为行的内容或表号、表上的索引号时标识例如表号和行的标识,以及当值是行的标识时标识索引列的标识。
数据库***(例如,图3所示的***30,图4A-图4E所示的数据库***50或图6A-图6B所示的数据库1200a,1200b,1200c和/或1200d)可以存储交易作为给定记录的不可变版本。已经存储在服务器***上的记录的内容的不可变版本可以保持不变,直到从服务器上删除该内容(例如,作为以上结合图1B描述的方法20的一部分,或者如果有的话)。即,接收到的交易可以创建要存储在服务器***中的记录的内容的新版本,而不是改变记录的内容。因此,本文公开的记录的多个版本(例如,具有不同内容的记录)可能具有除了交易标识符之外的相同键。针对给定记录的版本使用其他相同的键可以允许改变存储在关系数据库中的数据。因此,物理记录的每个版本可能都是不可变的;也就是说,它要么未被删除,要么在可能长达数月,数年或数十年的任意长时间内未被删除。例如,具有与该记录的较早版本相同的键(而不是交易版本标识符)的记录的较新版本可以指示该记录的数据值的变化(即,记录内容的变化)。或者,交易可以创建记录或删除记录(即,创建内容或删除内容)。可以通过***“tombstone(墓碑)”(例如,标识要删除的数据的标记)来删除记录(例如,作为图1B中所示的方法20的一部分,如上所述),并且在将来的某个时间点可以写入新的扩展区,该扩展区不再包括由tombstone标记的记录。
可以在创建租户时制作时间戳或其他时间标识符(例如,作为以上结合图1A描述的方法10的一部分)。此后,租户数据可以通过基于时间戳之前存储的数据池中的键访问适当的版本来解释时间戳之前的数据版本的主键请求。在时间戳之后各个租户访问所创建或更新的数据的键将被解释为访问租户创建的适当数据。替代地,代替使用时间戳,数据库中的每个交易可以具有与之相关联的唯一交易编号,该交易编号对于每个后续交易单调增加,并且***可以记录最近创建的交易标识符代替时间戳。
图2示出了根据所公开的主题的实现的数据库***(例如,图3所示的***30,图4A-图4E所示的***50,图6A-图6B所示的数据库***1200a-1200d)中使用的示例记录。记录可以通过键空间(ks),租户标识符,objectId(对象标识符)和/或ObjectKey(对象键)进行索引(keyed)。如图2所示,该记录可以包括租户标识符,objectId和ObjectKey。记录的键可以包括租户标识符,objectId和ObjectKey。在所公开主题的实现方式中,键和/或值的长度可以是可变的。如上所讨论的,可以根据提交时间,通过键对所公开的主题的实现方式中的数据扩展区进行排序,并在LSM树中按级别对其进行组织。如本文所公开的数据库***可以具有不可变存储器,其可以在关系数据库中使用,该关系数据库存储记录的持久内容,由租户标识符并通过使用持久存储器虚拟化所寻根的单个键空间。持久存储器可以由扩展区组成。扩展区通常是用于存储数据的存储器的连续区域。如上所述,扩展区可以是不可变的,并且可以通过键进行排序。
在所公开的主题的实现方式中,数据扩展区引用可以被组织为级别。一个级别可以覆盖单个键范围,该键范围可以分组为按键排序的数据扩展区引用。
减少和/或最小化组织数据的级别数可能会随着新数据的到来而增加数据的重写。每个级别可能具有最大尺寸阈值,并且级别尺寸可呈指数增加。当超过尺寸阈值时,可以由数据库***(例如,图3的***30,图4A-图4E的***50和/或图6A-图6B所示的数据库***1200a-1200d)执行合并操作,其中数据从级别N合并到级别N+1。
直到通过刷新操作使数据成为持久的并且查询已经移至持久存储器的最新视图为止,才将数据从数据库***的内存存储器(例如,图6B所示的存储器1230)中移出。例如,在刷新操作中,将数据从图6B中所示的内存存储器存储1230复制到存储器1260。即,在刷新操作中,一个或更多个扩展区从存储器存储1230移动到存储器1260(即,永久存储器)。对于特定的交易范围,这可以按键顺序进行。
图3示出了根据所公开主题的实现方式的示例***,该***用于***新租户,更新租户记录和/或通过移除租户标识符来移除租户,例如如图1A,图1B和图4A-图4E和在全文中描述的。如以上例如结合图2所讨论的,***30可以将交易存储为给定记录的不可变版本。***30可以是单个计算设备,或可以包括多个连接的计算设备,并且可以是例如笔记本电脑,台式机,单个服务器,服务器集群,服务器农场或分布式服务器***,或者可以是虚拟计算设备或***,或物理和虚拟***的任何适当组合。为了简单起见,未示出数据库管理***的许多组件,诸如处理器,短期和长期存储器,操作***。服务器***30可以是计算***和网络基础架构的一部分,或者可以以其他方式连接到计算***和网络基础架构,包括较大的服务器网络,该服务器网络可以包括与服务器***30类似的其他服务器***。在一些实现中,***30可以是图5所示的计算机600,中央组件700和/或第二计算机800,和/或图6A-图6B中所示的数据库***1200a-1200d中的一个或更多个。
如图3所示,***30的访问层32可以具有数据库存储引擎33,该数据库存储引擎33可以接收针对来自计算设备(例如,图5中所示的计算机600和/或第二计算机800)的数据库***(例如,图5所示的中央组件700和/或图6A-图6B中所示的数据库***1200a-1200d)的查询和/或指令。该查询可以是针对来自租户的特定数据,和/或可以是添加租户、***和/或更新租户的数据和/或删除租户标识符的指令。数据库存储引擎33可以是服务器***30上的硬件和软件的任何合适的组合,用于接收对数据库***的查询,以及检索与所接收的查询和/或指令有关的数据。
***30可以包括虚拟化层34,其可以具有扩展区引用35,扩展区引用35可以将存储在物理存储器36中的租户数据引用为扩展区37。在某些实现中,扩展区引用35可以是图5中所示的中央组件700和/或图6A-图6B中所示的数据库***1200a-1200d的一部分。扩展区引用35可以是***30上的硬件和软件的任何合适的组合,以作为数据库存储引擎33和物理存储器36之间的虚拟化层34执行(例如,其中可以将扩展区存储为扩展区37的一部分)。物理存储器36可以是半导体存储器,固态驱动器(SSD),硬盘驱动器,光学存储器,光学存储设备或任何其他合适的物理数据存储介质,或其某种组合。
当例如由***30使用图1A所示且如上所述的方法10创建新租户时,扩展区引用35可以被创建为租户标识符,并且扩展区引用35可以与新租户相关联,该新租户具有作为扩展区37的一部分存储在物理存储器36中的租户数据。
当***30接收到例如使用图1B所示且如上描述的方法20移除租户的指令时,可以移除与扩展区37相关联的扩展区引用35,而无需删除存储在物理存储器36中的租户数据。
在所公开的主题的实现中,可以在***30中虚拟化数据,并可以使用虚拟化层34映射数据。这可以允许使用租户模板在数据库***(例如***30)中创建新租户。可以在某个时间点拍摄模板租户数据的快照,新租户中的引用(例如,扩展区引用35)可以指向模板租户数据的快照,使得不必复制数据。数据的虚拟化还允许通过移除对数据库***中的租户的引用(例如,虚拟化层34中的扩展区引用35)来删除租户。
可以在各种组件和网络架构中实现本公开的主题的实现,并与之一起使用。图5是适合于实现当前公开的主题的实现的示例计算机600。如本文中进一步详细讨论的,计算机600可以是多个计算机的网络中的单个计算机。如图5所示,计算机600可以与中央或分布式组件700(例如,服务器,云服务器,数据库,集群,应用服务器等)通信。中央组件700可以与一个或更多个其他计算机(例如第二计算机800)通信,该第二计算机800可以包括存储设备810。第二计算机800可以是服务器,云服务器等。存储器810可以使用任何适当的易失性和非易失性物理存储介质的任何适当的组合,包括例如硬盘驱动器,固态驱动器,光学介质,闪存,磁带驱动器,寄存器和随机存取存储器,或者等等,或其任何组合。
可以使用任何合适的文件***或存储方案或层次结构以任何合适的格式将数据存储在例如存储器810中。例如,存储器810可以使用具有多个级别的日志结构合并(LSM)树来存储数据。此外,如果图4-图5中所示的***是多租户***,对于租户的数据库的每个实例,可以将存储器组织成单独的日志结构化合并树。也就是说,每个租户可以有单独的数据库(例如LSM树)。或者,可以将特定服务器或***上所有记录的内容存储在单个日志结构化合并树中,在这种情况下,如本文所公开的,与记录的版本相关联的唯一租户标识符可以用于区分每个租户的数据。较新的事务可以存储在树的最高层或顶层,而较旧的事务可以存储在树的较低层。
可以为每个计算机隔离从中央组件700获取的和/或所获取的至中央组件700的信息,以使计算机600可以不与计算机800共享信息。或者,计算机600可以与第二计算机800直接通信。
计算机(例如,用户计算机、企业计算机等)600包括将计算机600的主要组件互连的总线610,所述主要组件例如中央处理器640,存储器670(通常是RAM,但也可以包括ROM,闪存RAM等),输入/输出控制器680,用户显示器620(例如通过显示适配器的显示器或触摸屏),用户输入接口660,该用户输入接口660可以包括一个或更多个控制器以及关联的用户输入或设备,例如键盘,鼠标,Wi-Fi/蜂窝无线电,触摸屏,麦克风/扬声器等,并且可以紧密耦合到I/O控制器680,固定存储器630(例如硬盘驱动器,闪存存储器,光纤通道网络,SAN设备,SCSI设备等),以及可移除媒体组件650,可操作为控制和接收光盘、闪存驱动器等。
总线610使得能够在中央处理器640和存储器670之间进行数据通信,该存储器670可以包括只读存储器(ROM)或闪存(均未示出)以及随机存取存储器(RAM)(未示出),如先前指出。RAM可以包括将操作***和应用程序加载到其中的主内存。ROM或闪存可以包含基本输入输出***(BIOS)以及其他代码,该基本输入输出***(BIOS)控制基本硬件操作,例如与***组件的交互。可以将驻留在计算机600上的应用程序存储在诸如硬盘驱动器(例如,固定存储器630),光盘驱动器,软盘或其他存储介质650之类的计算机可读介质上,并通过计算机可读介质进行访问。
固定存储器630可以与计算机600集成在一起,或者可以是分开的并且可以通过其他接口访问。固定存储器630可以是存储区域网络(SAN)的一部分。网络接口690可以通过电话链接提供到远程服务器的直接连接,通过互联网服务提供商(ISP)提供到互联网的直接连接,或者通过直接网络链接提供到远程服务器的直接连接,或者通过POP(存在点)或其他技术提供到互联网的直接连接。网络接口690可以使用无线技术来提供这种连接,所述无线技术包括数字蜂窝电话连接,蜂窝数字分组数据(CDPD)连接,数字卫星数据连接等。例如,网络接口690可以使计算机能够经由一个或更多个局域网、广域网或其他网络与其他计算机和/或存储设备进行通信,如图5所示。
许多其他设备或组件(未示出)可以以类似方式连接(例如,数据高速缓存***,应用服务器,通信网络交换机,防火墙设备,身份验证和/或授权服务器,计算机和/或网络安全***等等)。相反,不需要图5中所示的所有组件都存在以实践本公开。组件可以以不同于所示方式的方式互连。可以将实现本公开的代码存储在计算机可读存储介质中,例如存储器670,固定存储器630,可移除介质650中的一个或更多个,或存储在远程存储位置上。
图6A-图6B示出了根据所公开的主题的实现的示例性网络布置。在由云1202表示的网络中的不同节点处的四个分开的数据库***1200a-d通过联网链路1204彼此通信并且与用户(未示出)通信。每个数据库***1200可操作为托管数据库的多个实例,其中每个实例仅可被特定租户(例如,与特定租户相关联的被授权访问租户的数据的用户)访问。每个数据库***都可以与存储区域网络(未示出)、负载平衡器和备份服务器以及防火墙,其他安全***和身份验证***一起组成计算机集群。***1200中的任何一个处的某些实例可以是生活或生产中的实例,其处理和提交从用户或从计算元件(未示出)接收的交易,以摄取并提供数据以存储在实例中。
一个或更多个数据库***1200a-1200d可以在接收到请求时随时使用租户模板数据来创建新租户。如图6A-图6B所示,该***(例如1200c)可以包括可以存储模板数据的至少一个存储设备。例如,该存储设备可以包括内存670,固定存储器630,可移除介质650,中央组件700和/或第二计算机800所包括的存储设备,和/或与数据库***1200a-1200d中的一个或更多个相关联的一个或更多个存储设备。租户数据和/或租户模板数据可以存储在至少一个存储设备的与租户标识符相关联的不可变存储器中。
图6B示出了根据所公开的主题的实现的单独的数据库***1200a,1200b,1200c或1200d。数据库***1200a-1200c可以具有存储器1260,其可以包括提供数据(例如,租户数据)的持久存储的一个或更多个存储设备。数据库***1200a,1200b,1200c或1200d可以包括一个或更多个应用程序1210,其可以使用来自节点1220和/或存储器1260的数据和/或信息,该节点和存储器可以是一个或更多个存储设备。应用程序1210可以包括客户关系管理(CRM)应用程序等。存储器1260可以是一个或更多个存储设备,并且可以存储可以包括租户数据的数据扩展区1270。
所公开的主题的实现还可以提供一种用于创建数据库***的租户的***。计算机600,中央组件700,第二计算机800和/或一个或更多个数据库***1200a-1200d中的至少一个可以接收创建新租户的请求,并选择模板租户的模板租户元数据以基于接收到的请求创建新租户。新租户标识符可以基于所选择的模板租户元数据,并且可以通过将新租户标识符与模板租户元数据的至少一部分在使模板租户元数据可由新租户访问的时间点处的快照相关联来创建新租户。至少一个存储设备,例如存储器810和/或数据库***1200a-1200d中的一个或更多个,可以存储与租户标识符和模板租户相关联的租户数据。
计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可以将在新租户创建时间点之后由新租户创建的新租户数据与新租户相关联。
计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可以通过基于形成新租户的请求的类型来确定模板租户是否存在,来选择模板租户的模板租户元数据。计算机600,中央组件700和/或数据库***1200a-1200d中的一个或更多个可以通过将新租户标识符与所确定的模板租户的模板租户元数据的至少一部分在要创建新租户的时间点处的快照相关联,来创建新租户。
当创建新租户时,计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可通过改变设置许可、更改布局和更改用户名中的至少一个来改变新租户的租户数据。
计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可以移除数据库***的租户。该***可以包括至少一个存储设备,诸如存储器810和/或数据库***1200a-1200d,以存储与租户标识符相关联的租户数据。计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可以接收从至少一个存储设备中移除租户的请求,基于接收到的请求从数据库***中移除租户的元数据,以及从数据库***中移除对租户的租户标识符的引用。这可以在不逐行删除与数据库***中的租户标识符相关联的租户数据的情况下完成。
在一些实现方式中,计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可以通过在不改变其他租户数据的情况下移除与租户相关联的至少一个键来移除元数据。计算机600、中央组件700和/或数据库***1200a-1200d中的一个或更多个可以通过从不可变存储器中移除与租户的元数据相关联的键范围来移除至少一个键,而无需移除存储在存储器中的物理数据。
所公开的主题的***和方法可以用于单租户***和/或多租户***。多租户***可以允许各种租户(例如可以是用户、用户组或组织)通过可以在各种租户之间共享的软件工具或服务器***上的实例访问服务器***上其自己的记录。每个租户的记录的内容可以是包含该租户的数据库的一部分。多个租户的记录的内容可以都一起存储在同一数据库中,但是每个租户只能访问属于该租户或由该租户创建的记录的内容。这可以允许数据库***启用多租户,而不必将每个租户的记录的内容分别存储在例如单独的服务器或服务器***上。租户的数据库可以是例如关系数据库、层次数据库或任何其他合适的数据库类型。存储在服务器***上的所有记录可以以任何合适的结构存储,包括例如LSM树。
多租户***可以在分布在整个网络内的服务器***上具有各种租户实例,并且每个节点处都具有计算***。每个租户的生活或生产数据库实例只能在一个计算机***上处理其交易。用于处理该实例的交易的计算***还可以为其他租户处理其他实例的交易。
更一般地,当前公开的主题的各种实现可以包括或以计算机实现的过程和用于实践那些过程的装置的形式来实现。实现也可以以计算机程序产品的形式来实施,该计算机程序产品具有计算机程序代码,该计算机程序代码包含在非暂时性和/或有形介质(例如软盘,CD-ROM,硬盘驱动器,USB(通用串行总线)驱动器,或任何其他机器可读存储介质)中实现的指令,其中,当将计算机程序代码加载到计算机中并由计算机执行时,计算机成为用于实践所公开主题的实现的设备。还可以以计算机程序代码的形式来实施实现,例如,无论是存储在存储介质中,加载到计算机中和/或由计算机执行,还是通过某种传输介质(例如通过电线或电缆)经由光纤传输或通过电磁辐射传输,其中当将计算机程序代码加载到计算机中并由计算机执行时,计算机成为用于实践所公开主题的实现的设备。当在通用微处理器上实现时,计算机程序代码段将微处理器配置为创建特定的逻辑电路。在某些配置中,存储在计算机可读存储介质上的一组计算机可读指令可以由通用处理器实现,通用处理器可以将通用处理器或包含通用处理器的设备转换为配置为实现或执行指令的专用设备。可以使用硬件来实施实现,该硬件可以包括处理器,例如通用微处理器和/或专用集成电路(ASIC),该处理器根据硬件和/或固件中所公开的主题的实现方式来实现全部或部分技术。处理器可以耦合到诸如RAM,ROM,闪存,硬盘或能够存储电子信息的任何其他设备的内存。内存可以存储适于由处理器执行以执行根据所公开的主题的实现的技术的指令。
出于解释的目的,已经参考特定实现描述了前述描述。然而,以上说明性讨论并非旨在穷举或将所公开的主题的实现限制为所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择并描述了实现以解释所公开的主题的实现的原理及其实际应用,从而使本领域的其他技术人员能够利用那些实现以及具有各种修改的各种实现,以适合所考虑的特定的用途。
Claims (14)
1.一种用于创建数据库***的租户的计算机化的方法,所述租户将租户数据存储在数据库***的与租户标识符相关联的不可变存储器中,所述方法包括:
在所述数据库***处接收创建新租户的请求;
在所述数据库***处,基于接收到的所述请求选择模板租户的模板租户元数据,以创建所述新租户;
经由所述数据库***,基于所选择的所述模板租户元数据创建新租户标识符;以及
通过将所述新租户标识符与所述模板租户元数据的至少一部分在使所述模板租户元数据能够被所述新租户访问的新租户创建时间点处的快照相关联,来创建所述新租户。
2.根据前述权利要求中的任一项所述的方法,还包括:
在所述新租户创建时间点之后将由所述新租户创建的新租户数据与所述新租户相关联,其中所述模板租户无法访问在所述新租户创建时间点之后由所述新租户创建的所述新租户数据。
3.根据前述权利要求中的任一项所述的方法,其中所述选择所述模板租户的所述模板租户元数据包括:
基于形成所述新租户的请求的类型确定模板租户是否存在;以及
通过将所述新租户标识符与所确定的所述模板租户的模板租户元数据的至少一部分在所述新租户创建时间点处的快照相关联,来创建所述新租户。
4.根据前述权利要求中的任一项所述的方法,还包括:
当创建所述新租户时,通过更改以下项组成的组中的至少一个来更改所述新租户的租户数据:设置许可,更改布局和更改用户名。
5.一种用于移除数据库***的租户的计算机化的方法,所述租户将租户数据存储在所述数据库***的与租户标识符相关联的不可变存储器中,所述方法包括:
在所述数据库***处接收移除所述租户的请求;
基于接收到的所述请求从所述数据库***中移除所述租户的元数据;以及
从所述数据库***中移除对所述租户的租户标识符的引用,而无需逐行删除所述数据库***中与所述租户标识符相关联的租户数据。
6.根据权利要求5所述的方法,其中所述移除所述元数据包括:
从所述不可变存储器中移除与所述租户的所述元数据相关联的至少一个键,而无需更改其他租户数据。
7.根据权利要求6所述的方法,其中所述移除所述至少一个键包括:
从所述不可变存储器中移除与租户的所述元数据相关联的键范围,而无需移除存储在所述不可变存储器中的物理数据。
8.一种用于创建数据库***的租户的***,所述***包括:
至少一个服务器,用于:接收创建新租户的请求,基于接收到的所述请求选择模板租户的模板租户元数据以创建所述新租户,基于所选择的模板租户元数据创建新租户标识符,以及通过将所述新租户标识符与所述模板租户元数据的至少一部分在使所述模板租户元数据能够被所述新租户访问的新租户创建时间点处的快照相关联,来创建所述新租户;和
至少一个存储设备,用于存储与所述租户标识符相关联的租户数据和所述模板租户。
9.根据前述权利要求中的任一项所述的***,其中所述至少一个服务器将在所述新租户创建时间点之后由所述新租户创建的新租户数据与所述新租户相关联,并且其中所述模板租户无法访问在所述新租户创建时间点之后由所述新租户创建的所述新租户数据。
10.根据前述权利要求中的任一项所述的***,其中所述至少一个服务器通过基于形成所述新租户的请求的类型来确定模板租户是否存在以及通过将所述新租户标识符与所确定的模板租户的模板租户元数据的至少一部分在所述新租户时间点处的快照相关联创建所述新租户,来选择所述模板租户的所述模板租户元数据。
11.根据前述权利要求中的任一项所述的***,其中当所述新租户被创建时,所述至少一个服务器通过更改以下各项组成的组中的至少一个来更改所述新租户的租户数据:设置许可,改变布局,和更改用户名。
12.一种用于移除数据库***的租户的***,所述***包括:
至少一个存储设备,用于存储与租户标识符相关联的租户数据;和
至少一个服务器,用于:接收从所述至少一个存储设备中移除所述租户的请求,基于接收到的所述请求从所述数据库***中移除所述租户的元数据,以及从所述数据库***中移除对所述租户的所述租户标识符的引用,而无需逐行删除所述数据库***中与所述租户标识符相关联的租户数据。
13.根据前述权利要求中的任一项所述的***,其中所述至少一个服务器通过移除与所述租户相关联的至少一个键来移除所述元数据,而无需改变其他租户数据。
14.根据前述权利要求中的任一项所述的***,其中所述至少一个服务器通过从所述不可变存储器中移除与租户的所述元数据相关联的键范围来移除所述至少一个键,而无需移除存储在所述至少一个存储器中的物理数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/634,786 US11500836B2 (en) | 2017-06-27 | 2017-06-27 | Systems and methods of creation and deletion of tenants within a database |
US15/634,786 | 2017-06-27 | ||
PCT/US2018/039452 WO2019005761A1 (en) | 2017-06-27 | 2018-06-26 | SYSTEMS AND METHODS FOR CREATING AND DELETING TENANTS IN A DATABASE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110799961A true CN110799961A (zh) | 2020-02-14 |
CN110799961B CN110799961B (zh) | 2023-12-26 |
Family
ID=63080469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043563.5A Active CN110799961B (zh) | 2017-06-27 | 2018-06-26 | 在数据库中创建和删除租户的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11500836B2 (zh) |
EP (1) | EP3646133B1 (zh) |
JP (1) | JP2020525938A (zh) |
CN (1) | CN110799961B (zh) |
AU (1) | AU2018290753B2 (zh) |
CA (1) | CA3066254A1 (zh) |
WO (1) | WO2019005761A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905708A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 基于SaaS***的数据库操作方法及*** |
CN113297207A (zh) * | 2020-08-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及设备 |
CN114168572A (zh) * | 2022-02-10 | 2022-03-11 | 北京奥星贝斯科技有限公司 | 管理数据库的方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11238174B2 (en) * | 2019-01-31 | 2022-02-01 | Salesforce.Com, Inc. | Systems and methods of database encryption in a multitenant database management system |
US11728974B2 (en) * | 2021-01-29 | 2023-08-15 | Salesforce, Inc. | Tenant-based database encryption |
US20220253404A1 (en) * | 2021-02-09 | 2022-08-11 | Stripe, Inc. | Data deletion in multi-tenant database |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162483A1 (en) * | 2006-12-29 | 2008-07-03 | Becker Wolfgang A | Methods and systems for protecting shared tables against unauthorized overwriting from a tenant space in a mega-tenancy environment |
US20090216796A1 (en) * | 2008-02-22 | 2009-08-27 | Bycast Inc. | Relational objects for the optimized management of fixed-content storage systems |
CN101639835A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN104182414A (zh) * | 2013-05-24 | 2014-12-03 | 国际商业机器公司 | 用于在多租户***中管理数据库的方法和设备 |
CN104462421A (zh) * | 2014-12-12 | 2015-03-25 | 中国科学院声学研究所 | 基于键-值数据库的多租户扩展方法 |
CN105069366A (zh) * | 2015-07-06 | 2015-11-18 | 无锡天脉聚源传媒科技有限公司 | 一种账户登录和管理方法及装置 |
CN106559488A (zh) * | 2016-11-24 | 2017-04-05 | 天津市普迅电力信息技术有限公司 | 一种建立租户驱动的电网地理信息空间服务的方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529728B2 (en) * | 2003-09-23 | 2009-05-05 | Salesforce.Com, Inc. | Query optimization in a multi-tenant database system |
WO2007030796A2 (en) * | 2005-09-09 | 2007-03-15 | Salesforce.Com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
US7689593B2 (en) * | 2005-12-30 | 2010-03-30 | Sap Ag | Systems and methods for accessing a shared space in a provider-tenant environment |
US20070156901A1 (en) * | 2005-12-30 | 2007-07-05 | Wolfgang Becker | Generation and use of table links in a provider-tenant environment |
US20070156699A1 (en) * | 2005-12-30 | 2007-07-05 | Wolfgang Becker | Systems and methods for generating tenant templates for use in a provider-tenant environment |
US7680825B2 (en) * | 2005-12-30 | 2010-03-16 | Sap Ag | Systems and methods for generating tenant-specific properties for use in a provider-tenant environment |
US20080162490A1 (en) * | 2006-12-29 | 2008-07-03 | Becker Wolfgang A | Methods and systems for automatic registration during deployment of a tenant |
US8069184B2 (en) * | 2006-12-29 | 2011-11-29 | Sap Ag | Systems and methods to implement extensibility of tenant content in a provider-tenant environment |
US8095618B2 (en) * | 2007-03-30 | 2012-01-10 | Microsoft Corporation | In-memory caching of shared customizable multi-tenant data |
US20100250608A1 (en) * | 2009-03-31 | 2010-09-30 | Relational Networks, Inc. | Creation and management of multi-tenant application services |
US9715555B2 (en) * | 2010-02-26 | 2017-07-25 | Salesforce.Com, Inc. | System, method and computer program product for user registration with a multi-tenant on-demand database system |
US20110219046A1 (en) * | 2010-03-05 | 2011-09-08 | Igor Nesmyanovich | System, method and computer program product for managing data storage and rule-driven communications for a plurality of tenants |
CN102567436B (zh) * | 2010-12-22 | 2017-04-12 | 塔塔咨询服务有限公司 | 多租户*** |
EP2495673A1 (en) * | 2011-03-01 | 2012-09-05 | Tata Consultancy Services Ltd. | Computer implemented system for facilitating configuration, data tracking and reporting for data centric applications |
EP2791831B1 (en) * | 2012-01-25 | 2020-03-11 | Hitachi, Ltd. | Single instantiation method using file clone and file storage system utilizing the same |
US9838370B2 (en) * | 2012-09-07 | 2017-12-05 | Oracle International Corporation | Business attribute driven sizing algorithms |
US9268806B1 (en) * | 2013-07-26 | 2016-02-23 | Google Inc. | Efficient reference counting in content addressable storage |
US10628387B2 (en) * | 2013-11-15 | 2020-04-21 | Salesforce.Com, Inc. | Techniques for data retention |
US9742838B2 (en) * | 2014-01-09 | 2017-08-22 | Red Hat, Inc. | Locked files for cartridges in a multi-tenant platform-as-a-service (PaaS) system |
US10374871B2 (en) * | 2014-09-16 | 2019-08-06 | CloudGenix, Inc. | Methods and systems for business intent driven policy based network traffic characterization, monitoring and control |
US10657004B1 (en) * | 2015-03-23 | 2020-05-19 | Amazon Technologies, Inc. | Single-tenant recovery with a multi-tenant archive |
US9779269B1 (en) * | 2015-08-06 | 2017-10-03 | EMC IP Holding Company LLC | Storage system comprising per-tenant encryption keys supporting deduplication across multiple tenants |
US20180300305A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Shared Templates In A Collaborative Work Environment |
-
2017
- 2017-06-27 US US15/634,786 patent/US11500836B2/en active Active
-
2018
- 2018-06-26 JP JP2019572099A patent/JP2020525938A/ja active Pending
- 2018-06-26 CN CN201880043563.5A patent/CN110799961B/zh active Active
- 2018-06-26 CA CA3066254A patent/CA3066254A1/en active Pending
- 2018-06-26 WO PCT/US2018/039452 patent/WO2019005761A1/en unknown
- 2018-06-26 EP EP18749617.9A patent/EP3646133B1/en active Active
- 2018-06-26 AU AU2018290753A patent/AU2018290753B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162483A1 (en) * | 2006-12-29 | 2008-07-03 | Becker Wolfgang A | Methods and systems for protecting shared tables against unauthorized overwriting from a tenant space in a mega-tenancy environment |
US20090216796A1 (en) * | 2008-02-22 | 2009-08-27 | Bycast Inc. | Relational objects for the optimized management of fixed-content storage systems |
CN101639835A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN104182414A (zh) * | 2013-05-24 | 2014-12-03 | 国际商业机器公司 | 用于在多租户***中管理数据库的方法和设备 |
CN104462421A (zh) * | 2014-12-12 | 2015-03-25 | 中国科学院声学研究所 | 基于键-值数据库的多租户扩展方法 |
CN105069366A (zh) * | 2015-07-06 | 2015-11-18 | 无锡天脉聚源传媒科技有限公司 | 一种账户登录和管理方法及装置 |
CN106559488A (zh) * | 2016-11-24 | 2017-04-05 | 天津市普迅电力信息技术有限公司 | 一种建立租户驱动的电网地理信息空间服务的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297207A (zh) * | 2020-08-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及设备 |
CN113297207B (zh) * | 2020-08-24 | 2024-06-07 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及设备 |
CN112905708A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 基于SaaS***的数据库操作方法及*** |
CN114168572A (zh) * | 2022-02-10 | 2022-03-11 | 北京奥星贝斯科技有限公司 | 管理数据库的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019005761A1 (en) | 2019-01-03 |
US20180373741A1 (en) | 2018-12-27 |
AU2018290753A1 (en) | 2020-01-02 |
AU2018290753B2 (en) | 2021-06-10 |
JP2020525938A (ja) | 2020-08-27 |
US11500836B2 (en) | 2022-11-15 |
CN110799961B (zh) | 2023-12-26 |
CA3066254A1 (en) | 2019-01-03 |
EP3646133A1 (en) | 2020-05-06 |
EP3646133B1 (en) | 2023-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110799960B (zh) | 数据库租户迁移的***和方法 | |
JP7090606B2 (ja) | データベース・システムにおけるテスト・データの形成及び動作 | |
CN110799961B (zh) | 在数据库中创建和删除租户的***和方法 | |
JP7507143B2 (ja) | データベースにおけるツームストーンレコードの早期除去のためのシステムおよび方法 | |
JP7507142B2 (ja) | データベースにおいてレコードを一括削除するためのシステムおよび方法 | |
US20190057133A1 (en) | Systems and methods of bounded scans on multi-column keys of a database | |
US10621071B2 (en) | Formation and manipulation of test data in a database system | |
JP7408626B2 (ja) | テナント識別子の置換 | |
US20200201745A1 (en) | Formation and manipulation of test data in a database system |
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 |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |