CN110088746A - 用于数据更新通知的系统、设备和方法 - Google Patents
用于数据更新通知的系统、设备和方法 Download PDFInfo
- Publication number
- CN110088746A CN110088746A CN201780077378.3A CN201780077378A CN110088746A CN 110088746 A CN110088746 A CN 110088746A CN 201780077378 A CN201780077378 A CN 201780077378A CN 110088746 A CN110088746 A CN 110088746A
- Authority
- CN
- China
- Prior art keywords
- client
- mode
- data
- server
- update
- 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
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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种系统,包括第一客户端、第二客户端和服务器,其中所述第一客户端用于将第一更新指令发送至所述服务器;所述服务器用于:基于目录信息将所述第一更新指令转换为第二更新指令,并向所述第二客户端通知所述第二更新指令,其中所述第二更新指令指示部分更新操作的集合,该部分更新操作的集合与使用第二模式的所述第二客户端存储的第二数据相关联;以及所述第二客户端用于将所述第二更新指令应用于所述存储的第二数据。以此方式,所述第二客户端和所述第一客户端可以分别在所述第二模式和所述第一模式中保持数据一致。
Description
技术领域
本发明涉及数据库管理技术领域,尤其涉及系统、服务器和数据更新通知方法。
背景技术
数据库管理系统(database management system,DBMS)可以包括至少一个服务器(在此还被称作发布者)和多个客户端(在此还被称作用户),以及至少一个数据库,该数据库存储对象的集合并允许对对象进行读取和写入操作。数据库模式可用于描述每个对象类型所允许的一个或多个字段。数据库可以将单独的模式与每个客户端相关联。换句话说,一些客户端可以以不同的模式版本运行。
模式演进是数据库的功能,其中数据库对于给定对象类型允许模式被改变为新版本。可以使用较旧或较新的模式版本来读取根据给定模式版本存储于数据库中的对象。若用较新的模式版本读取对象,则我们称之为升级模式演进。若用较旧的模式读取对象,则我们称之为降级模式演进。
在变更或修改数据库的一个或多个对象之后,所欲解决的问题是如何使用系统中的任何变更的不同模式版本来通知一个或多个客户端,使得客户端和服务器可以根据不同模式版本来保持相同数据对象的副本一致。
解决这个问题的尝试被称作“向上和向下兼容的模式演进”(US2006004781A1),这是针对对象和数据模型中的向上和向下兼容性的模式演进的建议书。该过程是执行完整/整个对象的向上和向下模式演进,并且以低效的方式向多个客户端通知针对不同模式版本修改的整个或完整数据对象。
然而,当处理部分变更或更新的通知时,仍然需要用于不同模式版本的高效的通知模式。
发明内容
因此,本发明的一个目的是提供一种系统、服务器和数据更新通知方法,其在正在进行的模式演进期间,以高效的方式向使用不同的模式版本的一个或多个客户端通知部分更新。
本发明的上述目的通过独立权利要求中提供的解决方案来实现。此外,在附属权利要求项中定义了实施方式。
本发明的第一方面提供一种用于数据库管理系统的服务器,所述服务器包括:
-通信模块,用于接收来自使用第一模式的第一客户端的第一更新指令,其中所述第一更新指令指示部分更新操作的集合,所述部分更新操作与使用所述第一模式的所述第一客户端存储的第一数据相关联;
-转换模块,用于基于目录信息将所述第一更新指令转换为第二更新指令,其中所述第二更新指令指示部分更新操作的集合,所述部分更新操作与使用第二模式的第二客户端存储的第二数据相关联;
-其中,所述通信模块还用于向所述第二客户端通知所述第二更新指令,以使得所述第二客户端能将所述第二更新指令应用于所述存储的第二数据。
因此,第一方面中的所述服务器,就性能和网络使用消耗而言是高效的。这是可以实现的,因为当处理部分更新的通知时,服务器仅通知针对不同模式版本修改的部分更新操作的集合,而不是通知针对不同模式版本修改的整个/完整的数据对象。此外,这也是可以实现的,因为服务器对部分更新操作的集合,而不是整个/完整的数据对象执行模式演进或转换。
在根据第一方面的所述服务器的第一可能实施方式中,所述第一更新指令包括:
-用于标识所述第一客户端的客户端信息或指示所述第一客户端使用的所述第一模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第一模式的所述第一数据相关联;
所述第二更新指令包括:
-用于标识所述第二客户端的客户端信息或指示所述第二客户端使用的所述第二模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第二模式的所述第二数据相关联;
因此,第一实施方式的所述服务器提供了一种灵活方式,即携载指示由第一(源或发送)或第二(目标或接收)客户端直接或间接使用的所述模式的信息。
在根据第一方面的所述服务器的第二可能实施方式或其第一实施方式中,目录信息包括一个或多个客户端的多个模式,并且其中转换模块用于:
-基于所述目录信息中包括的所述第一模式和所述第二模式,生成从所述第一模式至所述第二模式的转换规则;以及
-通过将所述生成的转换规则应用于由所述第一更新指令指示的部分更新操作的所述集合以获得所述第二更新指令。
因此,第二实施方式的所述服务器提供了从在所述第一模式中表达的所述第一更新指令至在所述第二模式中表达的所述第二更新指令的正在进行的模式演进(即,转换)的一种特别高效的方式。具体地说,一种从部分更新操作的集合(所述部分更新操作的集合与在第一客户端中使用所述第一模式的数据相关联)至部分更新操作的集合(所述部分更新操作的集合与在所述第二客户端中使用所述第二模式的数据相关联)的正在进行的模式演进(即,转换)的高效方式。
根据第一方面的任一前述实施方式中的所述设备的第三实施方式,所述转换模块还用于:
-基于所述第一更新指令中包括的所述模式版本信息或基于所述第一更新指令中包括的客户端信息以及所述客户端信息和所述模式版本信息之间的对应关系,识别所述第一模式。
因此,第三实施方式的所述服务器提供一种灵活方式,即直接或间接地标识所述第一(发送)客户端使用的所述模式。
根据第二方面,本发明涉及一种用于通知数据库管理系统中的更新的数据更新通知方法,所述方法由服务器执行。所述方法包括以下步骤:
-接收来自使用第一模式的第一客户端的第一更新指令,其中所述第一更新指令指示部分更新操作的集合,所述部分更新操作与使用所述第一模式的所述第一客户端存储的第一数据相关联;
-基于目录信息将所述第一更新指令转换为第二更新指令,其中所述第二更新指令指示部分更新操作的集合,所述部分更新操作与使用第二模式的第二客户端存储的第二数据相关联;以及
-向所述第二客户端通知所述第二更新指令,以使得第二客户端能将所述第二更新指令应用于所述存储的第二数据。
因此,第二方面的所述方法,就所述性能和网络使用消耗而言是高效的。这是可实现的,因为当处理部分更新的通知时,仅通知针对不同模式版本修改的部分更新操作的集合,而不是通知针对不同模式版本修改的整个/完整的数据对象。此外,这也是可以实现的,因为模式演进是在部分更新操作的集合上执行的,而不是在整个/完整的数据对象上执行的。
在根据第二方面的所述方法的第一可能实施方式中,所述第一更新指令包括:
-用于标识所述第一客户端的客户端信息或指示所述第一客户端使用的所述第一模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第一模式的所述第一数据相关联;
所述第二更新指令包括:
-用于标识所述第二客户端的客户端信息或指示所述第二客户端使用的所述第二模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第二模式的所述第二数据相关联。
因此,第一实施方式的所述方法提供一种灵活方式,即直接或间接地标识所述第一(发送)或第二(接收)客户端使用的所述模式。
在根据第二方面的所述方法的第二可能实施方式或其第一实施方式中,基于目录信息将在所述第一模式中定义的所述第一更新指令转换为在第二模式中定义的第二更新指令的步骤包括:
-基于所述目录信息中包括的所述第一模式和所述第二模式,生成从所述第一模式至所述第二模式的转换规则;以及
-通过将所述生成的转换规则应用于由所述第一更新指令指示的部分更新操作的所述集合以获得所述第二更新指令。
因此,第二实施方式的所述方法提供了从在所述第一模式中表达的所述第一更新指令至在所述第二模式中表达的所述第二更新指令的正在进行的模式演进(即,转换)的一种特别高效的方式。具体地说,一种从部分更新操作的集合(所述部分更新操作的集合与在第一客户端中使用所述第一模式的数据相关联)至部分更新操作的集合(所述部分更新操作的集合与在所述第二客户端中使用所述第二模式的数据相关联)的正在进行的模式演进(即,转换)的高效方式。
在根据第一或第二实施方式的所述方法的第三可能实施形式中,所述方法还包括:
-基于所述第一更新指令中包括的所述模式版本信息或基于所述第一更新指令中包括的客户端信息以及所述客户端信息和所述模式版本之间的对应关系,识别所述第一模式。
因此,第三实施方式的所述方法提供一种灵活方式,即直接或间接地标识所述第一(发送)客户端使用的所述模式。
本发明方法实现了与所述设备相同的优点。所述方法可用附加的方法步骤来执行,所述方法步骤对应于所述设备的各种实施方式执行的所述功能。
根据第三方面,本发明涉及一种数据库管理系统。所述系统包括:第一客户端、第二客户端和服务器,其特征在于:
所述第一客户端用于将第一更新指令发送至所述服务器,其中所述第一更新指令指示部分更新操作的集合,所述部分更新操作的集合与使用所述第一模式的所述第一客户端存储的第一数据相关联;
所述服务器用于:基于目录信息将所述接收到的第一更新指令转换为第二更新指令,并且向所述第二客户端通知所述第二更新指令,其中所述第二更新指令指示部分更新操作的集合,所述部分更新操作的集合与使用第二模式的第二客户端存储的第二数据相关联;以及
所述第二客户端用于将所述第二更新指令应用于所述存储的第二数据。以此方式,所述第二客户端和所述第一客户端可以分别在所述第二模式和所述第一模式中保持数据一致。
因此,所述第三方面的所述系统,就所述性能和网络使用消耗而言是高效的。这是可以实现的,因为当处理部分更新的通知时,在持续的模式演进期间,发送对应于不同于所述第一客户端使用的所述第一模式的第二模式的第二更新指令至所述系统中的所述第二客户端,因此在所述系统中,仅通知针对不同模式版本修改的部分更新操作的集合,而不是通知针对不同模式版本修改的整个/完整的数据对象。此外,这也是可以实现的,因为模式演进是在所述更新指令上执行的,而不是在所述系统中的整个/完整的数据对象上执行。
在根据第三方面的所述系统的第一可能实施方式中,所述系统还包括第三客户端,
所述服务器还用于:基于目录信息将所述第一更新指令转换为第三更新指令,并且向所述第三客户端通知所述第三更新指令,其中所述第三更新指令指示部分更新操作的集合,所述部分更新操作的集合与使用第三模式的第三客户端存储的第三数据相关联;以及
第三客户端用于将所述第三更新指令应用于所述存储的第三数据,以使得所述第三客户端、所述第二客户端和所述第一客户端可以分别在所述第三模式、所述第二模式和所述第一模式中保持数据一致。
因此,第一实施方式的所述系统,就所述性能和网络使用消耗而言,实现了较多功效。特别地,在实际的订阅和通知场景中,成千上万的客户端订阅相同的数据对象,并且所述服务器必须通知它们中的所有的相同的改变。网络使用和带宽的增益与通知的数量成正比。
在根据第三方面的所述系统的第二可能实施形式或其第一实施方式中,所述第一更新指令包括:
-用于标识所述第一客户端的客户端信息或指示所述第一客户端使用的所述第一模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第一模式的所述第一数据相关联;
所述第二更新指令:
-用于标识所述第二客户端的客户端信息或指示所述第二客户端使用的所述第二模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第二模式的所述第二数据相关联;
所述第三更新指令包括:
用于标识所述第三客户端的客户端信息或指示所述第三客户端使用的所述第三模式的模式版本信息,以及
-部分更新操作的所述集合,部分更新操作的所述集合与使用所述第三模式的所述第三数据相关联。
因此,第二实施方式的所述系统提供一种灵活方式,即携载指示由第一(发送)或第二或第三(接收)客户端直接或间接使用的所述模式的信息。
在根据第三方面的所述系统的第三可可能实施方式或其第一或第二实施方式中,所述目录信息包括一个或多个客户端的多个模式,并且其中所述服务器用于:
-基于所述目录信息中包括的所述第一模式和所述第二模式,生成从所述第一模式至所述第二模式的转换规则;以及
-通过将所述生成的转换规则应用于由所述第一更新指令指示的部分更新操作的所述集合以获得所述第二更新指令。
因此,第三实施方式的所述系统提供了从在所述第一模式中表达的所述第一更新指令至在所述第二模式中表达的所述第二更新指令的正在进行的模式演进(即,转换)的一种特别高效的方式,具体地说,一种从部分更新操作的集合(所述部分更新操作的集合与在第一客户端中使用所述第一模式的数据相关联)至部分更新操作的集合(所述部分更新操作的集合与在所述第二客户端中使用所述第二模式的数据相关联)的正在进行的模式演进(即,转换)的高效方式。
在根据第三方面的所述系统的第四可能实施形式或其第一或第二或第三实施形式中,所述服务器还用于:
-基于所述第一更新指令中包括的所述模式版本信息或基于所述第一更新指令中包括的客户端信息以及所述客户端信息和所述模式版本之间的对应关系,识别所述第一模式。
因此,第四实施方式的所述系统提供一种灵活方式,即直接或间接地标识所述第一(发送)客户端使用的所述模式。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储程序代码,所述程序代码包括用于执行第二方面的所述方法或第二方面的实施方式中的一个的指令。
附图说明
本发明的上述方面和实施形式将在以下关于附图的对具体实施例的描述中得到说明,其中
图1是数据库计算环境的示意图,其中本发明的实施例在此得以实现;
图2a是根据本发明的实施例的系统的示意图;
图2b是根据本发明的另一个实施例的系统的示意图;
图3是根据本发明的又一实施例的系统的示意图;
图3a示出示意性地阐释了根据本发明的实施例的图3的系统的优点的图表;
图3b示出示意性地阐释了根据本发明的实施例的图3的系统的优点的另一个图表;
图3c示出示意性地阐释根据本发明的实施例的图3的系统的优点的又一个图表;
图4是根据本发明实施例的方法的示意图;
图4a示出根据本发明的实施例的图4的步骤403的过程;
图5示出根据本发明的实施例的图4a的步骤4031的示例过程;
图6是根据本发明的实施例的图2a或图2b的系统执行的方法的示意图;
图7是根据本发明的另一个实施例的图2a或图2b的系统执行的方法的示意图;
图8是根据本发明的实施例的服务器的示意图;
图9是根据本发明的另一个实施例的服务器的示意图;
在不同图式中,相同参考符号用于相同或至少功能上等效的特征。
具体实施方式
下文参考附图给出对根据本公开的实施例的方案的清楚且全面的描述。
为方便理解本发明的实施例,本文中首先说明将在本发明的实施例的描述中引入的若干术语。
如在此所使用的,数据库是有组织的数据集合。换句话说,数据库存储对象的集合并允许对对象进行读取和写入操作。在数据库中,对象可以是不同的对象类型。
如在此所使用的,数据库的对象(还被称作数据库对象或数据对象,简言之对象)可以是用于存储或参考数据的数据库中的任何定义对象。可以理解为主键唯一标识的数据项。例如,数据库对象可以是图表、视图、序列、索引、记录的一个或多个字段、一个或多个记录或一个或多个图表。
如在此所使用的,数据库模式(简言之模式)可用于描述每个对象类型所允许的一个或多个字段。换句话说,模式是定义数据库中的对象的数据库的结构。在单个数据库中可以涉及多个模式版本,或者在多个数据库中涉及多个模式版本。数据库的模式版本可以包括初始模式版本和后续模式版本,例如S1、S2(基于S1的较新模式)和S0(基于S1的较旧模式)。应指出,模式版本信息可以是用于区分不同模式的信息,而模式本身可以是用于描述数据库对象的一个或多个字段的信息,例如,{'name':string,'age':number,…}。
如在此所使用的,数据库的目录可以包括其中存储了数据库对象的定义的元数据。
如在此所使用的,服务器(还被称作数据库服务器或发布者)是向由客户端-服务器模型定义的其它计算设备(还被称作客户端、数据库客户端或用户)提供数据库服务的计算设备。数据库管理系统(dtabase management,DBM)提供数据库服务器功能,并且一些DBMS依赖于用于数据库访问的客户端-服务器模型。在示例性实施例中,客户端可以包括多个独立工作站、终端、移动设备等或者可以包括个人计算机(personal computer,PC)。
图1示出适用于实施本发明的客户端/服务器数据库系统100的结构(用于实现在下文中描述的其它实施例的对系统100的特定修改)。如图1所示,系统100包括数据库服务器201、连接到数据库服务器201的一或多个客户端203、205和207。可理解,本发明也可应用于管理数据库的分离分区的多个数据库服务器的集群,或具有复制品的一个或多个数据库服务器。数据库服务器的数量或拓扑在本发明中不受限制。
以下描述将给出示例,其中假定在集群中存在与一个或多个“客户端”(例如,个人计算机或移动设备)通信的一个或多个服务器实例(例如,数据库服务器)。然而,本发明的实施例不限于任何特定的环境或设备配置。相反,实施例可以在任何类型的能够支持本文提出的方法的系统体系结构或处理环境中实施。
在任何时间,系统100中存在一个或多个模式。具体地,每个客户端可以以(使用)不同的模式运行,例如,第一客户端203以第一模式S1运行、第二客户端205以第二模式S2运行、第三客户端207以第三模式S3运行,……并且第N个客户端以第N模式Sn运行。模式S1至Sn中的至少一些模式可以彼此不同。在一个示例中,并且如图1所示,数据库服务器201可以与第二模式S2一起运行。应指出,在实际订阅和通知的场景中,数据库服务器201可在不同场景中以不同模式运行。
第一客户端203用于将第一更新指令发送至服务器201,其中第一更新指令指示部分更新操作的集合。部分更新操作的集合与使用第一模式的第一客户端203存储的第一数据相关联;此种第一更新指令可以被理解为程序或部分更新操作的集合,而不是对象或对象本身内的数据。因此,在客户端和服务器之间不交换必须更新的对象或对象内的(部分)数据。
服务器201用于将接收到的在第一模式中定义的第一更新指令转换为在第二模式中定义的第二更新指令,特别地,基于目录信息,并向使用第二模式的第二客户端205通知第二更新指令。第二更新指令指示部分更新操作的集合,部分更新操作与使用第二模式的第二客户端205存储的第二数据相关联。此种第二更新指令可以被理解为程序或部分更新操作的集合,而不是对象或对象本身内的数据。因此,在客户端和服务器之间不交换必须更新的对象或对象内的(部分)数据。以下将更详细地描述目录信息。
第二客户端205用于将接收到的第二更新指令应用于使用第二模式的第二客户端205存储的待更新的第二数据。以此方式,第二客户端205和第一客户端203可以分别保持第二模式和第一模式中的数据一致。
作为一示例,待更新的第二数据可以是使用第二模式的第二客户端205存储的数据库对象。第二客户端用于通过将接收到的第二更新指令应用于存储的数据库对象以获得更新的使用第二模式的数据库对象以更新数据库对象。
数据库对象与对象标识符相关联,该对象标识符可以是固定值或相对于其它对象唯一标识的一个对象的值序列。
用于第二客户端205所进行的相同过程也被应用于其它客户端,例如第三客户端207,其中服务器201将在源模式(例如第一模式)中定义的源更新指令(例如第一更新指令)转换为在目标客户端(例如第三客户端)使用的目标模式(例如第三模式)中定义的目标更新指令(例如第三更新指令)。
在上述和以下描述的实施例中的任一个中,更新指令可以包括:
-用于标识对应客户端的客户端信息或指示该客户端使用的模式的模式版本信息,以及
-部分更新操作的集合,该部分更新操作的集合与使用相应模式的该客户端存储的数据相关联。
在此类实施例中,部分更新操作的集合可以包括以下操作中的任意一个或其组合:添加/移除/修改字段的值、添加/移除/重命名字段、改变字段类型、改变属性配置、添加默认值或修改数据对象的任意其它更新操作。
在一个示例中,目录信息可以包括系统100的一个或多个实体(即客户端和服务器)的多个模式。
或者,在另一示例中,目录信息可以包括多个模式和具有它们所使用的各自模式版本的客户端列表。换句话说,目录信息可以包括多个客户端信息(例如客户端ID)和多个模式版本之间的对应关系。
可以理解,数据库服务器所需的信息可以包括以下中的至少一个:
从更新指令直接或间接获得的模式版本,其指示源客户端所使用的源模式。源客户端例如可以是第一客户端,而源模式例如可以是第一模式。更新指令可以例如是第一(源)更新指令;
部分更新操作的集合,该部分更新操作与使用该源模式的源客户端存储的数据相关联。源客户端存储的数据例如可以是第一客户端存储的第一数据。从更新指令获得该部分更新操作的集合;
源(发送)客户端的源模式和目标(接收)客户端的目标模式,从目录信息获得。
在上述和以下描述的实施例中的任一个中,服务器201用于基于目录信息中包括的第一模式和第二模式,生成从第一模式到第二模式的转换规则,并且通过将生成的转换规则应用于第一更新指令(在第一模式中定义)指示的部分更新操作集以获得第二更新指令(在第二模式中定义)。在一个示例中,服务器201可以生成从第一模式到第二模式的转换规则,然后应用转换规则以修改从第一模式到第二模式的依赖性,并且提取用于第二模式的部分更新操作。
可以通过使用基于规则的算法来进行转换规则的生成,该算法创建部分更新操作和第一模式之间的依赖关系图。
在一些实施例中,服务器201还用于:
-基于第一(源)更新指令中包括的模式版本信息或基于第一(源)更新指令中包括的客户端信息以及客户端信息和模式版本之间的对应关系,识别第一(源)模式。
为了保持相同数据对象的副本一致,在一个示例中,如图1所示,当服务器201的存储对象的当前模式是第二模式时(即,当服务器201使用第二模式时),服务器201还用于:
-通过将第二更新指令应用于服务器的存储对象,更新使用第二模式的服务器的存储对象,以获得更新对象;以及
-将更新的使用第二模式的对象存储于服务器201的数据库中。
或者,在另一个例子中,若服务器201的存储对象的当前模式是第一模式,则服务器201还用于:
-通过将第一更新指令应用于服务器的存储对象,更新使用第一模式的服务器的存储对象,以获得更新对象;以及
-将更新的使用第一模式的对象存储于服务器的数据库中。
或者,在另一个示例中,若服务器的存储对象的当前模式是第三模式,则服务器201还用于:
-通过将第三更新指令应用于服务器的存储对象,更新使用第三模式的服务器的存储对象,以获得更新对象;以及
-将更新的使用第三模式的对象存储于服务器201的数据库中。
相应地,在此示例中,服务器201还用于将第一更新指令(在第一模式中定义)转换为第三更新指令(在第三模式中定义)。第三更新指令指示部分更新操作的集合,该部分更新操作与使用第三模式的第三客户端207存储的第三数据相关联。
可以理解,在此类实施例中,若第一模式较新于第二模式,则在系统100中执行正在进行的降级模式演进/转换;若第一模式比第二模式旧,则在系统100中执行正在进行的升级模式演进/转换。它可以示出根据本发明的正在进行的模式演进机制,其中多个客户端或服务器具有不同模式的相同数据的副本。
根据上述可以看出,本发明的系统就性能和网络使用消耗而言是高效的。这是可以实现的,因为当处理部分更新的通知时,在正在进行的模式演进期间,发送对应于与源(第一或发送)客户端使用的源(第一)模式不同的目标(第二)模式的目标(第二)更新指令至系统中的目标(第二或接收)客户端,因此在系统中仅通知针对不同模式版本修改的部分更新操作的集合,而不是通知针对不同模式版本修改的整个/完整的数据对象。此外,这也是可以实现的,因为由服务器对更新指令而不是整个/完整的数据对象执行模式演进。关于另外的优点,可以参考发明内容部分中的上述描述,在此不再重复。
图2A示出根据本发明的实施例的数据库管理系统200。如图2a所示,系统200包括数据库服务器201、通过通信网络207连接到数据库服务器201的第一客户端203和第二客户端205。数据库服务器201与数据库209连接,并且可以访问目录211。目录211可以包括系统200的一个或多个实体(即客户端203、205和服务器201)的多个模式。
在任何时间,数据库209中每个图表存在一个或多个模式版本。数据库209中的每个对象与给定模式版本相关联。客户端203、205具有不同模式的相同数据的副本。例如,第一客户端203在第一模式中具有相同对象,而第二客户端205在第二模式中具有相同对象。第一客户端203和第二客户端205中的每个在其主存储器中具有包括其最频繁访问对象的副本的本地高速缓存。在每次读取或写入操作之后,在高速缓冲存储器中更新每一对象。
第一更新指令(还被称作源更新指令)可被表示为以发送或源客户端203或205所支持的任何模式版本表达的部分更新操作的集合或动作,并通过发送或源客户端作为数据库操作发送至服务器201。
在对第一(源)更新指令执行模式演进(即,转换)之后,第二更新指令(还被称作目标更新指令)可被表示为以接收或目标客户端所支持的任何模式版本表达的部分更新操作的集合或动作,并作为通知从服务器201发送至接收或目标客户端。换句话说,通知可以是在接收或目标客户端的模式版本中表达的更新指令。
在一个示例中,上述更新指令包含用于更新(或删除)数据对象的一个或多个字段(或子字段)的信息。将在下文更详细地描述上述更新指令的进一步的实施方式。
对于系统200的其它实施细节,可以参考上述实施例,所述细节不在此重复。
从上述可以看出,本发明的系统200具有以下优点:
1.通知的大小仅是更新指令的大小,而在先前的解决方案中,它是整个更新的数据对象的大小,它从源客户端发送至服务器,然后发送至目标客户端。
这种大小的减小显著地减少了通过网络发送的数据,从而允许可用的带宽可以得到更好的使用。对于大型对象,也减少了等待时间。这也降低了网络瓶颈的风险。
在实际的订阅和通知场景中,成千上万的客户端订阅相同的数据对象,并且服务器必须通知(广播)相同的更改至所有客户端。通信使用和带宽的增益与通知的数量成正比。
2.处理时间较短,是因为服务器对更新指令而不是整个/完整的更新的数据对象执行模式演进。服务器可以每秒处理更多的操作。
3.两种前述益处(较少的数据通信和更快的处理)的组合产生更好的服务器吞吐量和网络利用率。
图2b示出根据本发明的另一实施例的数据库管理系统200。如图2b所示,图2b的系统与图2a的系统之间的差异在于:每个客户端203、205连接到本地高速缓存213、215,该本地高速缓存213、215包括其访问对象的副本,特别是其最频繁访问对象的副本。
对于系统200的其它实施细节,可以参考上述实施例,所述细节不在此重复。
图3示出订阅和通知场景的可能部署。这种情况已经在虚拟化的Linux客户端中进行了模拟,服务器(3.0GHz CPU)通过10Gbps网络和SRIOV进行连接。如图3所示,数据库服务器M管理数据库的分区M,并且数据库服务器N管理数据库的分区N。
如图3a所示,图表包括每个单次操作的时间。时间和大小是平均的,并且协议和传输报头的大小已经包括在用于更新指令(其对应于上述第一或第二更新指令)(200字节)和用于完整数据对象(4K字节)的传输数据包的大小中。
如图3b所示,图表详述了现有技术和本发明的更新过程,并且用公式将其表达为图3a所示的先前图表中的时间的组合。
如图3c所示,图表计算不同数目用户的估计时间。由于单个更新和数据传输的改进,吞吐量对于单个用户增加两倍,并且对于多于1K的用户增加高达4.5倍。
图4示出根据本发明的实施例的数据更新通知方法。该方法可以由图1、2a、2b和3所示的服务器执行。如图4所示,可以包括以下步骤:
S401:接收来自使用第一模式的第一客户端的第一更新指令,其中第一更新指令指示部分更新操作的集合,部分更新操作与使用第一模式的第一客户端存储的第一数据相关联;
S403:基于目录信息将第一更新指令(在第一模式中定义)转换为第二更新指令(在第二模式中定义),其中第二更新指令指示部分更新操作的集合,部分更新操作与使用第二模式的第二客户端存储的第二数据相关联;以及
S405:向第二客户端通知第二更新指令,以使得第二客户端可以将第二更新指令应用于存储的第二数据。作为一示例,第二数据可以包括使用第二模式的第二客户端存储的待更新对象。特别地,第二客户端可通过将第二更新指令应用于待更新的对象以获得更新对象,以更新待更新对象。
在上述和以下描述的实施例中的任一个中,更新指令包括:
-用于标识对应客户端的客户端信息或指示该客户端使用的模式的模式版本信息,以及
-部分更新操作的集合,该部分更新操作的集合与使用模式的该客户端存储的数据相关联。
在本发明的一些实施例中,如图4a所述,S403可以包括:
S4031:基于目录信息中包括的第一模式和第二模式,生成从第一模式至第二模式的转换规则;以及
应指出,可以使用基于规则的算法来计算转换规则,该算法考虑添加字段、去除字段、变更字段类型、改变文件的配置和添加默认值等述词;
S4032:通过将生成的转换规则应用于第一更新指令指示的部分更新操作的集合以获得第二更新指令(在第二模式中定义)。
在一些实施方案中,方法可还包括:
-基于第一更新指令中包括的模式版本信息或基于第一更新指令中包括的客户端信息以及客户端信息和模式版本之间的对应关系,识别第一模式。
作为一个示例中,方法可还包括:
-若服务器的存储对象的当前模式为第一模式,则将第一更新指令应用于服务器存储的对象,更新服务器存储的对象以获得更新的对象;以及
-将更新的使用第一模式的对象存储于服务器的数据库中。
因此,本实施例的方法提供了一种特别高效的方式,即当服务器使用第一模式时,保持相同数据对象的副本一致。
或者,作为另一示例,方法可还包括:
-若服务器的存储对象的当前模式为第二模式,则通过将第二更新指令应用于服务器存储的对象,更新服务器存储的对象以获得更新的对象;以及
-将更新的使用第二模式的对象存储于服务器的数据库中。
因此,本实施例的方法提供了一种特别高效的方式,即当服务器使用第二模式时,保持相同数据对象的副本一致。
或者,作为另一示例,方法可还包括:
-若服务器的存储对象的当前模式为第三模式,则通过将第三更新指令应用于服务器存储的对象,更新服务器存储的对象以获得更新的对象;以及
-将更新的使用第三模式的对象存储于服务器的数据库中。
相应地,方法还包括:将第一更新指令(在第一模式中定义)转换为第三更新指令(在第三模式中定义)。第三更新指令指示部分更新操作的集合,该部分更新操作与使用第三模式的第三客户端存储的第三数据相关联。
因此,本实施例的方法提供了一种特别高效的方式,即当服务器使用第三模式时,保持相同数据对象的副本一致。
图5示出根据本发明示例性实施例的用于生成从模式S至模式S'的转换规则的过程。方法可以由图1、2a、2b和3所示的服务器执行。该方法示出对表示为字段F的序列变为V的(源)更新指令执行从模式S至S'的模式演进(转换)的过程,即,将字段F的值修改为V。
流程图500的方法的步骤不限于以下描述的顺序,并且可以以不同的顺序执行各个步骤。此外,流程图500的方法的两个或多个步骤可以彼此同时执行。
图5的方法开始于步骤501,并且转到步骤502,在步骤502中,在模式S中表达的操作或部分更新的动作的集合中,读取第一动作F=V。
在步骤502之后,流程图500转到步骤503,在步骤503中,确定模式S'中是否存在字段F。目录可以包括多个模式,其中模式描述每个模式版本的每个对象类型所允许的字段。若字段F不存在于模式S'中(在步骤503为否),则流程图500转到步骤508,在步骤508进一步确定是否有更多的动作正在等待进行。
若字段F存在于模式S'中(在步骤503中为是),则流程图500转到步骤504,在步骤504中,进一步确定字段F是否已经被重命名为模式S'中的字段F'。在此示例中,服务器基于从目录获得的模式S和模式S',确定字段F是否已经被重命名为模式S'中的字段F'。
若字段F已经被重命名为模S'中的字段F'(在步骤504为是),则流程图500转到步骤505,在步骤505中,获得转换规则的一部分,即“重命名F为F'”。若字段F没有被重命名为模式S'中的字段F'(在步骤504为否),则流程图500转到步骤506,在步骤506中,进一步确定V的数据类型是否已经在模式S'中改变。在一个示例中,服务器在考虑字段的位置的同时,通过比较两个模式S和S'之间的字段的数据类型,以确定在模式S'中V的数据类型是否已经改变。
若V的数据类型在模式S'中已经改变(在步骤506为是),则流程图500转到步骤507,在步骤507中获得转换规则的另一部分,即“将V转换为具有新数据类型的V'”。若V的数据类型在模式S'中没有改变(在步骤506为否),则流程图500转到步骤508,在步骤508中,进一步确定是否有更多的动作正在等待。
若更多的操作在等待执行(步骤508为是),则流程图500转到步骤509,在步骤509中,在模式S中表达的操作或部分更新的动作的集合中,读取下一动作F=V。若不再有操作等待继续(在步骤508处为否),则流程图500转到步骤510,在步骤510中,流程图500结束。
在步骤509之后,流程图500可以返回到步骤503以执行另一子过程。
从上述可以看出,可以生成从模式S到S',包括“重命名F为F'”和“将值V转换为具有新的数据类型的V'”的转换规则,从而可以通过将转换规则应用于在模式S中定义的源更新指令,即将字段F的值修改为V,以获得在模式S'中定义的目标更新指令,即将字段F'的值修改为V'。
图6示出根据本发明的实施例的图2a或图2b的系统执行的正在进行的模式升级演进方法。图6详细地示出将第一更新指令从旧模式S升级到较新模式S'的过程。首先,在数据库服务器M(简言之服务器M)的目录中存在两个模式版本S和S',一个存储于服务器M中的对象D,在具有不同模式版本的客户端X和Y中缓存的相同对象D。如图6所示,可以包括以下步骤:
S601,客户端X修改其本地高速缓存中的D(S),并将第一更新指令U(D,S)发送至服务器M。
应指出,U可直接或间接指示可在模式S中理解但不包括数据对象的部分更新操作的集合(程序,一组指令)。例如,“U(D,S):={id='Mary'}”可以是告知数据库服务器用模式S搜索对象D并将'id'字段的值修改为'Mary'的程序。
S603,服务器M将U(D,S)转换为U'(D,S')。具体地说,服务器M生成从S至S':T(S->S')的升级转换规则。升级转换规则可以包括重命名'id'为'name'。此外,服务器M将T(S->S')应用于U(D,S)以获得第二更新指令U'(D,S'):={name='Mary'}。
应指出,U'可直接或间接指示可在模式S'中理解但不包括数据对象的部分更新操作的集合(程序,一组指令)。例如,“U'(D,S'):={name='Mary'}”可以是告知数据库服务器或接收客户端(用户)用模式S'搜索对象D并将'name'字段的值修改为'Mary'的新程序。
因此,服务器M允许将程序(即第一更新指令)转换为新的程序(即第二更新指令),该新的程序可以以高效的方式在新的模式中被理解为,即不用读取数据对象。
S605,服务器M将第二(目标)更新指令U'应用于D(S')并存储结果。服务器M中的当前模式版本是S'。
S607,服务器M向使用模式S'的客户端Y通知第二(目标)更新指令U',以使得客户端Y将U'(D,S')应用到其D(S')的缓存版本中并存储该结果。
图7示出根据本发明的实施例的图2a或图2b的系统执行的正在进行的模式降级演进方法。图7详细地示出将第三更新指令从较新模式S'降级到旧模式S的过程。首先,在数据库服务器M(简言之服务器M)的目录中存在两个模式版本S和S',一个存储于服务器M中的对象D,在具有不同模式版本的客户端X和Y中缓存的相同对象D。如图7所示,以下步骤可以包括:
S701,客户端Y在较新模式版本S'中具有对象,修改D(S'),并将第三更新指令U(D,S')发送至服务器M;
应指出,U可直接或间接指示可在模式S'中理解但不包括数据对象的部分更新操作的集合(程序,一组指令)。例如,“U(D,S'):={name='Sue',age=38}”可以是告知数据库服务器用模式S'搜索对象D,并将'name'字段的值修改为'Sue',并将'age'字段的值修改为'38'的程序。
S703,考虑到该对象已经与模式S'一起存储于服务器M中,服务器M将第三更新指令直接应用于该对象并将其存储。服务器M中的当前模式版本是S'。
S705和S707,服务器M将U(D,S')转换为U'(D,S)。具体地说,服务器M生成从S'至S:T(S'->S)的降级转换规则。降级转换规则可以包括重命名'name'为'id',并且跳过'age'(在S705中)。进一步,服务器M应用T(S'->S)至U(D,S')以获得第四更新指令U'(D,S):={id='Sue'}(在S707)
应指出,U'可直接或间接指示可在模式S中理解但不包括数据对象的部分更新操作的集合(程序,一组指令)。例如,“U'(D,S):={id='Sue'}”可以是告知数据库服务器或接收客户端(用户)用模式S搜索对象D并将'id'字段的值修改为'Sue'的新程序。
S709,服务器M向客户端X通知第四(目标)更新指令U'(D,S),以使得客户端X将其应用于客户端X的本地副本并缓存结果。
如图6和7所示,在该系统中,客户端X和Y可以读取和更新具有不同模式版本的相同数据对象。所有客户端和服务器保持不同模式版本的相同数据对象的副本一致。
如图6和7所示,这些示例描述了在服务器中总是将对象更新为模式版本S'的场景。本发明还支持不同的场景,其中可以在服务器中将对象更新为客户端X或Y使用的模式版本。
图8示出根据本发明的实施例的服务器201。服务器201可为在计算机系统中的计算节点。服务器201可以在如图1、2a、2b或3所示的不同场景中使用。
如图8所示,服务器201可以包括:
-通信模块2011,用于接收来自使用第一模式的第一客户端的第一更新指令,其中第一更新指令指示部分更新操作的集合,该部分更新操作与使用第一模式的第一客户端存储的第一数据相关联;
-转换模块2012,用于基于目录信息,转换第一更新指令(在第一模式中定义)为第二更新指令(在第二模式中定义),其中第二更新指令指示部分更新操作的集合,该部分更新操作的集合与使用第二模式的第二客户端存储的第二数据相关联;以及
-其中,通信模块2011还用于向第二客户端通知第二更新指令,以使得第二客户端可以将第二更新指令应用于存储的第二数据。
在上述和以下描述的实施例中的任一个中,更新指令可以包括:
-用于标识对应客户端的客户端信息或指示该客户端使用的模式的模式版本信息,以及
-部分更新操作的集合,该部分更新操作的集合与使用相应模式的该客户端存储的数据相关联。
在本发明的一些实施例中,目录信息包括一个或多个客户端的多个模式,并且转换模块2011用于:
-基于目录信息中包括的第一模式和第二模式,生成从第一模式到第二模式的转换规则;以及
-通过将生成的转换规则应用于第一更新指令指示的部分更新操作的集合以获得第二更新指令(在第二模式中定义)。
在本发明的一些实施例中,转换模块2012还用于:
-基于第一更新指令中包括的模式版本信息或基于第一更新指令中包括的客户端信息以及客户端信息和模式版本之间的对应关系,识别第一模式。
此外,服务器201可以包括本地管理模块(图8中未示出),该本地管理模块用于:
-若服务器的存储对象的当前模式为第一模式,则通过将第一更新指令应用于服务器存储的对象,更新服务器存储的对象以获得更新的对象;以及
-将更新的使用第一模式的对象存储于服务器的数据库中。
或者,作为另一示例,服务器201可以包括本地管理模块,该本地管理模块用于:
-若服务器的存储对象的当前模式为第二模式,则通过将第二更新指令应用于服务器存储的对象,更新服务器存储的对象以获得更新的对象;以及
-将更新的使用第二模式的对象存储于服务器的数据库中。
或者,作为另一示例,服务器201可以包括本地管理模块,该本地管理模块用于:
-若服务器的存储对象的当前模式为第三模式,则通过将第三更新指令应用于服务器存储的对象,更新服务器存储的对象以获得更新的对象;以及
-将更新的使用第三模式的对象存储于服务器的数据库中。
相应地,在一个示例中,转换模块2012还用于将第一更新指令(在第一模式中定义)转换为第三更新指令(在第三模式中定义)。第三更新指令指示部分更新操作的集合,该部分更新操作与使用第三模式的第三客户端存储的第三数据相关联。
其它详细的实施细节和优点,可以参考上述实施例。.
根据上述可以看出,本发明的服务器就性能和网络使用消耗而言是高效的。这是可以实现的,因为当处理部分更新的通知时,在正在进行的模式演进期间,发送对应于与第一客户端使用的第一模式不同的第二模式的第二更新指令至系统中的第二客户端,因此服务器仅通知针对不同模式版本修改的部分更新操作的集合,而不是通知针对不同模式版本修改的整个/完整数据对象。此外,这也是可以实现的,因为服务器对更新指令而不是整个/完整的数据对象执行模式演进。关于另外的优点,可以参考发明内容部分中的上述描述,在此不再重复。
图9示出根据本发明的另一个实施例的服务器201。服务器201可以包括:处理器2001和存储器2003。可选地,服务器201还可以包括输入/输出(I/O)设备2005和通信总线2007。服务器201也可以在如图1、2a、2b或3所示的不同场景中使用。
处理器2001可以是中央处理单元(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或专用集成电路(application-specific integratedcircuit,ASIC),或者用于实施本发明的实施例的一个或多个集成电路。
存储器2003可以包括一个或多个级别的高速缓存。存储器2003中存储了控制逻辑(即,计算机软件)和/或数据。
处理器2001,通过读取存储器2003存储的指令,用于
-接收来自使用第一模式的第一客户端的第一更新指令,其中第一更新指令指示部分更新操作的集合,该部分更新操作与使用第一模式的第一客户端存储的第一数据相关联;
-基于目录信息将第一更新指令(在第一模式中定义)转换为第二更新指令(在第二模式中定义),其中第二更新指令指示部分更新操作的集合,该部分更新操作与使用第二模式的第二客户端存储的第二数据相关联;以及
-向第二客户端通知第二更新指令,以使得第二客户端可以将第二更新指令应用于存储的第二数据。
其它详细的实施细节和优点,可以参考上述实施例。在实施方式中,图8中所示的通信模块2011和转换模块2012可以实施为图9所示的处理器2001和存储器2003。
结合本文中的各种实施例描述本发明。但本领域技术人员通过实践本发明,研究附图、本发明以及所附的权利要求,能够理解并获得公开实施例的其他变体。在权利要求书中,词语“包括”不排除其它元素或步骤,不定冠词“一”不排除多个。单个处理器或其它单元可满足权利要求中描述的几项的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可存储或分发到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过因特网或者其它有线或无线电信系统分发。
Claims (11)
1.一种在数据库管理系统(200)中使用的服务器(201),其特征在于,包括:
通信模块(2011),用于接收来自使用第一模式的第一客户端(203)的第一更新指令,其中所述第一更新指令指示部分更新操作的集合,所述部分更新操作与使用所述第一模式的所述第一客户端(203)存储的第一数据相关联;
转换模块(2012),用于基于目录信息(211)将所述第一更新指令转换为第二更新指令,其中所述第二更新指令指示部分更新操作的集合,所述部分更新操作与使用第二模式的第二客户端(205)存储的第二数据相关联;
其中,所述通信模块(2011)还用于向所述第二客户端(205)通知所述第二更新指令,以使得所述第二客户端(205)能将所述第二更新指令应用于所述存储的第二数据。
2.根据权利要求1所述的服务器,其特征在于,所述第一更新指令包括:
用于标识所述第一客户端(203)的客户端信息或指示所述第一客户端(203)使用的所述第一模式的模式版本信息,以及
部分更新操作的所述集合,部分更新操作的所述集合与使用所述第一模式的所述第一数据相关联;
所述第二更新指令包括:
用于标识所述第二客户端(205)的客户端信息或指示所述第二客户端(205)使用的所述第二模式的模式版本信息,以及
部分更新操作的所述集合,部分更新操作的所述集合与使用所述第二模式的所述第二数据相关联。
3.根据权利要求1或2所述的服务器,其特征在于,所述目录信息(211)包括一个或多个客户端(203、205、207)的多个模式,以及,其中所述转换模块(2012)用于:
基于所述目录信息(211)中包括的所述第一模式和所述第二模式,生成(4031、603、705)从所述第一模式至所述第二模式的转换规则;以及
通过将所述生成的转换规则应用于由所述第一更新指令指示的部分更新操作的所述集合以获得(4032、603、707)所述第二更新指令。
4.根据权利要求2或3所述的服务器,其特征在于,所述转换模块(2012)还用于:
基于所述第一更新指令中包括的所述模式版本信息或基于所述第一更新指令中包括的客户端信息以及所述客户端信息和所述模式版本之间的对应关系,识别所述第一模式。
5.一种用于通知数据库管理系统(200)中的更新的数据更新通知方法,所述方法由服务器(201)执行,其特征在于,包括:
接收(401)来自使用第一模式的第一客户端(203)的第一更新指令,其中所述第一更新指令指示部分更新操作的集合,所述部分更新操作与使用所述第一模式的所述第一客户端(203)存储的第一数据相关联;
基于目录信息(211)将所述第一更新指令转换(403)为第二更新指令,其中所述第二更新指令指示部分更新操作的集合,所述部分更新操作与使用第二模式的第二客户端(205)存储的第二数据相关联;以及
向所述第二客户端(205)通知所述第二更新指令(405,607,709),以使得第二客户端(205)能将所述第二更新指令应用于所述存储的第二数据。
6.根据权利要求5所述的方法,其特征在于,所述第一更新指令包括:
用于标识所述第一客户端(203)的客户端信息或指示所述第一客户端(203)使用的所述第一模式的模式版本信息,以及
部分更新操作的所述集合,部分更新操作的所述集合与使用所述第一模式的所述第一数据相关联;
所述第二更新指令包括
用于标识所述第二客户端(205)的客户端信息或指示所述第二客户端(205)使用的所述第二模式的模式版本信息,以及
部分更新操作的所述集合,部分更新操作的所述集合与使用所述第二模式的所述第二数据相关联。
7.根据权利要求5或6所述的方法,其特征在于,基于目录信息(211)将所述第一更新指令转换(403)为第二更新指令的步骤包括:
基于所述目录信息中包括的所述第一模式和所述第二模式,生成(4031、603、705)从所述第一模式至所述第二模式的转换规则;以及
通过将所述生成的转换规则应用于由所述第一更新指令指示的部分更新操作的所述集合以获得(4032、603、707)所述第二更新指令。
8.一种数据库管理系统(200),包括第一客户端(203)、第二客户端(205)和服务器(201),其特征在于:
所述第一客户端(203)用于将第一更新指令发送(601,701)至所述服务器(201),其中所述第一更新指令指示部分更新操作的集合,所述部分更新操作的集合与使用所述第一模式的所述第一客户端(203)存储的第一数据相关联;
所述服务器(201)用于:基于目录信息(211)将所述接收到的第一更新指令转换为第二更新指令,以及向所述第二客户端(205)通知所述第二更新指令(607、709)其中所述第二更新指令指示部分更新操作的集合,所述部分更新操作的集合与使用第二模式的第二客户端(205)存储的第二数据相关联;以及
所述第二客户端(205)用于将所述第二更新指令应用于所述存储的第二数据。
9.根据权利要求8所述的一种系统(200),其特征在于,所述第一更新指令包括:
用于标识所述第一客户端(203)的客户端信息或指示所述第一客户端(203)使用的所述第一模式的模式版本信息,以及
部分更新操作的所述集合,部分更新操作的所述集合与使用所述第一模式的所述第一数据相关联;
所述第二更新指令:
用于标识所述第二客户端(205)的客户端信息或指示所述第二客户端(205)使用的所述第二模式的模式版本信息,以及
部分更新操作的所述集合,部分更新操作的所述集合与使用所述第二模式的所述第二数据相关联。
10.根据权利要求8或9所述的系统(200),其特征在于,所述目录信息(211)包括一个或多个客户端(203、205、207)的多个模式,并且其中所述服务器(201)用于:
基于所述目录信息(211)中包括的所述第一模式和所述第二模式,生成(4031、603、705)从所述第一模式至所述第二模式的转换规则;以及
通过将所述生成的转换规则应用于由所述第一更新指令指示的部分更新操作的所述集合以获得(4032、603、707)所述第二更新指令。
11.一种计算机程序,包括程序代码,当该程序代码在计算机上执行时,执行权利要求5至7任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16203937.4A EP3336717A1 (en) | 2016-12-14 | 2016-12-14 | System, device and method for data update notification |
EP16203937.4 | 2016-12-14 | ||
PCT/CN2017/114826 WO2018108010A1 (en) | 2016-12-14 | 2017-12-06 | System, device and method for data update notification |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110088746A true CN110088746A (zh) | 2019-08-02 |
Family
ID=57629270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780077378.3A Pending CN110088746A (zh) | 2016-12-14 | 2017-12-06 | 用于数据更新通知的系统、设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190294604A1 (zh) |
EP (1) | EP3336717A1 (zh) |
CN (1) | CN110088746A (zh) |
CA (1) | CA3047178A1 (zh) |
WO (1) | WO2018108010A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023279752A1 (zh) * | 2021-07-06 | 2023-01-12 | 华为云计算技术有限公司 | 数据库模型的版本管理方法、装置及相关设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645302B2 (en) * | 2020-09-18 | 2023-05-09 | Toshiba Global Commerce Solutions Holdings Corporation | Methods and systems providing synchronization of data in a distributed system using microservice architecture in servers, store controllers, terminals and related articles of manufacture |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346731B1 (en) * | 2007-09-28 | 2013-01-01 | Symantec Corporation | Techniques for global single instance indexing for backup data |
US20130066832A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Application state synchronization |
CN103714163A (zh) * | 2013-12-30 | 2014-04-09 | 中国科学院信息工程研究所 | 一种NoSQL数据库的模式管理方法及系统 |
CN104137103A (zh) * | 2012-02-22 | 2014-11-05 | 国际商业机器公司 | 智能数据归档 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589346B2 (en) * | 2011-04-26 | 2013-11-19 | Oracle International Corporation | Techniques for combining statement level, procedural, and row level replication |
DE10250641A1 (de) | 2002-10-30 | 2004-05-13 | Siemens Ag | Auf- und abwärtskompatible Schemaevolution |
US7383281B1 (en) * | 2004-09-24 | 2008-06-03 | Infoblox, Inc. | Multiversion database cluster management |
US8250030B2 (en) * | 2005-09-21 | 2012-08-21 | Infoblox Inc. | Provisional authority in a distributed database |
US20140032882A1 (en) * | 2007-07-13 | 2014-01-30 | Adobe Systems Incorporated | Modification of functionality in executable code |
US8832028B2 (en) * | 2011-08-25 | 2014-09-09 | Oracle International Corporation | Database cloning |
US9442993B2 (en) * | 2013-02-11 | 2016-09-13 | Dell Products L.P. | Metadata manager for analytics system |
US9928264B2 (en) * | 2014-10-19 | 2018-03-27 | Microsoft Technology Licensing, Llc | High performance transactions in database management systems |
US11113320B2 (en) * | 2014-12-19 | 2021-09-07 | Here Global B.V. | Versioned change propagation |
CN104516963A (zh) * | 2014-12-22 | 2015-04-15 | 云南大学 | 一种Excel数据服务器及其应用 |
CN105094707B (zh) * | 2015-08-18 | 2018-03-13 | 华为技术有限公司 | 一种数据存储、读取方法及装置 |
-
2016
- 2016-12-14 EP EP16203937.4A patent/EP3336717A1/en not_active Ceased
-
2017
- 2017-12-06 WO PCT/CN2017/114826 patent/WO2018108010A1/en active Application Filing
- 2017-12-06 CA CA3047178A patent/CA3047178A1/en not_active Abandoned
- 2017-12-06 CN CN201780077378.3A patent/CN110088746A/zh active Pending
-
2019
- 2019-06-13 US US16/440,522 patent/US20190294604A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346731B1 (en) * | 2007-09-28 | 2013-01-01 | Symantec Corporation | Techniques for global single instance indexing for backup data |
US20130066832A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Application state synchronization |
CN104137103A (zh) * | 2012-02-22 | 2014-11-05 | 国际商业机器公司 | 智能数据归档 |
CN103714163A (zh) * | 2013-12-30 | 2014-04-09 | 中国科学院信息工程研究所 | 一种NoSQL数据库的模式管理方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023279752A1 (zh) * | 2021-07-06 | 2023-01-12 | 华为云计算技术有限公司 | 数据库模型的版本管理方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018108010A1 (en) | 2018-06-21 |
CA3047178A1 (en) | 2018-06-21 |
US20190294604A1 (en) | 2019-09-26 |
EP3336717A1 (en) | 2018-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591946B (zh) | 使用索引划分和协调来进行数据去重复 | |
US8832130B2 (en) | System and method for implementing on demand cloud database | |
CN106164865B (zh) | 用于数据复制的依赖性感知的事务批处理的方法和系统 | |
CN103067484B (zh) | 一种自动升级应用程序的方法和系统 | |
EP1899862B1 (en) | Extensible and automatically replicating server farm configuration management infrastructure | |
US9336227B2 (en) | Selective synchronization in a hierarchical folder structure | |
CN103180826B (zh) | 在代表计算机程序的数据流图中管理数据集对象 | |
EP2176783B1 (en) | Efficient updates for distributed file systems | |
KR102338208B1 (ko) | 데이터를 처리하기 위한 방법, 장치 및 시스템 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
US11294958B2 (en) | Managing a distributed knowledge graph | |
CN106462575A (zh) | 群集内存数据库的设计及实现 | |
MX2010012866A (es) | Compaginacion de datos jerarquicos. | |
CN103140850B (zh) | 移动设备上的数据共享 | |
CN107038026A (zh) | 一种增量式的自动机更新方法与系统 | |
US20240004853A1 (en) | Virtual data source manager of data virtualization-based architecture | |
CN110088746A (zh) | 用于数据更新通知的系统、设备和方法 | |
US11263026B2 (en) | Software plugins of data virtualization-based architecture | |
US20210374263A1 (en) | Virtual data sources of data virtualization-based architecture | |
US10185735B2 (en) | Distributed database system and a non-transitory computer readable medium | |
CN104969217A (zh) | 预测缓存装置和缓存预测方法 | |
US20220360458A1 (en) | Control method, information processing apparatus, and non-transitory computer-readable storage medium for storing control program | |
CN107220248A (zh) | 一种用于存储数据的方法和装置 | |
KR20070075667A (ko) | 대용량 웹에서 웹 페이지 관리를 위한 히스토리 저장 서버및 방법 | |
US11960488B2 (en) | Join queries in data virtualization-based architecture |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190802 |
|
WD01 | Invention patent application deemed withdrawn after publication |