CN101996214B - 用于处理数据库操作请求的方法和装置 - Google Patents
用于处理数据库操作请求的方法和装置 Download PDFInfo
- Publication number
- CN101996214B CN101996214B CN200910170957XA CN200910170957A CN101996214B CN 101996214 B CN101996214 B CN 101996214B CN 200910170957X A CN200910170957X A CN 200910170957XA CN 200910170957 A CN200910170957 A CN 200910170957A CN 101996214 B CN101996214 B CN 101996214B
- Authority
- CN
- China
- Prior art keywords
- request
- heavy load
- database manipulation
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 title abstract description 7
- 238000005192 partition Methods 0.000 claims description 157
- 230000008569 process Effects 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000002955 isolation Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001052 transient effect 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24557—Efficient disk access during query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种用于处理数据库操作请求的方法和系统,该方法包括:接收来自用户的数据库操作请求;判断该数据库操作请求是否是重负荷请求;如果该数据库操作请求是重负荷请求,则将该数据库操作请求路由到用于处理重负荷请求的重负荷请求数据库分区进行处理,并将该数据库操作请求所影响的数据范围记录在元数据储存库中,其中所述重负荷请求数据库分区在原有的正常数据库分区之外设置的。
Description
技术领域
本发明涉及数据处理领域,具体涉及软件即服务(SaaS)系统。
背景技术
SaaS(Software as a Service)系统的目的是将软件作为一种服务以降低用户的软件购置和维护成本。在SaaS环境中,大量用户(租户)共享应用实例和数据库。
然而,由于在SaaS环境中,数据库系统是在不同租户之间共享的,因此,某个租户的重负荷数据库操作可能会影响其他租户的正常使用。数据库系统中的某些操作,例如租户上线(on-boarding)和运行期间的数据导入/导出、数据迁移、数据备份/恢复等,会占用大量的磁盘I/O和CPU,从而影响系统处理其他租户请求的性能。大规模的数据迁移或导入有可能持续数小时,在这期间可能会对增加其他租户请求的请求的响应时间,甚至导致不能正常访问系统,这对于其他租户来说是无法接受的。
传统上,解决这个问题的最常用的方法是异步处理重负荷请求。该方法寻找空闲时间来处理重负荷请求以避免影响正常处理。但从业务要求的角度这种延迟响应的方式是不可接受的。在SaaS环境中,甚至无法就此与租户达成协议。就是说,在大多数情况下,重负荷事务请求需要实时响应,而不能离线或异步处理。
另一种方法是对租户操作进行速率控制,例如,限制每个租户能使用的最大资源量。然而,这使得资源利用率不能最大化,从整个系统的角度看无法利用系统的最大共享能力。在SaaS环境中,资源利用率是一种关键要素,使资源利用率最大化通常是需要的。
因此,本领域中需要一种更有效的用于隔离SaaS应用的租户间应用数据库操作性能影响的方法和装置。
发明内容
在本发明的一个方面,提供了一种用于处理数据库操作请求的方法,包括:接收来自用户的数据库操作请求;判断该数据库操作请求是否是重负荷请求;如果该数据库操作请求是重负荷请求,则将该数据库操作请求路由到用于处理重负荷请求的重负荷请求数据库分区进行处理,并将该数据库操作请求所影响的数据范围记录在元数据储存库中,其中所述重负荷请求数据库分区是在原有的正常数据库分区之外设置的。
在本发明的另一个方面,提供了一种用于处理数据库操作请求的系统,包括:请求分析器,用于接收来自用户的数据库操作请求,判断该数据库操作请求是否是重负荷请求;以及请求处理器,用于如果该数据库操作请求是重负荷请求,则将该数据库操作请求路由到重负荷请求数据库分区进行处理,以及将该数据库操作请求所影响的数据范围记录在元数据储存库中,其中所述重负荷请求数据库分区是在原有的正常数据库分区之外设置的。
本发明的优点包括:
提供了一种隔离租户间的性能影响的有效方法:对于没有任何重负荷请求的租户而言,其所有请求将被直接路由到正常数据库分区,而不受重负荷请求数据库分区上的重负荷请求处理的任何影响。
重负荷请求将获得实时响应,而不是延迟响应。
提高了整体系统性能,因为重负荷请求被路由到备用分区,整体系统性能得到提高。
该方法可以容易地与应用集成,应用可获得性能影响隔离的好处而无需更改或只需很少更改。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是,通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身以及其优选使用模式、目标、特征以及优点,在附图中:
图1示意性地示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的系统;
图2示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法的准备阶段;
图3示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法的运行时阶段;以及
图4示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法的离线处理阶段。
具体实施方式
下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。
本发明提出了一种用于隔离租户间的性能影响的方法。本发明的核心思想在于,通过将数据库分区并将重负荷请求和正常请求路由到不同的分区达到隔离租户间的性能影响的目的。在该方法中,通过将数据库分区得到额外的数据库节点,用额外的数据库节点暂时存储由重负荷请求产生的数据,该数据库节点可称为重负荷请求数据库分区。由正常数据库分区总是处理正常请求,就像应用正常运行一样,而重负荷请求数据库分区专用于处理重负荷请求。这样,正常请求处理与重负荷请求处理相隔离,从而避免了重负荷请求处理对正常请求处理的影响。
现参照图1,其示意性地示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的系统100。如图所示,该系统100位于SaaS应用和分区数据库管理系统之间,并优选地至少部分地在数据库驱动器或其包装例如一JDBC wrapper中实现。所述分区数据库系统为本领域中所知的任何分区数据库系统,且包括一个用于存储正常的租户数据的正常数据库分区以及一个额外增加的用于存储重负荷请求所产生的租户数据的重负荷请求数据库分区。正常数据库分区和重负荷请求数据库分区具有不同的分区键,例如正常数据库分区的分区键PK=0,而重负荷请求数据库分区的分区键PK=1。
如图所示,该用于隔离SaaS租户间应用数据库操作性能影响的系统100可包括请求分析器110、请求处理器120、元数据储存库130以及表转换及数据同步器140。其中,请求处理器120进一步可包括正常请求处理器121、重负荷请求处理器122,可选的包括特殊租户处理器123。元数据储存库130中可存储有分区键映射表、受影响数据范围表,可选的存储特殊租户列表等。表转换及数据同步器140包括表转换器141、数据同步器143,可选的包括请求和成本统计器142。
请求分析器110用于分析来自SaaS应用的数据库操作请求,识别所述请求是正常请求还是重负荷请求。可选的,请求分析器110还判断所述请求是否是来自特殊租户的请求。然后,请求分析器110将经过分析和识别、可选的经过判断的请求发送到相应模块以进行相应的后续处理,例如将正常请求发送到正常请求处理器122处理,将重负荷请求发送到重负荷请求处理器123处理,将来自特殊租户的请求发送到特殊租户处理器121处理。正常请求是指对数据库管理系统将不会造成较大负荷的请求,重负荷请求是指将对数据库管理系统造成较大负荷的请求,而特殊租户是指频繁进行重负荷请求的租户。
请求分析器110可采用多种方法来识别来自SaaS应用的数据库操作请求是正常请求还是重负荷请求。例如,SaaS应用的开发者可以事先将通常会造成较重的数据库管理系统处理负荷的重负荷的SQL语句注册到元数据储存库130中,这样,请求分析器110可以通过将当前请求中包含的SQL语句与元数据储存库130中注册的SQL语句进行比较来判断当前请求是否是重负荷请求。再例如,SaaS应用的开发者可以通过AOP(面向方面的编程)机制或简单编程将应用中的可能造成较重的数据库系统处理负荷的特定事务设置为重负荷事务,这样,请求分析器110可以通过读取所述设置判断当前事务是否是重负荷事务,并进而确定当前请求是否是重负荷请求。
可选的,可以由请求和成本统计器142收集关于各租户的数据库访问操作的访问统计信息,包括每次访问的租户ID、SQL、影响时间、数据大小等,从中识别出经常发起重负荷请求的租户,并将这些租户作为特殊租户记录在元数据储存库的特殊租户列表中。这样,请求分析器110就可以通过将发起当前请求的租户与元数据储存库中的特殊租户列表比较来判断当前请求是否是来自特殊租户的请求。
请求分析器110可以将非重负荷请求识别为正常请求,可选的可以将既非重负荷请求又不是来自特殊租户的请求的所有其他请求识别为正常请求。
正常请求处理器121用于处理由请求分析器110发送的来自SaaS应用的正常数据库操作请求。响应于接收到正常请求,正常请求处理器121首先通过读取元数据储存库中的受影响数据范围表来判断所请求操作的数据是否属于受影响数据范围。如果判断所请求操作的数据不属于受影响数据范围,说明所请求操作的数据仅位于(或将位于)正常数据库分区中,则正常请求处理器121向请求中的SQL语句添加正常数据库分区的分区键,然后将请求发送给分区数据库管理系统,以便由分区数据库管理系统根据分区键自动将请求路由到正常数据库分区以进行相应的操作。如果判断所请求操作的数据属于受影响数据范围,说明所请求操作的数据至少位于重负荷数据库分区中,则正常请求处理器121不向请求中的SQL语句添加正常数据库分区和重负荷请求数据库分区的分区键,并将请求发送给分区数据库管理系统,以便由分区数据库管理系统自动将请求路由到正常数据库分区以及重负荷数据库分区以进行相应的操作。
重负荷请求处理器122用于处理由请求分析器110发送来的来自SaaS应用的重负荷数据库操作请求。响应于接收到重负荷请求,重负荷请求处理器122还将请求所影响的数据范围记录在元数据储存库中。此外,重负荷请求处理器122判断该重负荷请求是否是数据插入请求。如果该重负荷请求是数据插入请求,则重负荷请求处理器122向请求中的SQL语句添加重负荷请求数据库分区的分区键,然后将请求发送给分区数据库管理系统,以便由分区数据库管理系统根据分区键自动将请求路由到重负荷数据库分区,以进行相应的数据插入操作。如果该重负荷请求不是数据插入请求,例如是数据读取或更新请求,则重负荷请求处理器122不向请求中的SQL语句添加正常数据库分区和重负荷请求数据库分区的分区键,并将请求发送给分区数据库管理系统,以便由分区数据库管理系统自动将请求路由到重负荷数据库分区以及正常数据库分区,以分别进行相应的数据更新和读取操作。
可选的,特殊租户处理器123用于处理由请求分析器110发送来的来自于特殊租户的数据库操作请求。响应于接收到来自特殊租户的请求,特殊租户处理器123向请求中的SQL语句添加重负荷请求数据库分区的分区键,然后将请求发送给分区数据库管理系统,以便由分区数据库管理系统自动地将请求路由到重负荷数据库分区,以进行相应的操作。
元数据储存库130中的受影响数据范围表用于记录受重负荷请求影响的数据范围,即被存储在重负荷请求数据库分区中的数据的范围。受影响的数据范围可通过SaaS应用中的租户、数据库表或其他更细粒度的数据库操作或其组合来区分。例如,图1中例示了一个受影响数据范围表的内容,其中示出了租户t1和数据库表sales为一个受影响的数据范围,表明租户t1的sales表中的数据被存储在特殊请求数据库分区中,类型“重负荷”表明该受影响的数据范围是由重负荷请求产生的,且时间戳中示出了在重负荷请求数据库分区中产生相应数据的时间;此外,示出了租户t2和数据库表sales为另一个受影响的数据范围,表明租户t2的sales表中的数据被存储在特殊请求数据库分区中,类型“特殊”表明该受影响的数据范围是根据特殊租户产生的,且时间戳中示出了在重负荷请求数据库分区中产生相应数据的时间。
表转换器141用于修改正常数据库分区中的各数据库表,以向每个数据库表添加一个分区键字段,以及将正常数据库分区中的各数据库表的结构复制到重负荷请求数据库分区。表转换器141可以在准备阶段,例如当SaaS应用安装时,执行上述操作。
请求和成本统计器142,如上所述,用于通过收集关于各租户的数据库操作请求的统计信息,来识别经常发起重负荷请求的特殊租户,并将所述特殊租户记录在元数据储存库中的特殊租户列表中。
数据同步器143用于通过修改分区中数据的分区键使得数据自动被迁移到另一分区。例如,数据同步器143可以在系统空闲时修改重负荷请求数据库分区中的数据的分区键,以便使分区数据库管理系统根据修改后的分区键自动将数据同步到正常分区中,并且修改元数据储存库中的受影响数据范围表以反映当前的数据状态,例如删除与已被同步到正常数据库分区的数据有关的受影响数据范围。经过同步,未来对相应数据的访问请求只需要被路由到正常数据库分区,而无需路由到重负荷数据库分区,从而使系统更为高效。
此外,数据同步器143可以通过修改正常数据库分区中由请求和成本统计器142识别出的特殊租户的数据的分区键,将特殊租户的数据从正常数据库分区迁移到重负荷数据库分区。
以上参照附图描述了本发明的实施例。应指出的是,以上描述仅为示例性说明,而不是对本发明的限制。本发明的实施例可具有更多、更少或不同的模块,且不同模块之间的包含和连接关系可以与所描述的不同。例如,在本发明的一些实施例中,可以包括两个或两个以上的重负荷请求数据库分区;在本发明的另一些实施例中,可以不包括所述特殊租户处理器121及对特殊租户的识别、处理等功能;等等。所述这些变化都处于本发明的精神和范围之内。
现参照图2,其示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法的准备阶段。该准备阶段可以在SaaS应用启动之前,例如在SaaS应用安装时执行。如图所示,该准备阶段包括以下步骤:
在步骤201,向SaaS应用的用于存储租户数据的各数据库表添加一个分区键字段。
在步骤202,向SaaS应用的分区数据库管理系统添加一个额外的重负荷请求数据库分区,使得分区数据库管理系统包括原来的正常数据库分区以及新增加的重负荷请求数据库分区,并将正常数据库分区中用于存储租户数据的各数据库表结构复制到重负荷请求数据库分区中。
在步骤203,为每个数据库分区指定一个不同的分区键,并在元数据储存库中维护分区键和数据库分区之间的映射。
以上步骤可以由前述表转换器141执行。
现参照图3,其示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法的运行时阶段。该阶段可以在SaaS应用运行时执行。如图所示,该运行时阶段包括以下步骤:
在步骤301,响应于接收到来自租户的请求,识别发送该请求的租户。
在可选步骤302,通过将识别的租户与元数据储存库中的特殊租户列表进行比较来判断该请求是否来自于特殊租户。
响应于该判断为是,执行可选步骤303。响应于该判断为否,执行步骤305。
在可选步骤303,将该请求发送到特殊租户处理器进行处理。
在可选步骤304,特殊租户处理器通过向请求添加重负荷数据库分区的分区键,例如将分区键作为条件子句添加到请求的SQL语句中,由分区数据库管理系统自动将请求发送到重负荷请求数据库分区进行处理。
在步骤305,判断该请求是否是重负荷请求。如果该判断否,则执行步骤306;如果该判断为是,则执行步骤311。
在步骤306,将请求发送到正常请求处理器。
在步骤307,正常请求处理器读取元数据储存库中的受影响数据范围表。
在步骤308,正常请求处理器根据受影响数据范围表判断该请求涉及的数据是否属于受影响数据范围。如果该判断为否,则执行步骤309;如果该判断为是,则执行步骤310。
在步骤309,由于该请求涉及的数据不属于受影响的数据范围,说明数据仅存在于正常数据库分区中,而不存在于重负荷数据库分区中,因此,向请求添加正常数据库分区的分区键,例如将分区键作为条件子句添加到请求的SQL语句中,然后将请求发送到分区数据库管理系统,以便由分区数据库管理系统根据分区键自动将请求路由到正常数据库分区进行处理。
在步骤310,由于该请求涉及的数据属于受影响的数据范围,说明数据至少存在于重负荷数据库分区中,因此,不向请求中的SQL语句添加正常数据库分区和重负荷请求数据库分区的分区键,而是直接将请求发送到分区数据库管理系统,以便由分区数据库管理系统根据自动将请求路由到正常数据库分区以及重负荷数据库分区中进行处理。
在步骤311,将请求发送到重负荷请求处理器。
在步骤312,重负荷请求处理器更新元数据储存库中的受影响数据范围表,以将当前请求所影响的数据范围记录在受影响数据范围表中。
在步骤313,重负荷请求处理器判断该请求是否是数据插入请求。如果该判断为是,则执行步骤314。如果该判断为否,则执行步骤315。
在步骤314,重负荷请求处理器向请求添加重负荷请求数据库分区的分区键,例如将分区键作为条件子句添加到请求的SQL语句中,然后将请求发送给分区数据库管理系统,以便由分区数据库管理系统根据分区键自动将请求路由到重负荷数据库分区进行处理。
在步骤315,重负荷请求处理器不向请求中的SQL语句添加正常数据库分区和重负荷请求数据库分区的分区键,并将请求发送给分区数据库管理系统,以便由分区数据库管理系统自动将请求路由到正常数据库分区以及重负荷数据库分区进行处理、
在本发明的一些实施例中,可以不包括上述步骤313、315。而是在步骤312之后,执行步骤314。此外,在本发明的一些实施例中,步骤312可以在步骤314或315之后执行。
现参照图4,其示出了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法的离线处理阶段。如图所示,该阶段包括以下步骤:
在步骤401,系统统处于空闲状态。随后,分别执行步骤402和步骤404。
在步骤402,数据同步器通过将重负荷请求数据库分区中的数据的分区键修改为正常数据库分区的分区键,使得分区数据库管理系统自动将重负荷请求数据库分区中的数据同步到正常数据库分区中。
在步骤403,更新元数据储存库中的受影响数据范围表,以去除与被同步的数据相关的受影响数据范围。
在步骤404,请求和成本统计器收集关于所有租户的数据库访问的统计信息,包括租户ID、SQL语句、响应时间、数据大小等。
在步骤405,请求和成本统计器根据所收集的统计信息识别经常发起重负荷请求的特殊租户。
在步骤406,将所识别的租户作为特殊租户记录在元数据储存库中的特殊租户列表中。
以上描述了根据本发明的实施例的用于隔离SaaS租户间应用数据库操作性能影响的方法。应指出的是,以上描述仅为示例,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更不或不同的步骤。例如,在本发明的一些实施例中,可以没有判断请求是否来自特殊租户的步骤302,以及对特殊租户的相应处理步骤303、304;在本发明一些实施例中,可以没有将请求发送到正常请求处理器的步骤306、将请求发送到重负荷请求处理器的步骤311、和将请求发送到特殊租户处理器的步骤303,而是根据对请求的分析直接对请求进行相应的处理;此外,可以将上述多个步骤进行合并与概括,例如上述步骤313、314、315可以概括为一个步骤,在该步骤中,如果该数据库操作请求是重负荷请求,则将该数据库操作请求路由到用于处理重负荷请求的重负荷请求数据库分区进行处理,等等。所有这些变化都处于本发明的精神和范围之内。
本发明可以硬件、软件、或硬件与软件的结合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,并构成本发明的装置。
本发明也可体现在计算机程序产品中,该程序产品包含使能实现本文中描述的方法的所有特征,并且当其被加载到计算机系统中时,能够执行所述方法。
尽管已参照优选实施例具体示出和说明了本发明,但是本领域内的那些技术人员应理解,可在形式和细节上对其进行各种改变而不会背离本发明的精神和范围。
Claims (18)
1.一种用于在SaaS环境下隔离租户间的性能影响的方法,包括:
接收来自用户的数据库操作请求;
判断该数据库操作请求是否是重负荷请求;
如果该数据库操作请求是重负荷请求,则将该数据库操作请求路由到用于处理重负荷请求的重负荷请求数据库分区进行处理,并将该数据库操作请求所影响的数据范围记录在元数据储存库中;
其中所述重负荷请求数据库分区是在原有的正常数据库分区之外设置的。
2.根据权利要求1的方法,其中所述正常数据库分区和所述重负荷请求数据库分区具有相同的表结构,该表结构包含分区键字段,所述正常数据库分区和所述重负荷请求数据库分区具有不同的分区键。
3.根据权利要求2的方法,其中所述将该数据库操作请求路由到用于处理重负荷请求的重负荷请求数据库分区进行处理包括:
向该数据库操作请求添加重负荷请求数据库分区的分区键;
将添加了分区键的该数据库操作请求发送到分区数据库管理系统。
4.根据权利要求2的方法,还包括:
如果该数据库操作请求不是重负荷请求,进一步判断该数据库操作请求所涉及的数据是否属于元数据储存库中记录的受影响的数据范围;
如果该数据库操作请求所涉及的数据属于元数据储存库中记录的受影响的数据范围,将该数据库操作请求发送到分区数据库管理系统而不向该数据库操作请求添加正常数据库分区和重负荷请求数据库分区的分区键。
5.根据权利要求4的方法,还包括:
如果该数据库操作请求所涉及的数据不属于元数据储存库中记录的受影响的数据范围,向该数据库操作请求添加正常数据库分区的分区键,并将添加了分区键的该数据库操作请求发送到分区数据库管理系统。
6.根据权利要求2的方法,其中所述将该数据库操作请求路由到用于处理重负荷请求的重负荷请求数据库分区进行处理包括:
判断该数据库操作请求是否是数据插入请求;
如果该数据库操作请求是数据插入请求,则向该数据库操作请求添加重负荷请求数据库分区的分区键;
将添加了分区键的该数据库操作请求发送到分区数据库管理系统。
7.根据权利要求6的方法,进一步包括:
如果该数据库操作请求不是数据插入请求,将该数据库操作请求发送到分区数据库管理系统而不向该数据库操作请求添加正常数据库分区和重负荷请求数据库分区的分区键。
8.根据权利要求1的方法,包括:
判断该数据库操作请求是否来自经常发出重负荷请求的特殊用户,其中特殊用户的数据被从正常数据库分区复制到重负荷数据库分区;以及
如果该数据库操作请求来自特殊用户,向该数据库操作请求添加重负荷请求数据库分区的分区键;
将添加了分区键的该数据库操作请求发送到分区数据库管理系统。
9.根据权利要求1的方法,还包括:
在系统空闲时,将重负荷请求数据库分区中的数据同步到正常数据库分区中。
10.一种用于在SaaS环境下隔离租户间的性能影响的系统,包括:
请求分析器,用于接收来自用户的数据库操作请求,判断该数据库操作请求是否是重负荷请求;以及
请求处理器,用于如果该数据库操作请求是重负荷请求,则将该数据库操作请求路由到重负荷请求数据库分区进行处理,以及将该数据库操作请求所影响的数据范围记录在元数据储存库中;
其中所述重负荷请求数据库分区是在原有的正常数据库分区之外设置的。
11.根据权利要求10的系统,其中所述正常数据库分区和所述重负荷请求数据库分区具有相同的表结构,该表结构包含分区键字段,所述正常数据库分区和所述重负荷请求数据库分区具有不同的分区键。
12.根据权利要求11的系统,其中,所述请求处理器包括:
用于向该数据库操作请求添加重负荷请求数据库分区的分区键的装置;以及
用于将添加了分区键的该数据库操作请求发送到分区数据库管理系统的装置。
13.根据权利要求11的系统,其中,所述请求处理器包括:
用于如果该数据库操作请求不是重负荷请求,进一步判断该数据库操作请求所涉及的数据是否属于元数据储存库中记录的受影响的数据范围的装置;
用于如果该数据库操作请求所涉及的数据属于元数据储存库中记录的受影响的数据范围,将该数据库操作请求发送到分区数据库管理系统而不向该数据库操作请求添加正常数据库分区和重负荷请求数据库分区的分区键。
14.根据权利要求13的系统,其中,所述请求处理器还包括:
用于如果该数据库操作请求所涉及的数据不属于元数据储存库中记录的受影响的数据范围,向该数据库操作请求添加正常数据库分区的分区键,并将添加了分区键的该数据库操作请求发送到分区数据库管理系统。
15.根据权利要求11的系统,其中,所述请求处理器包括:
用于判断该数据库操作请求是否是数据插入请求的装置;
用于如果该数据库操作请求是数据插入请求,则向该数据库操作请求添加重负荷请求数据库分区的分区键的装置;以及
用于将添加了分区键的该数据库操作请求发送到分区数据库管理系统的装置。
16.根据权利要求15的系统,其中,所述请求处理器进一步包括:
用于如果该数据库操作请求不是数据插入请求,将该数据库操作请求发送到分区数据库管理系统而不向该数据库操作请求添加正常数据库分区和重负荷请求数据库分区的分区键的装置。
17.根据权利要求10的系统,其中,
所述请求分析器还用于判断该数据库操作请求是否来自经常发出重负荷请求的特殊用户,其中特殊用户的数据被从正常数据库分区复制到重负荷数据库分区;以及
所述请求处理器还用于如果该数据库操作请求来自特殊用户,向该数据库操作请求添加重负荷请求数据库分区的分区键并将添加了分区键的该数据库操作请求发送到分区数据库管理系统。
18.根据权利要求10的系统,还包括:
数据同步器,用于在系统空闲时,将重负荷请求数据库分区中的数据同步到正常数据库分区中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910170957XA CN101996214B (zh) | 2009-08-27 | 2009-08-27 | 用于处理数据库操作请求的方法和装置 |
US12/870,441 US8626765B2 (en) | 2009-08-27 | 2010-08-27 | Processing database operation requests |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910170957XA CN101996214B (zh) | 2009-08-27 | 2009-08-27 | 用于处理数据库操作请求的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101996214A CN101996214A (zh) | 2011-03-30 |
CN101996214B true CN101996214B (zh) | 2013-10-23 |
Family
ID=43626327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910170957XA Active CN101996214B (zh) | 2009-08-27 | 2009-08-27 | 用于处理数据库操作请求的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8626765B2 (zh) |
CN (1) | CN101996214B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413135B (zh) * | 2011-11-17 | 2015-01-21 | 成都康赛信息技术有限公司 | 强扩展式网络栅格SaaS访问控制方法 |
US8943107B2 (en) * | 2012-12-04 | 2015-01-27 | At&T Intellectual Property I, L.P. | Generating and using temporal metadata partitions |
CN104216893B (zh) * | 2013-05-31 | 2018-01-16 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与系统 |
US9384227B1 (en) * | 2013-06-04 | 2016-07-05 | Amazon Technologies, Inc. | Database system providing skew metrics across a key space |
CN104866513B (zh) * | 2014-02-26 | 2018-09-11 | 国际商业机器公司 | 用于跨租户数据访问的系统和方法 |
CN104731939B (zh) * | 2015-03-31 | 2018-05-01 | 浪潮集团有限公司 | 一种租户间通过数据表共享数据的方法 |
CN108737325B (zh) * | 2017-04-13 | 2021-01-08 | 华为技术有限公司 | 一种多租户数据隔离方法、装置及系统 |
US11175924B2 (en) | 2017-10-06 | 2021-11-16 | International Business Machines Corporation | Load-store unit with partitioned reorder queues with single cam port |
US10606591B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Handling effective address synonyms in a load-store unit that operates without address translation |
US10572256B2 (en) | 2017-10-06 | 2020-02-25 | International Business Machines Corporation | Handling effective address synonyms in a load-store unit that operates without address translation |
US10417002B2 (en) | 2017-10-06 | 2019-09-17 | International Business Machines Corporation | Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses |
US10606590B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Effective address based load store unit in out of order processors |
US10394558B2 (en) | 2017-10-06 | 2019-08-27 | International Business Machines Corporation | Executing load-store operations without address translation hardware per load-store unit port |
CN108628972B (zh) * | 2018-04-25 | 2020-11-06 | 咪咕音乐有限公司 | 一种数据表的处理方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030226A (zh) * | 2006-03-01 | 2007-09-05 | 国际商业机器公司 | 访问分布式数据的方法和系统 |
CN101446966A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 数据存储方法及系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829610B1 (en) * | 1999-03-11 | 2004-12-07 | Microsoft Corporation | Scalable storage system supporting multi-level query resolution |
US6523036B1 (en) * | 2000-08-01 | 2003-02-18 | Dantz Development Corporation | Internet database system |
US6862593B2 (en) | 2002-05-17 | 2005-03-01 | Sun Microsystems, Inc. | Separation of database transactions |
US7562090B2 (en) | 2002-12-19 | 2009-07-14 | International Business Machines Corporation | System and method for automating data partitioning in a parallel database |
US7146365B2 (en) | 2003-01-27 | 2006-12-05 | International Business Machines Corporation | Method, system, and program for optimizing database query execution |
US7818297B2 (en) * | 2003-03-31 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method for refreshing a table using epochs |
CA2425045C (en) | 2003-04-08 | 2013-01-15 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for executing a database query |
US7467126B2 (en) | 2003-05-13 | 2008-12-16 | Microsoft Corporation | Removal of stale information |
US7668201B2 (en) * | 2003-08-28 | 2010-02-23 | Symbol Technologies, Inc. | Bandwidth management in wireless networks |
US7340447B2 (en) | 2003-10-09 | 2008-03-04 | Oracle International Corporation | Partitioning data access requests |
US7912851B2 (en) * | 2003-10-22 | 2011-03-22 | International Business Machines Corporation | Caching pages via host variable correlation |
US20060190460A1 (en) | 2005-02-18 | 2006-08-24 | Oracle International Corporation | Method and mechanism of handling reporting transactions in database systems |
US8386463B2 (en) | 2005-07-14 | 2013-02-26 | International Business Machines Corporation | Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table |
US20080071755A1 (en) | 2006-08-31 | 2008-03-20 | Barsness Eric L | Re-allocation of resources for query execution in partitions |
US8156107B2 (en) | 2007-02-02 | 2012-04-10 | Teradata Us, Inc. | System and method for join-partitioning for local computability of query over shared-nothing clusters |
US7885969B2 (en) * | 2007-09-17 | 2011-02-08 | International Business Machines Corporation | System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer |
US7779045B2 (en) * | 2007-09-27 | 2010-08-17 | Microsoft Corporation | Lazy updates to indexes in a database |
-
2009
- 2009-08-27 CN CN200910170957XA patent/CN101996214B/zh active Active
-
2010
- 2010-08-27 US US12/870,441 patent/US8626765B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030226A (zh) * | 2006-03-01 | 2007-09-05 | 国际商业机器公司 | 访问分布式数据的方法和系统 |
CN101446966A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 数据存储方法及系统 |
Non-Patent Citations (1)
Title |
---|
叶伟等著.数据库层的水平扩展.《互联网时代的软件革命 SAAS架构设计》.电子工业出版社,2009,第6章第6.3节. * |
Also Published As
Publication number | Publication date |
---|---|
US8626765B2 (en) | 2014-01-07 |
CN101996214A (zh) | 2011-03-30 |
US20110055151A1 (en) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101996214B (zh) | 用于处理数据库操作请求的方法和装置 | |
US7624118B2 (en) | Data processing over very large databases | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
US20170357703A1 (en) | Dynamic partitioning techniques for data streams | |
CN110147407B (zh) | 一种数据处理方法、装置及数据库管理服务器 | |
CN113111129B (zh) | 数据同步方法、装置、设备及存储介质 | |
CN106547914B (zh) | 一种数据采集管理系统及其方法 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20150135255A1 (en) | Client-configurable security options for data streams | |
US20150134795A1 (en) | Data stream ingestion and persistence techniques | |
US20150134797A1 (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
US20150134626A1 (en) | Partition-based data stream processing framework | |
CN103390041A (zh) | 一种基于中间件提供数据服务的方法和系统 | |
CN105359147A (zh) | 在线数据库迁移 | |
CN110134738B (zh) | 分布式存储系统资源预估方法、装置 | |
US20070118572A1 (en) | Detecting changes in data | |
CN104050276A (zh) | 一种分布式数据库的缓存处理方法及系统 | |
CN112579692B (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN113485999A (zh) | 数据清理方法、装置和服务器 | |
CN113722277A (zh) | 一种数据导入方法、装置、服务平台及存储介质 | |
CN110659259A (zh) | 数据库迁移方法、服务器以及计算机存储介质 | |
CN111597270A (zh) | 数据同步方法、装置、设备及计算机存储介质 | |
US7225444B1 (en) | Method and apparatus for performing parallel data operations | |
CN113448775B (zh) | 多源异构数据备份方法及装置 | |
US8650548B2 (en) | Method to derive software use and software data object use characteristics by analyzing attributes of related files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |