CN101639835A - 多租户场景中应用数据库分区的方法和装置 - Google Patents
多租户场景中应用数据库分区的方法和装置 Download PDFInfo
- Publication number
- CN101639835A CN101639835A CN200810134388A CN200810134388A CN101639835A CN 101639835 A CN101639835 A CN 101639835A CN 200810134388 A CN200810134388 A CN 200810134388A CN 200810134388 A CN200810134388 A CN 200810134388A CN 101639835 A CN101639835 A CN 101639835A
- Authority
- CN
- China
- Prior art keywords
- tenant
- subregion
- key
- database
- partition
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种多租户场景中应用数据库分区的方法和装置,该方法包括:在用于存储租户数据的分区数据库***的每个数据库表中提供一分区键字段,用于存储用于每个租户的分区键,其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***用于对该租户的数据进行数据库分区操作。
Description
技术领域
本发明一般涉及数据处理领域,具体涉及多租户技术,更具体涉及一种多租户场景中应用数据库分区的方法和装置。
背景技术
多租户(multi-tenancy)技术,是指在服务提供商的服务器上运行软件的单个实例,由该单个实例为多个客户组织(即租户)例如大量中小企业提供服务。多租户技术与传统的在服务器上为不同客户组织建立多个软件实例或硬件***的服务提供方式形成对比。在多租户技术中,软件应用被设计为虚拟地将其数据和配置进行分区,从而使得每个客户组织使用定制的虚拟应用实例工作。由于多租户技术能够实现巨大的规模经济,降低客户组织的软件使用成本,提高服务提供商的收益,因此日益引起人们的关注。
在多租户场景中,单个软件应用实例可能支持成百万的租户,并且租户数量可能是随时变化的。因此,为了实现多租户场景中的规模经济,底层数据库必须通过某种集群(clustering)技术采用向外扩展(scale out)的方法。
数据库分区(DB Partitioning)是一种常用的数据库向外扩展技术,已由DB2、SQL Server等数据库管理***实现,它支持集群化多个物理机器/分区,并向应用提供单个数据库管理视图。图1示意性地示出了数据库分区的体系结构。如图所示,一个数据库被分区为多个数据库分区,所述多个数据库分区可位于不同的机器上。数据库中的数据实际存储在每个数据库分区上,应用对该数据库的访问将被分区数据库***路由到相应的数据库分区。这样的体系结构很容易通过添加新的数据库分区而扩展。
数据库分区技术通常根据数据库表中某一个或多个字段的值将该数据库表中的不同记录分配到不同的数据库分区上,例如,邮政编码小于50000的客户的信息被存储在一个分区的表中,而邮政编码大于或等于50000的客户的信息被存储在另一个分区的表中,由这两个表的联合(Union)产生的视图可向应用提供所有客户的信息。这种用于将记录分配到不同的数据库分区的一个或多个字段被称为分区键。
为了基于诸如时间、地区、邮政编码等分区键的值将数据尽可能地均匀地分散在不同的数据库分区中,数据库分区技术通常采用散列分区法,在这种散列分区法中,由某种散列函数对分区键进行散列而得出的散列值将决定记录属于哪个分区。图2示出了数据库分区技术中使用的散列分区法的一种示例性实现。如图所示,分区函数对一分区键进行散列运算,得到范围例如为0-4095内的一个散列值。一个分区映射表包含了每个散列值与相应的分区例如分区1-4中的一个分区之间的对应关系。这样,通过散列运算和分区映射表就可以将每一个分区键值所属的记录分配到相应的分区中。当添加新的分区时,只需要将新的分区的分区号添加到所述分区映射表,就可自动形成分区键值与各分区之间的新的映射关系。
当试图在多租户场景中应用数据库分区技术以便于实现数据库的向外扩展时,由于在多租户场景中对数据的访问通常局限于某个租户之内,跨租户的数据访问较不常见,因此应当根据租户来分配分区,即同一个的租户的数据只被存储在一个分区中,尽管同一个分区可用于存储多个租户的数据。由于在多租户场景中,不同租户是根据租户ID来进行区分的,因此一种自然的做法是将租户ID作为分区键,这样,通过对不同的租户ID进行散列,并使用分区表,可方便地确定不同租户的数据所存储的相应分区。
然而,这种做法却会产生“可用性”的问题。也就是说,当添加新的机器/分区到现有的数据库群集中时,分区表中现有的散列值与分区号之间的对应关系将由于新的分区号的加入而自动发生改变,因此分区数据库***需要重新分配现有租户的数据,而这需要很长的宕机时间(down-time)。图3例示了在直接使用租户ID作为分区键的情况下当添加新的分区时,需要重新分配现有租户的数据的情况。如图所示,采用现有的技术,将租户ID作为分区键,***将使用散列函数将租户ID的值转换成0~4095个散列值中的一个,该散列值将通过分区映射表对应于一个分区号。例如当分区数据库***中有2个分区时,散列值与分区号的对应关系如图3上部的表所示,其中,一个租户ID对应的散列值为2时,所对应的分区号为0。当***中新增了两个分区时,***的散列值与分区号的对应关系被自动修改为如图3下部的表所示,这样,当一个租户ID对应的散列值为2时,所对应的分区号将变成2。也就是说,因为新增加了2个分区,该租户ID所对应的数据需要从分区0迁移到分区2上,其他的租户也会遇到类似的问题,需要进行迁移。
在用于迁移租户数据的宕机期间,所有的租户都无法访问其数据。因此,每个租户的不可用时间都等于分区数据库***的宕机时间,这一时间可能为数小时甚至数十小时,而且随着租户数量或数据记录数量的增加而增加。图4示出了在直接使用租户ID作为分区键的情况下***宕机时间随租户数量增加而增加的情况。这种情况是无法接受的。
显然,本领域中需要一种多租户场景中应用数据库分区技术的方案,该方案能够利用现有的数据库分区技术来实现将各租户的数据分布到不同分区中,从而易于实现分区的扩展,同时在扩展分区时不会产生可用性问题。
发明内容
在本发明的一个方面,提供了一种多租户场景中应用数据库分区的方法,包括:在用于存储租户数据的分区数据库***的每个数据库表中提供一分区键字段,用于存储用于每个租户的分区键,其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***用于对该租户的数据进行数据库分区操作。
在本发明另一个方面,提供了一种多租户场景中应用数据库分区的装置,包括:用于存储租户数据的分区数据库***,其中该分区数据库***的每个数据库表具有一分区键字段,用于存储用于每个租户的分区键,其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***用于对该租户的数据进行数据库分区操作。
本发明利用现有的数据库分区机制实现了多租户数据存储的向外扩展,同时又避免了在简单地使用租户ID作为分区键的情况下在添加新的分区时所产生的可用性问题。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、另外的目标、特征以及优点,在附图中:
图1示意性地示出了数据库分区的体系结构;
图2示出了数据库分区技术中使用的散列分区法的一种示例性实现;
图3例示了在直接使用租户ID作为分区键的情况下当添加新的分区时,需要重新分配现有租户的数据的情况;
图4示出了在直接使用租户ID作为分区键的情况下***宕机时间随租户数量增加而迅速增加的情况;
图5示出了根据本发明的实施例的一种多租户场景中应用数据库分区的装置;
图6例示了根据本发明的实施例利用数据库分区机制为租户指定分区键的机制;
图7例示了根据本发明的实施例向分区数据库***添加新的分区的机制;
图8示出了根据本发明的实施例的多租户场景中应用数据库分区的方法;
图9示出了根据本发明的实施例的新租户上线(on boarding)处理过程;
图10示出了根据本发明的实施例的租户数据访问处理过程;
图11示出了根据本发明的实施例的添加新分区的处理过程;以及
图12示出了根据本发明的实施例的租户数据迁移的处理过程。
具体实施方式
下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和元素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。
图5示出了根据本发明的实施例的一种多租户场景中应用数据库分区的装置。如图所示,该多租户场景中应用数据库分区的装置包括:用于存储租户数据的分区数据库***501,其中该分区数据库***501的每个数据库表具有一分区键字段,用于存储用于每个租户的分区键,其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***501的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***501用于对该租户的数据进行数据库分区操作。
也就是说,与现有技术中通常使用数据库表中原有的一个或多个字段(例如,租户ID)作为分区键不同,在本发明中,在每个数据库表中提供一个额外的分区键字段(即图中所示的MTDBPK字段),用于存储用于每个租户的分区键,并且用于每个租户的该分区键不是来自于该租户的原有数据,而是根据为该租户分配的分区以及数据库分区机制中分区与分区键之间的对应关系为该租户指定的。该分区键将由该分区数据库***501用于对该租户的数据进行数据库分区操作,例如当接收到来自该租户的数据访问请求时,使用该租户的分区键将该数据访问请求路由到相应的数据库分区。
根据本发明的实施例,所述数据库分区机制中分区与分区键之间的对应关系是根据以分区键为输入并以索引值为输出的散列算法以及包含索引值与分区号之间的对应关系的分区映射表确定的。
图6例示了根据本发明的实施例利用数据库分区机制为租户指定分区键的机制。如图所示,该分区数据库***501中存在两个分区,其分区号分别为0和1。首先根据某种策略为一租户分配分区。例如,为租户A分配了分区号1的分区。其次,根据分区映射表中索引值(即散列值)与分区号的对应关系确定用于该租户的索引值。例如,根据分区映射表中索引值2与分区号1之间的对应关系确定用于租户A的索引值为“2”。然后,为该租户确定这样的一分区键,该分区键应使得数据库分区机制中的散列函数对其进行散列所得的散列值等于已为该租户所确定的索引值。例如,为租户A确定的分区键可以是“2730”,因为由散列函数对“2730”进行散列所得的散列值为“2”。当然,因为可以有多个分区键,其具有同一个散列值,所以可以为一租户指定多个分区键中的任何一个。此外,既可以为每一个租户指定一个不同的分区键,也可以为多个租户指定同一个分区键。由于不同租户之间可通过租户ID相区别,因此为多个租户指定同一个分区键并不会造成不同租户的数据之间的混淆。
如图6所示,根据本发明的进一步的实施例,可以将每个租户与为每个租户指定的分区键之间的对应关系存储在一租户分区键表中,该表例如可存储在一多租户元数据储存库中,以便以后用于对租户数据进行相应的分区操作。
如图6所示,根据本发明的进一步的实施例,可以将可能的分区键的集合与相应的索引值之间的对应关系预先存储在一分区键索引值表中,该表例如可存储在多租户元数据储存库中,这样,就可以根据已使用所述分区映射表为一租户确定的索引值,通过该分区键索引值表方便地找到可用于该租户的分区键。
根据本发明的进一步的实施例,该多租户场景中应用数据库分区的装置还包括一分区键生成器506,其被配置为预先建立所述分区键索引值表,即预先创建一组可供分配的分区键集合与索引值的映射对。该分区键生成器506可以利用与所述数据库分区机制中的散列函数所使用的相同的散列算法来创建分区键集合与索引值的映射对。
由于在本发明中,如上所述首先为一租户指定分区,然后根据为该租户指定的分区为该租户指定分区键(该分区键将由分区数据库***501用于进行相应的分区操作,如将该租户的数据访问请求路由到相应的分区),而不是如在现有技术中的通常做法那样,使用租户数据中原有的某一个或几个字段(例如,租户ID)作为分区键,根据该分区键来确定该租户所属的、即租户数据访问请求将被路由于其上的分区,因此,就能够做到当向该分区数据库***501添加新的分区时,原有的租户与分区之间的对应关系并不会由数据库分区机制自动改变,从而不必在添加新的分区之后立即进行所有已改变分区的租户的数据的迁移,相反,租户数据的迁移可以在根据策略为一租户分配了新的分区时进行,且可以逐分区地而不是集中地进行,这样,当一个租户的数据进行迁移时,其他租户的数据仍然可以被访问,从而解决了现有技术中的在添加新的分区时的可用性问题。
图7例示了根据本发明的实施例向分区数据库***501添加新的分区的机制,其中当添加新的分区时不必修改现有的租户与分区之间的对应关系,且只有当确定需要迁移一租户的数据时才需要修改租户与分区之间的对应关系。参照图6,该分区数据库***501起初有两个分区,分区0和分区1,为租户A指定的分区为分区1,相应地为租户A指定的分区键为2730。参照图7,向分区数据库***501添加了两个新的分区,分区2和分区3。该两个新分区的分区号将被添加到分区映射表的空闲列,并分别与新的索引值4、5和6、7相对应。而原先的索引值0、1、2、3与分区号0、1之间的对应关系并未因新添加的分区号而改变。这意味着,当向分区数据库添加了两个新的分区后,现有的租户例如租户A的数据不必立即从分区1迁移到其他分区例如新的分区2。此后,当根据某种策略例如负载均衡策略为租户A分配新的分区2,从而需要将租户A的数据从分区1迁移到分区2时,可以根据分区映射表找到分区2所对应的索引值5,并根据分区键索引值表找到一个新的可用分区键6233,并将该新的可用分区键指定给租户A。这样,就可以通过分区数据库***501修改现有数据库表中租户A的每条记录中的分区键字段,使该字段的值等于新的分区键6233,从而由分区数据库***501自动完成租户A的数据迁移。
根据本发明的实施例,该多租户场景中应用数据库分区的装置还包括租户分区管理器502,其被配置为执行新租户上线处理,包括以下操作:响应于一租户上线,为该租户指定分区;根据数据库分区机制中分区与分区键之间的对应关系确定与该指定分区相关联的一分区键;以及存储该租户与该分区键之间的对应关系,例如将其存储在多租户元数据储存库中。
其中,所述为租户指定分区优选地是根据一策略例如负载均衡策略或循环(Round robin)策略等进行的。且如上所述,在本发明的实施例中,所述确定与该指定分区相关联的一分区键是通过所述分区映射表以及所述散列算法或分区键索引值表进行的。
根据本发明的实施例,该多租户场景中应用数据库分区的装置还包括租户数据访问管理器503,其被配置为执行租户数据访问处理,包括以下操作:响应于接收到来自一租户的数据访问请求,获取用于该租户的分区键和数据访问状态;响应于判断用于该租户的数据访问状态不是“暂停”,修改所述数据访问请求中的SQL语句以添加用于该租户的分区键,例如将该分区键添加到SQL语句的where子句中;以及调用所述分区数据库***501执行所述修改的SQL语句,从而将数据访问请求路由到相应的分区。
其中,每个租户的数据访问状态优选地存储在多租户元数据库中,并根据每个租户的数据访问状态而动态地改变。例如,如下所述,当一租户的数据正在进行数据迁移时,该租户的数据访问状态被修改为“暂停”,而当该租户的数据迁移完成,则该租户的数据访问状态被恢复为“运行”,等等。
根据本发明的实施例,该多租户场景中应用数据库分区的装置还包括分区管理器504,其被配置为执行添加新的数据库分区处理,包括以下操作:当需要添加新的数据库分区时,停止所述分区数据库***501;向所述分区映射表添加所述新的数据库分区的分区号,而不改变所述分区映射表中现有的索引值与分区号之间的对应关系;以及使用所述已添加新的分区号的分区映射表重新启动所述数据库***。当然,所述分区管理器504也可被配置为执行移除数据库分区的处理,且该处理可包括修改所述分区映射表以删除需要移除的数据库分区的分区号,以及将该数据库分区中包含的租户数据迁移到其他分区等步骤。
根据本发明的实施例,该多租户场景中应用数据库分区的装置还包括租户迁移管理器505,其中,所述租户分区管理器502被配置为响应于确定需要迁移一分区中一租户的数据,为该租户指定新的分区,并调用所述租户迁移管理器505;所述租户迁移管理器505被配置为执行租户数据迁移处理,包括以下操作:调用所述租户数据访问管理器503以将该租户的数据访问状态修改为“暂停”;根据数据库分区机制中分区与分区键之间的对应关系以及所述指定的新的分区确定用于该租户的新的分区键;启动一事务,将所述分区数据库***501的每个数据库表中该租户的数据记录的分区键字段的值更新为所述新的分区键,以便由所述分区数据库***501根据所述新的分区键自动将该租户的数据迁移到所述新的分区;响应于所述事务成功完成,将该租户与所述新的分区键之间的对应关系存储在多租户元数据储存库中;以及调用所述租户数据访问管理器503以将该租户的数据访问状态修改为“运行”。
其中,所述为该租户指定新的分区优选地是根据负载均衡策略进行的。在本发明的实施例中,每个租户的所述数据访问状态存储在多租户元数据库中。在本发明的实施例中,所述数据库分区机制中分区与分区键之间的对应关系是由前文中所述分区映射表以及散列算法或分区键索引值表确定的。
以上描述了根据本发明的实施例的多租户场景中应用数据库分区的装置,应指出的是,以上描述仅为示例性说明,而不是对本发明装置的限制。本发明的装置可以具有与所描述和图示的装置相比更多、更少或不同的组件,且各组件之间的连接关系和包含关系可以与所描述和图示的不同。例如,在本发明的其他实施例中,所述分区映射表可具有与所图示和描述的不同的结构,或者所述分区键与分区之间的对应关系也可能是由其他机制确定的,而不是通过所述分区键索引值表或散列函数和所述分区映射表来确定的。再例如,在本发明的一些实施例中,所述多租户场景中应用数据库分区的装置可以不包括所述组件中的一个或多个,或者一些组件的功能的部分或全部可以由其他组件来执行等等。
下面参照附图描述根据本发明的实施例的多租户场景中应用数据库分区的方法。该方法可以由上述根据本发明的实施例的多租户场景中应用数据库分区的装置执行,为简明起见,在以下描述中省略了与上述内容重复的部分细节。
图8示出了根据本发明的实施例的多租户场景中应用数据库分区的方法。如图所示,该方法包括在用于存储租户数据的分区数据库***501的每个数据库表中提供一分区键字段,用于存储用于每个租户的分区键,其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***501的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***501用于对该租户的数据进行数据库分区操作。
根据本发明的实施例,所述数据库分区机制中分区与分区键之间的对应关系是根据以分区键为输入并以索引值为输出的散列算法以及包含索引值与分区号之间的对应关系的分区映射表确定的。
根据本发明的实施例,该多租户场景中应用数据库分区的方法还包括预先根据所述散列算法生成可用分区键与相应的索引值,并将可用分区键与相应的索引值存储在例如多租户元数据储存库中的上述分区键索引值表中,且所述数据库分区机制中分区与分区键之间的对应关系是根据所述分区键索引值表和所述分区映射表确定的,即可以根据该分区键索引值表和分区映射表以及为租户指定的分区为该租户确定可用的分区键。
根据本发明的实施例,该多租户场景中应用数据库分区的方法还包括新租户上线处理过程,该过程优选地由前文中所述多租户场景中应用数据库分区的装置中的租户分区管理器502执行。参照图9,其示出了根据本发明的实施例的新租户上线处理过程。
如图所示,在步骤901,响应于新租户上线,为该租户指定分区。根据本发明的实施例,所述为租户指定新的分区是根据负载均衡策略或循环策略进行的。
在步骤902,根据所述数据库分区机制中分区与分区键之间的对应关系确定与该指定分区相关联的一分区键。
在步骤903,在多租户元数据储存库中存储该租户与该分区键之间的对应关系。
根据本发明的实施例,该多租户场景中应用数据库分区的方法还包括租户数据访问处理过程。该过程优选地由前文中所述多租户场景中应用数据库分区的装置中的租户数据访问管理器503执行。参照图10,其示出了根据本发明的实施例的租户数据访问处理过程。
如图所示,在步骤1001,响应于接收到来自一租户的数据访问请求,获取用于该租户的分区键和数据访问状态。
在步骤1002,响应于判断用于该租户的数据访问状态不是“暂停”,修改所述数据访问请求中的SQL语句以添加用于该租户的分区键,例如将该分区键添加到SQL语句的where子句中。
在步骤1003,调用所述分区数据库***501执行所述修改的SQL语句,从而将数据访问请求路由到相应的分区。
根据本发明的实施例,该多租户场景中应用数据库分区的方法还包括添加新分区的处理过程。该过程优选地由前文中所述多租户场景中应用数据库分区的装置中的分区管理器504执行。参照图11,其示出了根据本发明的实施例的添加新分区的处理过程。
如图所示,在步骤1101,当需要添加新的数据库分区时,停止所述分区数据库***501。
在步骤1102,向所述分区映射表添加所述新的数据库分区的分区号,而不改变所述分区映射表中现有的索引值与分区号之间的对应关系。
在步骤1103,使用所述已添加新的分区号的分区映射表重新启动所述数据库***。
根据本发明的实施例,该多租户场景中应用数据库分区的方法还包括租户数据迁移的处理过程。该过程优选地由前文中所述多租户场景中应用数据库分区的装置中的租户迁移管理器505执行。该租户数据迁移处理过程可以不必在向分区处理器***添加了新的分区之后立即进行,而是可以在任何时间进行,例如在需要对各分区中的租户数据进行负载均衡以提高数据访问性能时进行。该过程既可以由用户手工启动,也可以自动启动,例如由某种负载均衡机制基于当前各分区的负载情况以及各租户的特点和行为自动启动。此外,该过程既可以用来一次对单个租户进行数据迁移,也可以用来一次对多个租户进行数据迁移。
参照图12,其示出了根据本发明的实施例的租户数据迁移的处理过程。
如图所示,在步骤1201,响应于确定需要迁移一分区中一租户的数据,为该租户指定新的分区。根据本发明的实施例,所述为租户指定新的分区是根据负载均衡策略进行的。
在步骤1202,将该租户的数据访问状态修改为“暂停”。
在步骤1203,根据数据库分区机制中分区与分区键之间的对应关系以及所述指定的新的分区确定用于该租户的新的分区键。
在步骤1204,启动一事务,将所述分区数据库***501的每个数据库表中该租户的数据记录的分区键字段的值更新为所述新的分区键,以便由所述分区数据库***501根据所述新的分区键自动将该租户的数据迁移到所述新的分区。
在步骤1205,响应于所述事务成功完成,存储该租户与所述新的分区键之间的对应关系,例如将其存储在多租户元数据储存库中。
在步骤1206,将该租户的数据访问状态修改为“运行”。
以上参照附图描述了根据本发明的实施例的多租户场景中应用数据库分区的方法,应指出的是,以上描述仅为示例性说明,而不是对本发明的方法的限制。在本发明的其他实施例中,该多租户场景中应用数据库分区的方法可不包括以上所述的一个或多个步骤或过程,或者包括不同的其他步骤或过程,且各步骤或过程之间的顺序可以与所描述和图示的不同。再例如,尽管以上将租户的数据访问状态描述为包括“暂停”和“运行”,但租户的数据访问状态也可以包括作为替代或附加的其他状态。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机***中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机***中。适于执行本文中描述的方法的任何计算机***或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机***,当该计算机程序被加载和执行时,控制该计算机***而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机***中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。
Claims (16)
1.一种多租户场景中应用数据库分区的方法,包括:
在用于存储租户数据的分区数据库***的每个数据库表中提供一分区键字段,用于存储用于每个租户的分区键,
其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***用于对该租户的数据进行数据库分区操作。
2.根据权利要求1的方法,其中,所述数据库分区机制中分区与分区键之间的对应关系是根据以分区键为输入并以索引值为输出的散列算法以及包含索引值与分区号之间的对应关系的分区映射表确定的。
3.根据权利要求2的方法,还包括预先根据所述散列算法生成可用的分区键与相应的索引值,并将可用的分区键与相应的索引值存储在一分区键索引值表中,且所述数据库分区机制中分区与分区键之间的对应关系是根据所述分区键索引值表和所述分区映射表确定的。
4.根据权利要求1的方法,还包括:
响应于新租户上线,为该租户指定分区;
根据所述数据库分区机制中分区与分区键之间的对应关系确定与该指定分区相关联的一分区键;以及
存储该租户与该分区键之间的对应关系。
5.根据权利要求1的方法,还包括:
响应于接收到来自租户的数据访问请求,获取用于该租户的分区键和数据访问状态;
响应于判断用于该租户的数据访问状态不是“暂停”,修改所述数据访问请求中的SQL语句以添加用于该租户的分区键;以及
调用所述分区数据库***执行所述修改的SQL语句,从而将数据访问请求路由到相应的分区。
6.根据权利要求2的方法,还包括:
当需要添加新的数据库分区时,停止所述分区数据库***;
向所述分区映射表添加所述新的数据库分区的分区号,而不改变所述分区映射表中现有的索引值与分区号之间的对应关系;以及
使用所述已添加新的分区号的分区映射表重新启动所述分区数据库***。
7.根据权利要求1的方法,还包括:
响应于确定需要迁移一分区中一租户的数据,为该租户指定新的分区;
将该租户的数据访问状态修改为“暂停”;
根据数据库分区机制中分区与分区键之间的对应关系以及所述指定的新的分区确定用于该租户的新的分区键;
启动一事务,将所述分区数据库***的每个数据库表中该租户的数据记录的分区键字段的值更新为所述新的分区键,以便由所述分区数据库***根据所述新的分区键自动将该租户的数据迁移到所述新的分区;
响应于所述事务成功完成,存储该租户与所述新的分区键之间的对应关系;以及
将该租户的数据访问状态修改为“运行”。
8.根据权利要求4或7的方法,其中所述为租户指定分区或新的分区是根据负载均衡策略进行的。
9.一种多租户场景中应用数据库分区的装置,包括:
用于存储租户数据的分区数据库***,其中该分区数据库***的每个数据库表具有一分区键字段,用于存储用于每个租户的分区键,
其中,每个租户的分区键是根据为该租户指定的分区以及该分区数据库***的数据库分区机制中分区与分区键之间的对应关系为该租户指定的,且由该分区数据库***用于对该租户的数据进行数据库分区操作。
10.根据权利要求9的装置,其中,所述数据库分区机制中分区与分区键之间的对应关系是根据以分区键为输入并以索引值为输出的散列算法以及包含索引值与分区号之间的对应关系的分区映射表确定的。
11.根据权利要求10的装置,还包括一分区键生成器,其被配置为预先生成可用分区键与相应的索引值,并将可用分区键与相应的索引值存储在一分区键索引值表中,且所述数据库分区机制中分区与分区键之间的对应关系是根据所述分区键索引值表和所述分区映射表确定的。
12.根据权利要求9的装置,还包括租户分区管理器,其被配置为:
响应于新租户上线,为该租户指定分区;
根据数据库分区机制中分区与分区键之间的对应关系确定与该指定分区相关联的一分区键;以及
存储该租户与该分区键之间的对应关系。
13.根据权利要求9的装置,还包括租户数据访问管理器,其被配置为:
响应于接收到来自一租户的数据访问请求,获取用于该租户的分区键和数据访问状态;
响应于判断用于该租户的数据访问状态不是“暂停”,修改所述数据访问请求中的SQL语句以添加用于该租户的分区键;以及
调用所述分区数据库***执行所述修改的SQL语句,从而将数据访问请求路由到相应的分区。
14.根据权利要求10的装置,还包括分区管理器,其被配置为:
当需要添加新的数据库分区时,停止所述分区数据库***;
向所述分区映射表添加所述新的数据库分区的分区号,而不改变所述分区映射表中现有的索引值与分区号之间的对应关系;以及
使用所述已添加新的分区号的分区映射表重新启动所述分区数据库***。
15.根据权利要求9的装置,还包括租户迁移管理器,其中,所述租户分区管理器被配置为响应于确定需要迁移一分区中一租户的数据,为该租户指定新的分区,并调用所述租户迁移管理器;
所述租户迁移管理器被配置为:
调用所述租户数据访问管理器以将该租户的数据访问状态修改为“暂停”;
根据数据库分区机制中分区与分区键之间的对应关系以及所述指定的新的分区确定用于该租户的新的分区键;
启动一事务,将所述分区数据库***的每个数据库表中该租户的数据记录的分区键字段的值更新为所述新的分区键,以便由所述分区数据库***根据所述新的分区键自动将该租户的数据迁移到所述新的分区;
响应于所述事务成功完成,将该租户与所述新的分区键之间的对应关系存储在多租户元数据储存库中;以及
调用所述租户数据访问管理器以将该租户的数据访问状态修改为“运行”。
16.根据权利要求12或15的装置,其中所述租户分区管理器被配置为根据负载均衡策略为租户指定分区或新的分区。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810134388A CN101639835A (zh) | 2008-07-30 | 2008-07-30 | 多租户场景中应用数据库分区的方法和装置 |
US12/509,051 US8200705B2 (en) | 2008-07-30 | 2009-07-24 | Method and apparatus for applying database partitioning in a multi-tenancy scenario |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810134388A CN101639835A (zh) | 2008-07-30 | 2008-07-30 | 多租户场景中应用数据库分区的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101639835A true CN101639835A (zh) | 2010-02-03 |
Family
ID=41609510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810134388A Pending CN101639835A (zh) | 2008-07-30 | 2008-07-30 | 多租户场景中应用数据库分区的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8200705B2 (zh) |
CN (1) | CN101639835A (zh) |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340533A (zh) * | 2011-06-17 | 2012-02-01 | 中兴通讯股份有限公司 | 多租户***及多租户***存取数据的方法 |
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN103399942A (zh) * | 2013-08-14 | 2013-11-20 | 山大地纬软件股份有限公司 | 一种支持SaaS多租户的数据引擎***及其工作方法 |
CN103559224A (zh) * | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种对元数据对象进行散列的方法及装置 |
WO2014067449A1 (en) * | 2012-10-29 | 2014-05-08 | Huawei Technologies Co., Ltd. | System and method for flexible distributed massively parallel processing (mpp) database |
US8799284B2 (en) | 2012-11-30 | 2014-08-05 | Futurewei Technologies, Inc. | Method for automated scaling of a massive parallel processing (MPP) database |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN104216893A (zh) * | 2013-05-31 | 2014-12-17 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与*** |
CN104508678A (zh) * | 2012-07-30 | 2015-04-08 | 微软公司 | 商业数据***中针对承租人的安全和数据隔离 |
CN104866513A (zh) * | 2014-02-26 | 2015-08-26 | 国际商业机器公司 | 用于跨租户数据访问的***和方法 |
CN105900059A (zh) * | 2014-01-21 | 2016-08-24 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的***和方法 |
CN106462470A (zh) * | 2014-06-23 | 2017-02-22 | 甲骨文国际公司 | 用于在多租户应用服务器环境中的可移植分区的***和方法 |
CN106471477A (zh) * | 2014-07-02 | 2017-03-01 | 国际商业机器公司 | 去重复***中的基于散列的多租户 |
CN106682215A (zh) * | 2016-12-30 | 2017-05-17 | 华为技术有限公司 | 一种数据处理方法和管理节点 |
CN106909309A (zh) * | 2015-12-22 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种数据信息处理方法以及数据存储*** |
CN107133243A (zh) * | 2016-02-29 | 2017-09-05 | 华为技术有限公司 | 一种数据处理方法和服务器 |
WO2018109578A1 (en) * | 2016-12-16 | 2018-06-21 | International Business Machines Corporation | Tape processing offload to object storage |
CN108876317A (zh) * | 2018-08-20 | 2018-11-23 | 广东技术师范学院 | 一种数据管理监控方法、装置及终端设备 |
US10178184B2 (en) | 2015-01-21 | 2019-01-08 | Oracle International Corporation | System and method for session handling in a multitenant application server environment |
CN109241028A (zh) * | 2018-08-02 | 2019-01-18 | 山东浪潮通软信息科技有限公司 | 一种基于Mycat的数据库多租户实现方法 |
US10193754B2 (en) | 2014-07-14 | 2019-01-29 | Oracle International Corporation | System and method for supporting connectors in a multitenant application server environment |
WO2019037617A1 (zh) * | 2017-08-25 | 2019-02-28 | 阿里巴巴集团控股有限公司 | 数据事务处理方法、装置以及电子设备 |
US10225209B2 (en) | 2015-01-21 | 2019-03-05 | Oracle International Corporation | System and method for interceptors in a multitenant application server environment |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US10284486B2 (en) | 2014-07-10 | 2019-05-07 | Oracle International Corporation | System and method for resource isolation and consumption in a multitenant application server environment |
US10318280B2 (en) | 2014-09-24 | 2019-06-11 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10348565B2 (en) | 2014-09-25 | 2019-07-09 | Oracle International Corporation | System and method for rule-based elasticity in a multitenant application server environment |
US10348822B2 (en) | 2014-01-21 | 2019-07-09 | Oracle International Corporation | System and method for clustering in a multitenant application server environment |
US10356161B2 (en) | 2014-01-21 | 2019-07-16 | Oracle International Corporation | System and method for classloading in a multitenant application server environment |
US10382537B2 (en) | 2014-09-25 | 2019-08-13 | Oracle International Corporation | System and method for use of a global runtime in a multitenant application server environment |
US10394550B2 (en) | 2014-09-24 | 2019-08-27 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10439953B2 (en) | 2014-06-23 | 2019-10-08 | Oracle International Corporation | System and method for partition migration in a multitenant application server environment |
US10462068B2 (en) | 2014-09-25 | 2019-10-29 | Oracle International Corporation | System and method for tenant onboarding in a multitenant application server environment |
US10467061B2 (en) | 2014-09-25 | 2019-11-05 | Oracle International Corporation | System and method for resource overriding in a multitenant application server environment |
US10476938B2 (en) | 2014-01-21 | 2019-11-12 | Oracle International Corporation | System and method for multitenancy store in a multitenant application server environment |
US10523709B2 (en) | 2014-09-26 | 2019-12-31 | Oracle International Corporation | System and method for dynamic security configuration in a multitenant application server environment |
CN110799960A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 数据库租户迁移的***和方法 |
CN110799961A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 在数据库中创建和删除租户的***和方法 |
US10594619B2 (en) | 2014-06-23 | 2020-03-17 | Oracle International Corporation | System and method for supporting configuration of dynamic clusters in a multitenant application server environment |
US10635491B2 (en) | 2014-01-21 | 2020-04-28 | Oracle International Corporation | System and method for use of a multi-tenant application server with a multitasking virtual machine |
US10873627B2 (en) | 2014-06-23 | 2020-12-22 | Oracle International Corporation | System and method for supporting use of an in-memory data grid with a multitenant application server environment |
US11057272B2 (en) | 2014-09-26 | 2021-07-06 | Oracle International Corporation | System and method for transactions in a multitenant application server environment |
US11075799B2 (en) | 2017-08-24 | 2021-07-27 | Oracle International Corporation | System and method for provisioning in a multi-tenant application server environment |
US11188427B2 (en) | 2014-09-26 | 2021-11-30 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US11290532B2 (en) | 2016-12-16 | 2022-03-29 | International Business Machines Corporation | Tape reconstruction from object storage |
US11477278B2 (en) | 2014-06-24 | 2022-10-18 | Oracle International Corporation | System and method for supporting partitions in a multitenant application server environment |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101876983B (zh) * | 2009-04-30 | 2012-11-28 | 国际商业机器公司 | 数据库分区方法与*** |
US9401893B2 (en) * | 2009-12-29 | 2016-07-26 | International Business Machines Corporation | System and method for providing data security in a hosted service system |
US9081837B2 (en) * | 2010-10-28 | 2015-07-14 | Microsoft Technology Licensing, Llc | Scoped database connections |
US8805784B2 (en) * | 2010-10-28 | 2014-08-12 | Microsoft Corporation | Partitioning online databases |
US8527957B2 (en) * | 2010-11-05 | 2013-09-03 | Sap Ag | Software testing to validate tenant operations |
US8793250B1 (en) * | 2010-12-17 | 2014-07-29 | Amazon Technologies, Inc. | Flexible partitioning of data |
US9239851B1 (en) | 2012-07-12 | 2016-01-19 | Cross Commerce Media, Inc. | Advanced database systems and methods |
US8965921B2 (en) * | 2012-06-06 | 2015-02-24 | Rackspace Us, Inc. | Data management and indexing across a distributed database |
US9792320B2 (en) * | 2012-07-06 | 2017-10-17 | Box, Inc. | System and method for performing shard migration to support functions of a cloud-based service |
US9830385B2 (en) * | 2012-09-04 | 2017-11-28 | Salesforce.Com, Inc. | Methods and apparatus for partitioning data |
US9495403B2 (en) * | 2012-09-14 | 2016-11-15 | Salesforce.Com, Inc. | Method and system for cleaning data in a customer relationship management system |
US9355127B2 (en) * | 2012-10-12 | 2016-05-31 | International Business Machines Corporation | Functionality of decomposition data skew in asymmetric massively parallel processing databases |
US9256633B2 (en) | 2013-03-15 | 2016-02-09 | International Business Machines Corporation | Partitioning data for parallel processing |
US20140317093A1 (en) * | 2013-04-22 | 2014-10-23 | Salesforce.Com, Inc. | Facilitating dynamic creation of multi-column index tables and management of customer queries in an on-demand services environment |
US9519668B2 (en) * | 2013-05-06 | 2016-12-13 | International Business Machines Corporation | Lock-free creation of hash tables in parallel |
US10044799B2 (en) * | 2013-05-28 | 2018-08-07 | International Business Machines Corporation | Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner |
US9854035B2 (en) | 2013-05-28 | 2017-12-26 | International Business Machines Corporation | Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring periodic synchronization |
US20150039667A1 (en) * | 2013-08-02 | 2015-02-05 | Linkedin Corporation | Incremental processing on data intensive distributed applications |
CN104424245B (zh) | 2013-08-27 | 2017-11-24 | 国际商业机器公司 | 一种管理数据表的共享关系的方法和装置 |
CN106164898B (zh) * | 2014-10-11 | 2018-06-26 | 华为技术有限公司 | 数据处理方法和装置 |
EP3128716B1 (en) | 2014-11-05 | 2019-09-04 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
US9853873B2 (en) | 2015-01-10 | 2017-12-26 | Cisco Technology, Inc. | Diagnosis and throughput measurement of fibre channel ports in a storage area network environment |
US9900250B2 (en) | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
CN104731939B (zh) * | 2015-03-31 | 2018-05-01 | 浪潮集团有限公司 | 一种租户间通过数据表共享数据的方法 |
US10222986B2 (en) * | 2015-05-15 | 2019-03-05 | Cisco Technology, Inc. | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system |
US11588783B2 (en) | 2015-06-10 | 2023-02-21 | Cisco Technology, Inc. | Techniques for implementing IPV6-based distributed storage space |
US10778765B2 (en) | 2015-07-15 | 2020-09-15 | Cisco Technology, Inc. | Bid/ask protocol in scale-out NVMe storage |
US10078618B2 (en) | 2015-11-25 | 2018-09-18 | Box, Inc. | Accessing shared content using collaboration attribute partitioning |
US9892075B2 (en) | 2015-12-10 | 2018-02-13 | Cisco Technology, Inc. | Policy driven storage in a microserver computing environment |
US10419214B2 (en) * | 2015-12-28 | 2019-09-17 | Dell Products L.P. | Mobile device management delegate for managing isolated devices |
US11018947B2 (en) * | 2016-01-27 | 2021-05-25 | Oracle International Corporation | System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment |
US10972375B2 (en) | 2016-01-27 | 2021-04-06 | Oracle International Corporation | System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment |
US10326860B2 (en) | 2016-01-27 | 2019-06-18 | Oracle International Corporation | System and method for defining virtual machine fabric profiles of virtual machines in a high-performance computing environment |
US10140172B2 (en) | 2016-05-18 | 2018-11-27 | Cisco Technology, Inc. | Network-aware storage repairs |
US20170351639A1 (en) | 2016-06-06 | 2017-12-07 | Cisco Technology, Inc. | Remote memory access using memory mapped addressing among multiple compute nodes |
US10664169B2 (en) | 2016-06-24 | 2020-05-26 | Cisco Technology, Inc. | Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device |
US11563695B2 (en) | 2016-08-29 | 2023-01-24 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
US10817540B2 (en) * | 2016-09-02 | 2020-10-27 | Snowflake Inc. | Incremental clustering maintenance of a table |
US10545914B2 (en) | 2017-01-17 | 2020-01-28 | Cisco Technology, Inc. | Distributed object storage |
US10157053B2 (en) * | 2017-02-14 | 2018-12-18 | Arris Enterprises Llc | Modified federation architecture with reduced update time |
US10243823B1 (en) | 2017-02-24 | 2019-03-26 | Cisco Technology, Inc. | Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks |
US10713203B2 (en) | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
US10254991B2 (en) | 2017-03-06 | 2019-04-09 | Cisco Technology, Inc. | Storage area network based extended I/O metrics computation for deep insight into application performance |
US10303534B2 (en) | 2017-07-20 | 2019-05-28 | Cisco Technology, Inc. | System and method for self-healing of application centric infrastructure fabric memory |
US10404596B2 (en) | 2017-10-03 | 2019-09-03 | Cisco Technology, Inc. | Dynamic route profile storage in a hardware trie routing table |
US10942666B2 (en) | 2017-10-13 | 2021-03-09 | Cisco Technology, Inc. | Using network device replication in distributed storage clusters |
US10621167B2 (en) | 2017-10-26 | 2020-04-14 | Sap Se | Data separation and write redirection in multi-tenancy database systems |
US10482080B2 (en) | 2017-10-26 | 2019-11-19 | Sap Se | Exchanging shared containers and adapting tenants in multi-tenancy database systems |
US10713277B2 (en) | 2017-10-26 | 2020-07-14 | Sap Se | Patching content across shared and tenant containers in multi-tenancy database systems |
US10733168B2 (en) | 2017-10-26 | 2020-08-04 | Sap Se | Deploying changes to key patterns in multi-tenancy database systems |
US10740315B2 (en) | 2017-10-26 | 2020-08-11 | Sap Se | Transitioning between system sharing types in multi-tenancy database systems |
US10452646B2 (en) | 2017-10-26 | 2019-10-22 | Sap Se | Deploying changes in a multi-tenancy database system |
US10740318B2 (en) | 2017-10-26 | 2020-08-11 | Sap Se | Key pattern management in multi-tenancy database systems |
US10657276B2 (en) | 2017-10-26 | 2020-05-19 | Sap Se | System sharing types in multi-tenancy database systems |
US11308088B2 (en) * | 2017-12-28 | 2022-04-19 | Aveva Software, Llc | Associating comments with tags in a managed historian system |
US10528592B2 (en) * | 2018-01-04 | 2020-01-07 | Sap Se | Database scaling for multi-tenant applications |
US10685031B2 (en) * | 2018-03-27 | 2020-06-16 | New Relic, Inc. | Dynamic hash partitioning for large-scale database management systems |
US10915551B2 (en) | 2018-06-04 | 2021-02-09 | Sap Se | Change management for shared objects in multi-tenancy systems |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
US11354168B2 (en) * | 2019-01-18 | 2022-06-07 | Salesforce.Com, Inc. | Elastic data partitioning of a database |
US10817466B2 (en) | 2019-03-22 | 2020-10-27 | Bank Of America Corporation | Dynamic server pool data segmentation using dynamic ordinal partition key without locks |
CN111538718B (zh) * | 2020-04-22 | 2023-10-27 | 杭州宇为科技有限公司 | 分布式***的实体id生成和定位方法、扩容方法及设备 |
US20220121667A1 (en) * | 2020-10-15 | 2022-04-21 | Salesforce.Com, Inc. | Database virtual partitioning |
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
US20230067776A1 (en) * | 2021-08-20 | 2023-03-02 | Salesforce.Com, Inc. | Multi-Tenant Partitioned Data Store Using Key/Value Buckets |
CN115062092B (zh) * | 2022-08-10 | 2023-02-03 | 阿里云计算有限公司 | 数据库访问方法、设备、***及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171524B2 (en) * | 1995-10-02 | 2012-05-01 | Corestreet, Ltd. | Physical access control |
US7069434B1 (en) | 2000-06-13 | 2006-06-27 | Hewlett-Packard Development Company, L.P. | Secure data transfer method and system |
US20030163692A1 (en) * | 2002-01-31 | 2003-08-28 | Brocade Communications Systems, Inc. | Network security and applications to the fabric |
US7873984B2 (en) * | 2002-01-31 | 2011-01-18 | Brocade Communications Systems, Inc. | Network security through configuration servers in the fabric environment |
US7124141B2 (en) * | 2002-05-24 | 2006-10-17 | Oracle International Corporation | Method and apparatus for partitioned based purging of data |
US7174345B2 (en) * | 2003-05-30 | 2007-02-06 | Oracle International Corporation | Methods and systems for auto-partitioning of schema objects |
US20060173733A1 (en) * | 2005-01-07 | 2006-08-03 | Mark Fancher | System and method for centralized parking management |
US8095531B2 (en) * | 2006-10-03 | 2012-01-10 | Salesforce.Com, Inc. | Methods and systems for controlling access to custom objects in a database |
US7603339B2 (en) * | 2006-11-16 | 2009-10-13 | Oracle International Corporation | Merging synopses to determine number of distinct values in large databases |
US10007767B1 (en) * | 2007-12-21 | 2018-06-26 | EMC IP Holding Company LLC | System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service |
US8972978B2 (en) * | 2008-05-02 | 2015-03-03 | Skytap | Multitenant hosted virtual machine infrastructure |
-
2008
- 2008-07-30 CN CN200810134388A patent/CN101639835A/zh active Pending
-
2009
- 2009-07-24 US US12/509,051 patent/US8200705B2/en not_active Expired - Fee Related
Cited By (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340533B (zh) * | 2011-06-17 | 2017-03-15 | 中兴通讯股份有限公司 | 多租户***及多租户***存取数据的方法 |
CN102340533A (zh) * | 2011-06-17 | 2012-02-01 | 中兴通讯股份有限公司 | 多租户***及多租户***存取数据的方法 |
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN104160381B (zh) * | 2012-03-08 | 2017-05-17 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理方法及其*** |
CN104508678B (zh) * | 2012-07-30 | 2018-10-16 | 微软技术许可有限责任公司 | 商业数据***中针对承租人的安全和数据隔离 |
CN104508678A (zh) * | 2012-07-30 | 2015-04-08 | 微软公司 | 商业数据***中针对承租人的安全和数据隔离 |
US9959423B2 (en) | 2012-07-30 | 2018-05-01 | Microsoft Technology Licensing, Llc | Security and data isolation for tenants in a business data system |
WO2014067449A1 (en) * | 2012-10-29 | 2014-05-08 | Huawei Technologies Co., Ltd. | System and method for flexible distributed massively parallel processing (mpp) database |
US9195701B2 (en) | 2012-10-29 | 2015-11-24 | Futurewei Technologies, Inc. | System and method for flexible distributed massively parallel processing (MPP) database |
US8799284B2 (en) | 2012-11-30 | 2014-08-05 | Futurewei Technologies, Inc. | Method for automated scaling of a massive parallel processing (MPP) database |
CN104216893A (zh) * | 2013-05-31 | 2014-12-17 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与*** |
CN104216893B (zh) * | 2013-05-31 | 2018-01-16 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与*** |
CN103399942B (zh) * | 2013-08-14 | 2016-06-29 | 山大地纬软件股份有限公司 | 一种支持SaaS多租户的数据引擎***及其工作方法 |
CN103399942A (zh) * | 2013-08-14 | 2013-11-20 | 山大地纬软件股份有限公司 | 一种支持SaaS多租户的数据引擎***及其工作方法 |
CN103559224A (zh) * | 2013-10-18 | 2014-02-05 | 华为技术有限公司 | 一种对元数据对象进行散列的方法及装置 |
CN105900059B (zh) * | 2014-01-21 | 2019-06-07 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的***和方法 |
US10742568B2 (en) | 2014-01-21 | 2020-08-11 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US11683274B2 (en) | 2014-01-21 | 2023-06-20 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US10348822B2 (en) | 2014-01-21 | 2019-07-09 | Oracle International Corporation | System and method for clustering in a multitenant application server environment |
US10476938B2 (en) | 2014-01-21 | 2019-11-12 | Oracle International Corporation | System and method for multitenancy store in a multitenant application server environment |
US10356161B2 (en) | 2014-01-21 | 2019-07-16 | Oracle International Corporation | System and method for classloading in a multitenant application server environment |
US10635491B2 (en) | 2014-01-21 | 2020-04-28 | Oracle International Corporation | System and method for use of a multi-tenant application server with a multitasking virtual machine |
CN105900059A (zh) * | 2014-01-21 | 2016-08-24 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的***和方法 |
US11343200B2 (en) | 2014-01-21 | 2022-05-24 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US10152577B2 (en) | 2014-02-26 | 2018-12-11 | International Business Machines Corporation | Cross tenant data access |
CN104866513A (zh) * | 2014-02-26 | 2015-08-26 | 国际商业机器公司 | 用于跨租户数据访问的***和方法 |
US10594619B2 (en) | 2014-06-23 | 2020-03-17 | Oracle International Corporation | System and method for supporting configuration of dynamic clusters in a multitenant application server environment |
US10873627B2 (en) | 2014-06-23 | 2020-12-22 | Oracle International Corporation | System and method for supporting use of an in-memory data grid with a multitenant application server environment |
US10439953B2 (en) | 2014-06-23 | 2019-10-08 | Oracle International Corporation | System and method for partition migration in a multitenant application server environment |
CN106462470B (zh) * | 2014-06-23 | 2020-01-21 | 甲骨文国际公司 | 用于在多租户应用服务器环境中的可移植分区的***和方法 |
CN106462470A (zh) * | 2014-06-23 | 2017-02-22 | 甲骨文国际公司 | 用于在多租户应用服务器环境中的可移植分区的***和方法 |
US11477278B2 (en) | 2014-06-24 | 2022-10-18 | Oracle International Corporation | System and method for supporting partitions in a multitenant application server environment |
US10803019B2 (en) | 2014-07-02 | 2020-10-13 | International Business Machines Corporation | Hash-based multi-tenancy in a deduplication system |
CN106471477A (zh) * | 2014-07-02 | 2017-03-01 | 国际商业机器公司 | 去重复***中的基于散列的多租户 |
US11394657B2 (en) | 2014-07-10 | 2022-07-19 | Oracle International Corporation | System and method for resource isolation and consumption in a multitenant application server environment |
US10284486B2 (en) | 2014-07-10 | 2019-05-07 | Oracle International Corporation | System and method for resource isolation and consumption in a multitenant application server environment |
US10673776B2 (en) | 2014-07-10 | 2020-06-02 | Oracle International Corporation | System and method for resource isolation and consumption in a multitenant application server environment |
US10193754B2 (en) | 2014-07-14 | 2019-01-29 | Oracle International Corporation | System and method for supporting connectors in a multitenant application server environment |
US10318280B2 (en) | 2014-09-24 | 2019-06-11 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10853055B2 (en) | 2014-09-24 | 2020-12-01 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10394550B2 (en) | 2014-09-24 | 2019-08-27 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10853056B2 (en) | 2014-09-24 | 2020-12-01 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US11880679B2 (en) | 2014-09-24 | 2024-01-23 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US11449330B2 (en) | 2014-09-24 | 2022-09-20 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10382537B2 (en) | 2014-09-25 | 2019-08-13 | Oracle International Corporation | System and method for use of a global runtime in a multitenant application server environment |
US10462068B2 (en) | 2014-09-25 | 2019-10-29 | Oracle International Corporation | System and method for tenant onboarding in a multitenant application server environment |
US10873624B2 (en) | 2014-09-25 | 2020-12-22 | Oracle International Corporation | System and method for use of a global runtime in a multitenant application server environment |
US10348565B2 (en) | 2014-09-25 | 2019-07-09 | Oracle International Corporation | System and method for rule-based elasticity in a multitenant application server environment |
US10467061B2 (en) | 2014-09-25 | 2019-11-05 | Oracle International Corporation | System and method for resource overriding in a multitenant application server environment |
US10469401B2 (en) | 2014-09-25 | 2019-11-05 | Oracle International Corporation | System and method for supporting lifecycle plugins in a multitenant application server environment |
US11994959B2 (en) | 2014-09-26 | 2024-05-28 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US10523709B2 (en) | 2014-09-26 | 2019-12-31 | Oracle International Corporation | System and method for dynamic security configuration in a multitenant application server environment |
US11188427B2 (en) | 2014-09-26 | 2021-11-30 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US11057272B2 (en) | 2014-09-26 | 2021-07-06 | Oracle International Corporation | System and method for transactions in a multitenant application server environment |
US10951655B2 (en) | 2014-09-26 | 2021-03-16 | Oracle International Corporation | System and method for dynamic reconfiguration in a multitenant application server environment |
US10178184B2 (en) | 2015-01-21 | 2019-01-08 | Oracle International Corporation | System and method for session handling in a multitenant application server environment |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US10225209B2 (en) | 2015-01-21 | 2019-03-05 | Oracle International Corporation | System and method for interceptors in a multitenant application server environment |
CN106909309A (zh) * | 2015-12-22 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种数据信息处理方法以及数据存储*** |
US10977230B2 (en) | 2015-12-22 | 2021-04-13 | Alibaba Group Holding Limited | Data information processing method and data storage system |
CN106909309B (zh) * | 2015-12-22 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种数据信息处理方法以及数据存储*** |
CN107133243A (zh) * | 2016-02-29 | 2017-09-05 | 华为技术有限公司 | 一种数据处理方法和服务器 |
US10430602B2 (en) | 2016-12-16 | 2019-10-01 | International Business Machines Corporation | Tape processing offload to object storage |
US11132458B2 (en) | 2016-12-16 | 2021-09-28 | International Business Machines Corporation | Tape processing offload to object storage |
US11290532B2 (en) | 2016-12-16 | 2022-03-29 | International Business Machines Corporation | Tape reconstruction from object storage |
CN110088743A (zh) * | 2016-12-16 | 2019-08-02 | 国际商业机器公司 | 磁带处理卸载到对象存储 |
WO2018109578A1 (en) * | 2016-12-16 | 2018-06-21 | International Business Machines Corporation | Tape processing offload to object storage |
CN106682215A (zh) * | 2016-12-30 | 2017-05-17 | 华为技术有限公司 | 一种数据处理方法和管理节点 |
CN106682215B (zh) * | 2016-12-30 | 2020-04-28 | 华为技术有限公司 | 一种数据处理方法和管理节点 |
CN110799960B (zh) * | 2017-06-27 | 2023-12-08 | 硕动力公司 | 数据库租户迁移的***和方法 |
CN110799960A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 数据库租户迁移的***和方法 |
CN110799961A (zh) * | 2017-06-27 | 2020-02-14 | 易享信息技术有限公司 | 在数据库中创建和删除租户的***和方法 |
CN110799961B (zh) * | 2017-06-27 | 2023-12-26 | 硕动力公司 | 在数据库中创建和删除租户的***和方法 |
US11075799B2 (en) | 2017-08-24 | 2021-07-27 | Oracle International Corporation | System and method for provisioning in a multi-tenant application server environment |
WO2019037617A1 (zh) * | 2017-08-25 | 2019-02-28 | 阿里巴巴集团控股有限公司 | 数据事务处理方法、装置以及电子设备 |
US11709803B2 (en) | 2017-08-25 | 2023-07-25 | Alibaba Group Holding Limited | Data transaction processing method, apparatus, and electronic device |
CN109241028A (zh) * | 2018-08-02 | 2019-01-18 | 山东浪潮通软信息科技有限公司 | 一种基于Mycat的数据库多租户实现方法 |
CN108876317A (zh) * | 2018-08-20 | 2018-11-23 | 广东技术师范学院 | 一种数据管理监控方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
US20100030995A1 (en) | 2010-02-04 |
US8200705B2 (en) | 2012-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101639835A (zh) | 多租户场景中应用数据库分区的方法和装置 | |
US11341139B2 (en) | Incremental and collocated redistribution for expansion of online shared nothing database | |
US8543596B1 (en) | Assigning blocks of a file of a distributed file system to processing units of a parallel database management system | |
US10402424B1 (en) | Dynamic tree determination for data processing | |
JP5798248B2 (ja) | 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法 | |
US9996593B1 (en) | Parallel processing framework | |
US9965511B2 (en) | Method and system for optimizing queries in a multi-tenant database environment | |
CN102395962B (zh) | 对数据库表的哈希和列表组合划分 | |
US10534770B2 (en) | Parallelizing SQL on distributed file systems | |
US20120330924A1 (en) | Method and system for querying an on demand database service | |
CN101405728B (zh) | 具有动态加载能力的关系数据库架构 | |
US20120109926A1 (en) | Scoped database connections | |
US10963464B2 (en) | Multiple partitioning schemes for partitioned database objects | |
CN103455526A (zh) | 一种etl数据处理方法、装置及*** | |
US8589394B2 (en) | System and method for dynamically configuring a multi-model node table | |
Chen et al. | Bestpeer++: A peer-to-peer based large-scale data processing platform | |
US9875270B1 (en) | Locking item ranges for creating a secondary index from an online table | |
US11308066B1 (en) | Optimized database partitioning | |
US20200250192A1 (en) | Processing queries associated with multiple file formats based on identified partition and data container objects | |
US20220237506A1 (en) | Using container and model information to select containers for executing models | |
WO2016191995A1 (zh) | 一种分布式数据库中关联表分区的方法和设备 | |
US9239852B1 (en) | Item collections | |
US20080288563A1 (en) | Allocation and redistribution of data among storage devices | |
US20150046399A1 (en) | Computer system, data allocation management method, and program | |
US7236971B1 (en) | Method and system for deriving data through interpolation in a database system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100203 |