CN1722086A - 用于数据库跟踪的计划性检索和重放的api - Google Patents
用于数据库跟踪的计划性检索和重放的api Download PDFInfo
- Publication number
- CN1722086A CN1722086A CNA2005100758886A CN200510075888A CN1722086A CN 1722086 A CN1722086 A CN 1722086A CN A2005100758886 A CNA2005100758886 A CN A2005100758886A CN 200510075888 A CN200510075888 A CN 200510075888A CN 1722086 A CN1722086 A CN 1722086A
- Authority
- CN
- China
- Prior art keywords
- database
- instruction
- data
- computer
- playback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 137
- 230000008569 process Effects 0.000 claims abstract description 75
- 238000003860 storage Methods 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims description 68
- 238000013500 data storage Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000012550 audit Methods 0.000 abstract description 3
- 230000036541 health Effects 0.000 abstract description 3
- 238000012544 monitoring process Methods 0.000 abstract description 3
- 238000010200 validation analysis Methods 0.000 abstract 1
- 238000012795 verification Methods 0.000 abstract 1
- 230000008859 change Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 241001269238 Data Species 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000013499 data model Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
跟踪和重放对象可被设计成在用户计算机进程调用时自动地执行涉及数据库跟踪数据的操作。跟踪数据可以被保存到各种位置中的任何一种。它可以用于存储或重放的目的。可以使用多个重放配置选项针对任何数据库服务器重放跟踪数据。重放通知允许数据在被提交到数据库以供执行之前被改变,而且允许即时检查重放结果和确认重放正确性。因此,跟踪和重放对象大大简化了跟踪数据的可管理性。用户进程现在可以完全自动化所跟踪的数据库服务器的安全审计和健康监控。也可以执行新服务器发布和安全包的自动验证。用户进程可以使用所提供的对象来灵活地访问和操作数据库跟踪数据的检索、存储和重放。
Description
版权声明及许可
该专利文献的部分公开内容包含受版权保护的材料。版权所有人不反对任何人对该专利文献或专利公开内容进行复制,如其在(美国)专利和商标局的专利文献或记录中的形式,但版权所有人保留其它所有的权利。下列声明适用于本文献:Copyright2004,Microsoft Corp。
技术领域
本发明涉及计算,尤其涉及数据库行动和性能的分析,以及允许数据库发出的跟踪数据的可订制的、自动化的检索和重放的应用程序编程接口。
背景技术
数据库包含数据集合,一般描述一个或多个相关组织的活动。例如,大学数据库可以包括关于诸如学生、教师、课程和教室等实体的信息,以及关于诸如参加课程的学生、授课教师和上课所用教室等实体之间的关系的信息。数据库管理系统或DBMS是被设计成帮助维护和利用大数据集合的软件。然而,出于说明本文献的目的,术语“数据库”或“数据库服务器”是指数据集合和/或DBMS软件的任一个或两者。因此,图1中的数据库100可以视作数据集合和DBMS两者。
使用许多种类型的数据库。第一个数据库模型被很大程度上归功于20世纪60年代初期通用电气公司的查尔斯·巴赫曼(Charles Bachman)。这被称为集成数据存储(Integrated Data Store),并遵循网络数据模型。20世纪60年代后期,IBM开发了信息管理系统(Information Management System),该系统构成了分层数据模型的基础。1970年,IBM的埃德加·考特(Edgar Codd)提出了一种关系型数据模型,该模型被证明是数据库系统发展史上的分水岭。关系型数据库的流行改变了商业前景。人们广泛地认识到它们的好处,并且用于管理企业数据的数据库的使用成为一种标准操作。关系型数据库是目前使用的主要模型。
各种DBMS产品,如MICROSOFT SQL SERVER、IBM DB2、ORACLEDATABASE以及SYBASEIQ,已经大大扩展了数据库的性能。数据库可以存储许多种数据类型,如图像和文本,并且可以对所存储数据执行复杂查询。许多厂商已经开发出专用系统,用于创建数据仓库、合并来自多个数据库的数据以及进行专门的分析。
数据库已经进入因特网时代。普遍使用数据库来存储通过Web浏览器访问的数据。通过Web可访问的形式生成查询,并且使用诸如超文本标记语言(HTML)或可扩充标记语言(XML)等可以在浏览器中显示的标记语言来格式化应答。目前激动人心的前景,如多媒体数据库、交互式视频、流数据、数字图书馆、大量科研项目以及企业数据整合和数据挖掘,正推动着该领域的发展。通过全球计算机网络访问数据库已是普遍现象。
参见图1,多个客户机101、102和103可以向数据库100请求服务。一般地,服务请求101a、102a和103a是向数据库要求符合特定标准的结构化查询语言(SQL)查询。例如,可以通过服务请求101a请求以上所介绍的数据库,以返回其姓为“Smith”的所有学生的列表。数据库100可确定处理服务请求101a、收集合适的数据、格式化所收集的数据以及将数据发回给客户机101的最佳方法。可能要求现代数据库100同时执行数以百计或数以千计的这类操作。
除了检索数据之外,也可以请求数据库更新数据。例如,如果数据库100是一个具有账户信息的银行数据库,每当有该特定账户的存款或取款时,都需要更新数据。数据库的另一个功能是组织对数据的访问,以确保以有序的方式更新数据,并为所作出的多个请求提供数据的最新版本。
没有存储、更新和管理对数据的访问的单一的最好方法。存储数据的方式的改变可以大大提高数据库的性能。同样,管理数据请求和数据更新的技术的改变也可以提高性能。另一方面,数据布局和访问技术的改变可以引起数据库的正确运行方面的问题。这种改变可能导致差的性能、不能处理某些请求、所收集和所返回的数据的错误以及数据库的不稳定。
结果,需要监视和分析现代数据库的性能。通过理解促使数据库良好运行或反之遇到问题的条件,可以改进数据库。作为对这种需求的响应,许多现代数据库都具备发出跟踪数据流104b的能力。
跟踪数据流104b包含关于数据库100的各种操作的信息。这种流104b可以包含被认为与分析有关的任何信息。一般而言,跟踪数据流104b包含描述对数据库所作出的各种服务请求101a、102a和103a的信息。这类描述可以包括所作出的请求、请求时间以及发出请求的客户机。跟踪数据流104b中也可以包含由数据库所返回的任何输出。在现代数据库增加其所提供的服务量的同时,跟踪数据流104b可以包括的数据种类也在增加。
一般地,对跟踪数据流104b的访问是通过客户机计算机104进行的。客户机计算机104可以向数据库100发送跟踪数据请求104a,从而打开到跟踪数据流104b的连接。传统上,分析器(profiler)应用程序105安装在客户机计算机104上。分析器105允许用户通过图形用户界面(GUI)启动会话。分析器可以在窗口108里显示所累积的跟踪数据。分析器可以提供允许访问和操作跟踪数据104a的多个功能110的项目菜单。这些功能110中的一些在图1中的示例性分析器GUI 105中示出,如保存、打开、打印、重放等。使用这种分析器应用程序105,用户可以指定待分析的数据库100、打开到对应的跟踪数据流104b的连接、以及保存任意数量的位置中收集的跟踪数据,如在文件中、表中或服务器上。
而且,用户可以指示分析器105重放跟踪数据。跟踪重放允许生成一系列跟踪数据中所表示的查询并在数据库上运行。因此,例如如果对经历问题的数据库进行改变或改进,用户可以对所改进的数据库运行一组查询,以判定其是否被适当地调整。
在数据库激增时,分析和改进数据库的成本也增加。为单个数据库保持所有跟踪数据的连续存储,成本是非常高的,费用随着多个数据库一起增加。因此必须在策略上选择何时访问和存储跟踪数据。如果第一数据库经历一个特定的问题,可以要求它针对多个其它数据库重放与该问题相对应的跟踪。有时在重放之前修改跟踪数据,以收集其它信息并潜在地减少数据库问题的可能原因。也可以针对大量数据库重放这些被修改的跟踪。因此,收集、修改和重放会变成昂贵和麻烦的任务。数据库跟踪数据累积、分析和重放的传统方式在操作分析器应用程序时需要太多的用户时间。
鉴于以上所述的本行业中迄今为止无法预料的困难,需要改进收集和重放跟踪数据的系统和方法,这种需求未经确认且未能得到满足。
发明内容
考虑到本领域的上述缺点,本发明提供用于数据库跟踪数据的计划性检索和重放的系统和方法。多个对象——跟踪和重放对象——可以被设计成在被用户计算机进程调用时自动地执行操作。跟踪数据可以被保存到多个位置中的任何一个。它可以用于存储或重放的目的。可以使用多种重放配置选项针对任何数据库服务器来重放跟踪数据。重放通知允许数据在被提交给数据库执行之前被改变,并允许即时检查重放结果以及确认播放正确性。
跟踪和重放对象从几个方面大大简化了跟踪数据的可管理性。用户进程的设计者现在可以使所跟踪的数据库服务器的安全审计和健康监视完全自动化。也可以执行新服务器发布和安全包的自动验证。用户进程可以使用所提供的对象灵活地访问并操作数据库跟踪数据的检索、存储和重放。这类用户进程可以被设计成以适合给定组织的特定需求的方式来使用本发明。
本发明的其它优点和特征在下面描述。
附图说明
参照附图,进一步描述依照本发明的用于数据库跟踪的计划性检索和重放的API,附图中:
图1例示一个现有技术系统,其中,分析器应用程序可以检索、查看、存储和重放反映数据库的各种服务请求和/或数据库执行的其它操作的数据库跟踪;
图2a是一个方框图,概括地表现适于结合本发明的各个方面使用的示例性计算设备的基本特征;
图2b是一个方框图,表现适于结合本发明的各个方面使用的更详细的示例性计算设备;
图2c例示一个示例性网络化计算环境,其中可以实现计算机化的进程,包括本发明的那些进程;
图3例示一个用于数据库跟踪数据的计划性检索和重放的API,其中,用户对象可以被设计成使数据库跟踪数据的检索、查看、存储和重放自动化;
图4例示与数据库跟踪数据的检索和存储相关联的各种功能,以及存储、修改和重放跟踪数据的请求,其中存储包括文件、表和服务器中的存储;
图5为实现本发明的API的各种对象的方案的优选实施例提供一个UML(统一建模语言)图表;
图6例示与数据库跟踪数据的重放相关联的各种函数,包括从文件、表或服务器进行的重放,以及开始、停止和暂停重放,另外还包括在重放期间提供多个通知选项,以及最后提供任何附加选项,如指定跟踪源、重放模式和其它选项。
图7例示用于示例性重放对象的类定义;
图8例示用于回调通知事件的示例性声明;
图9例示用于IDataRecordChanger接口的示例性定义,其中该接口可以从IDataRecord接口继承,如在本领域中所知道的IDataRecord接口;
图10例示用于跟踪重放选项对象的示例性类定义;
图11显示在重放数据库跟踪数据时可以选择的两种示例性重放模式;
图12例示与打算用于本发明的面向对象编码技术结合使用的示例性对象。
具体实施方式
在下面的描述和附图中,阐明某些具体细节以提供对本发明的各种实施例的彻底理解。然而,为避免不必要地模糊本发明的各种实施例,通常与计算和软件技术相关联的某些众所周知的细节在下文不再阐明。此外,相关领域内的普通技术人员应当理解,他们可以实践本发明的其它实施例而不需要下面所述的一个或多个细节。最后,尽管参照下文中的步骤和顺序描述了各种方法,但本描述同样是为了提供本发明的清楚的实施例,并且这些步骤和顺序不应当被认为是实践本发明所必需的。
本发明的各个方面涉及用于数据库跟踪数据的计划性检索和重放的API。为了完全揭示这些方面,将从定义API、数据库和跟踪数据开始本描述。然后描述跟踪数据的检索和重放。然后将讨论计划性检索和重放的各个方面和实现。最后,提供对适于与发明的各种实施例一起使用的通用计算和网络环境的描述。
应用程序编程接口(“API”)是允许其它进程一起工作的计算机进程或机制。在运行操作系统和诸如MICROSOFT WORD和ADOBE ACROBAT READER等各种应用程序的个人计算机的常用设置中,API允许应用程序与操作系统通信。应用程序向操作系统API发出调用以调用操作系统服务。操作系统API的实际代码位于动态链接库(“DLL”)的集合。
数据库软件也可以提供API。数据库API允许进程向数据库发出调用以调用数据库服务。现代数据库软件如MICROSOFT SQL SERVER、IBM DB2、ORACLE DATABASE和SYBASE IQ全都提供API。目前大多数企业应用程序都使用数据库,因此也使用允许应用程序访问和操作那些数据库的API。需要向那些应用程序,无论是客户机端、中间层还是服务器端应用程序,尽可能地提供反应最迅速的、伸缩性最好的数据库API。这对于数据访问密集型应用程序来说尤为真实。此处提供的API可以合并到操作系统API、数据库API、其它应用程序或服务的API中,或者可以是独立的。此处提供的功能不受特定设备或主机软件环境的限制。
可以用计算机可执行指令的形式实现API,就像实现操作系统、应用程序或其服务被调用的其它软件那样。这些指令可以具体表现为许多不同的形式。最后,指令被简化为计算机可读的比特,供计算机处理器处理。然而,在生成计算机可读比特之前,可能还有将API实现转换为各种形式的多层功能。例如,在C++中实现的API将首先表现为一系列人可读的代码行。然后由编译软件将API编译为机器可读的代码,供在处理器上执行。
最近,诸如C++等编程语言的激增,以及诸如个人计算机环境、由APPLE电脑、手持式计算设备、蜂窝式移动电话等等提供的环境等执行环境的激增,已经带来了对诸如API实现等编程代码的原始实现与简化为比特以供在设备上处理之间的其它功能层的需求。目前,最初用诸如C++等高级语言创建的计算机程序,可能首先被转换为诸如微软中间语言(MICROSOFTIntermediate Language,MSIL)或JAVA等中间语言。然后,在特定环境中执行之前,即时(Just-in-Time,JIT)编译器编译中间语言。这允许代码在许多种处理环境中运行而不需要分发多个已编译版本。鉴于可以实现API的许多级别,以及用于创建、管理和处理代码的连续进化技术,本发明不限于任何特定编程语言或执行环境。为描述本发明的各个方面而选择的实现是受管的MICROSOFTNET类库。这种选择为实践和描述本发明提供便利的环境,但并不意味着将本发明限制为这种实现。
此处所阐明的API特征为自动化数据库跟踪数据的检索和重放提供了一种工具。图3中提供构想的系统和方法的各种实施例。那些对分析数据库性能感兴趣的人可以创建用户对象330、331、332,这些对象可以根据他们各自的需要使用API309来收集、操作和重放跟踪数据304b。不能够预见由用户对象330、331、332执行的潜在操作,因为它们将会随大量程序设计者的技术和需求而改变。然而,所提供的API 309为可能被创建的各种对象330、331、332提供稳健的支持。尽管本发明不限于本文献中所揭示的诸功能310的集合,但是不管是单独的还是作为一个组,所提供的诸功能310都被认为是新颖的和有用的。这些功能310将在下面结合跟踪数据304b的检索和重放的自动化时进一步详细解释。
用户对象330、331、332以及例示中任何其它被标识为对象的元素是软件的分立单元,它们一般使用面向对象编程技术来生成。此外,API 309本身可以被实现为一个或多个对象。图12例示了一个这样的示例性对象,它图示了典型COM对象1200的特征。本行业中可以获得并广泛使用其它对象类型,此处所述的对象1200被指定为用于说明目的的非限制的例子。诸对象如1200通常支持一个或多个接口1202、1203、1204,其中的每一个都包括方法1205。方法1205一般是执行特定动作并可以被软件调用的函数或过程,例如,被另一个对象如330、331和332调用。这类发出调用的软件被称作“服务器”对象1200的“客户机”。构成接口1203的诸方法1205通常在某些方面相互关联。一般而言,通过调用对象接口1202、1203、1204中的诸方法1205,客户机可以访问由对象1200提供的服务。通常禁止客户机访问对象的数据。应当注意,此处和权利要求书中所述的由对象实现的功能也可以通过被设计成相互接口的多个对象来实现。
一般地,对象1200是特定类的一个实例。例如,一个类可能包含提供用于打开到数据库服务器的连接的服务的对象,而另一个类可能包含用于将数据写入文件的对象。一般地,程序设计者在运行该对象的实例之前知道该对象的类。对象的类可以在类库中查到。这种库可以访问所有可用的对象类的目录。客户机可以调用库中的函数,该函数指定它所要的对象的类,以及对其它需要指针的第一个所支持的接口。然后,该库促使实现该类的对象的服务器开始运行。该库也将指向新例示的对象上的所请求接口的指针回传给作出启动的客户机。然后该客户机可以直接向该对象要求指向该对象支持的任何其它接口的指针。
诸对象所支持的接口一般被认为是在对象及其客户机之间的一个合同。在接口定义接口的方法时,对象保证支持接口的方法,并且诸客户机保证正确地调用这些方法。因此,对象和诸客户机必须在明确地标识每个接口、描述或定义的公共方法、接口的诸方法以及如何实现接口的具体定义方面达成一致。
因此,诸对象可以根据它们继承的接口参数和它们继承的类参数来描述。例如,当对象的类具有用于将数据写入文件的函数,继承该类的实例也可以将写数据入文件,并且具有该实例中所提供的任何其它特征。当类支持特定接口,该类的实例继承“合同”并因此也支持该接口。本发明的诸方面通过对象来实现,对象通常符合对象、类、继承和接口的定义的编程原理和理解。然而,应当清楚,面向对象的编程技术的修改和改进不断发生,本发明不限于特定类型或具有任何特定特征的对象。所提供的API可以通过目前使用或将来开发的任何类型的对象来实现。
数据库是数据的集合,一般描述一个或多个相关组织的活动。例如,大学数据库可能包括关于诸如学生、教师、课程和教室等实体的信息,以及关于诸如参加课程的学生、授课教师和上课所用教室等实体之间的关系的信息。数据库管理系统或DBMS是被设计成帮助维护和利用大量数据集合的软件。然而,出于说明本文献的目的,术语“数据库”或“数据库服务器”是指数据集合和/或DBMS软件两者。因此,图1中的数据库100、图3中的数据库300和图6中的数据库640示出包括数据集合和DBMS两者的数据库服务器。需要的时候再作进一步的区别。
使用许多种类型的数据库。第一个数据库模型被广泛地归功于20世纪60年代初期通用电气公司的查尔斯·巴赫曼(Charles Bachman)。这被称为集成数据存储(Integrated Data Store),它采用网络数据模型。20世纪60年代后期,IBM开发了信息管理系统(Information Management System),该系统构成了分层数据模型的基础。1970年,IBM的埃德加·考特(Edgar Codd)提出了关系型数据模型,该模型被证明是数据库系统发展史上的分水岭。关系数据库的流行改变了商业前景。人们广泛地认识到它们的好处,用于管理企业数据的数据库的使用成为一种标准操作。尽管关系型数据库是目前使用的主要模型,本发明的各个方面适用于与当前使用或将来开发的能够发出数据的任何数据库。
各种DBMS产品,如MICROSOFT SQL SERVER、IBM DB2、ORACLEDATABASE以及SYBASE IQ,已经大大扩展了数据库的性能。数据库可以存储许多种数据类型,如图像和文本,并且可以对所存储数据执行复杂查询。许多厂商已经开发出专用系统,用于创建数据库、合并来自多个数据库的数据以及进行专用分析。所有这些产品和数据库配置适于与此处的系统和方法结合使用。
数据库已经进入因特网时代。普遍使用数据库存储通过Web浏览器访问的数据。通过Web可访问的形式生成查询,并且使用可以在浏览器中显示的标记语言,如超文本标记语言(HTML)或可扩充标记语言(XML)来格式化应答。由于越来越多的数据可以在线获得并更容易通过计算机网络来访问,数据库的重要性不断增加。目前激动人心的前景,如多媒体数据库、交互视频、流数据、数字图书馆、大量科研项目以及企业数据整合和数据库挖掘,正推动着该领域的发展。在全球计算机网络上访问数据库已是普遍现象,因此应当清楚,可以使用此处提供的系统和方法而不考虑客户机和数据库之间的距离或连接类型。
提供了一种用于数据库跟踪数据的计划性检索和重放的API。以上一般地描述了API和数据库。然后将讨论跟踪数据,接着讨论跟踪数据的检索和重放,再讨论计划性检索和重放,这些讨论将用来特别指出以上一般地描述的API的特征。
跟踪数据是指示数据库操作的数据。典型的数据库,如图3中的300,将被请求为任意数量的客户机,如301、302、303执行服务。这类请求通常是用结构化查询语言(SQL)表示的查询,尽管随着诸如300等数据库变得更复杂并提供更大范围的服务,请求的类型和数量也在增加。现代数据库能够发出包含关于请求和对应数据库操作的信息的跟踪数据流304b。跟踪数据可以用于分析请求数据库300做什么以及数据库300如何满足请求。通过这种分析,可以根据如何存储数据、如何管理查询以及现代数据库提供的许多其它服务来改进数据库。
跟踪数据可以用任何格式从数据库发出。一般地,因为数据库提供连续的服务,跟踪数据作为根据数据传输协议组织的持续数据流304b发出。通过打开到跟踪数据流304b的连接,客户机304可以分析并记录数据库300的操作。在这点上,跟踪数据304b一般被存储在如图4所表示的三个位置之一。这些位置包括文件403、表404和服务器405。因为本行业内都理解数据库跟踪数据304b,此处就没有必要详细解释用于记录跟踪数据304的精确格式。应当明白,跟踪数据304b可以用任何格式记录。然而,一般而言,跟踪数据的格式,不论是被存储在文件403、表404或服务器405,可以包含多个记录或传达某种独立含义的分立数据单元。
作为跟踪数据304b如何一般地被划分成诸记录的例子,考虑存储跟踪数据的典型文件403。这一文件403可以包括下列记录:
头部
2字节——头部长度
48字节——提供者名字
2字节——提供者版本
48字节——定义类型
4字节——文件选项
48字节——所跟踪的服务名称
数据段
每个新的数据库事件通常以TRACE_BEGIN_RECORD特定列开始,其后跟随一个字节,代表后面跟随着一个事件标识符以及事件的全部长度的列的长度。然后描述事件的任何其它的列。每个事件列记录可以包含对应于列标识符、数据长度和数据本身的信息。数据长度通常是一个单字节字段。
以上提供跟踪数据如何被划分成跟踪数据文件403中的诸记录的例子。此处不提供存储在表中和存储在服务器中的跟踪数据的示例性记录划分,因为这些格式的跟踪数据的存储是常见的,并且一般而言包含将数据分割成类似于以上的记录,尽管改变一些参数以用所需要的布局格式化跟踪数据。上述例子足以示出,跟踪数据可以被划分成若干记录,而且可以用多种方式来组织诸记录。本发明不限于跟踪数据文件、跟踪数据表或跟踪数据服务器中的记录的特定数量或布局。
跟踪数据的检索是指电子地获得跟踪数据。在本发明的各种实施例中,检索可能发生在像图3中的那样的情形中,其中客户机304将对跟踪数据的请求304发送给数据库300。请求304促使数据库300或某些其它中间进程(未示出)将跟踪数据流304b发送到客户机304。尽管图3代表跟踪数据的典型检索,应当明白,任何进程或进程的部分可以在未示出的任何数量的设备上或在它们之间运行,正如下面参照示例性计算和网络化环境所解释的那样。
跟踪数据的检索可以伴随存储所检索的数据,如图4所示。跟踪数据可以存储在文件403、表404或服务器405中。注意,存储跟踪数据的进程可以包括来自数据库300的初始信号的跟踪数据流的某种转换。正如以上所解释的那样,跟踪数据可以根据存储中所需要的数据的特定布局和呈现被格式化为多个记录。正如图4中所表示的那样,所提供的API 401允许示例性用户对象400请求跟踪数据的检索以及指定文件403、表404或服务器405中的跟踪数据的存储。提交给API 401的示例性请求410、411和412可以指定跟踪数据的检索。API的实现可以连接到合适的数据库、检索跟踪数据流、并将合适的输出写入403、404或405。在各种实施例中,API可以被配置成自动地选择默认存储位置,如403、404或405,以供在示例性用户对象400没有指示任何存储位置时使用。
跟踪数据的重放是指促使数据库执行一系列操作,这些操作与在一组跟踪数据中所表现的一系列操作相同或相关。例如,考虑存储在文件403中的一组跟踪数据。设想所述的跟踪数据组导致数据库300反常地执行,例如将不正确的、反常的或不及时的结果返回给客户机301,或者致使数据库300不稳定或崩溃。为研究导致反常的一系列事件,需要使数据库300服从与导致反常的条件相同的条件。这种情况下,文件403中的合适的跟踪数据组可以用于表示服务请求序列以复制以前的请求,如301a。提交这一请求序列相当于跟踪数据的重放。注意,可能有许多重放跟踪数据的理由,而研究反常只是一个例子。此处的系统和方法可以用于重放跟踪数据而不考虑启动这种重放的目的或意图。
跟踪数据的重放不需要针对与最初发出跟踪的数据库相同的数据库。正如可以为跟踪数据的检索而选择任何数据库那样,可以为重放选择任何数据库。这允许数据库用于与担负实际责任的数据库相分离的测试目的。也允许根据需要针对多种数据库平台和产品重放跟踪数据。
正如可以将文件403中的跟踪数据重放到数据库300那样,可以重放表404或服务器405中的跟踪数据。以这些不同格式储存的数据需要合适的处理以适当地格式化并提交用于重放的跟踪,然而以任何格式403、404、405存储的相同的跟踪数据可以用于为数据库300生成相同的重放序列。如图4所示,示例性用户对象400可以通过所提供的API 401请求跟踪数据的重放。请求可以指定要重放的跟踪数据——也可以通过生成请求410、411、412指示数据被存储在文件403、表404或服务器405中,然后API实现430可以从跟踪数据所在的文件403、表404或服务器405中检索跟踪数据,并针对所指定的数据库重放跟踪数据。
有时在重放之前需要修改跟踪数据。例如,可能怀疑某一类型的查询是引起故障的原因。可疑类型的多个其它查询可以在重放之前添加到所存储的跟踪数据组以测试这一推测。或者,修改现有跟踪数据组各自的记录可能是有利的。再次,可能还有一些在重放之前改变跟踪数据的理由,本发明不限于使用此处的API的任何特定意图。因为需要在重放之前改变跟踪数据,此处使用的术语重放所指的不仅是提交与所记录的跟踪数据的请求相同的一组请求,也是指提交与所记录的跟踪数据的请求相关的一组请求。正如图4所表示的那样,所提供的API允许示例性用户对象400诸如在请求410、411和412中请求修改跟踪数据。于是API 401的实现430可以修改所指定的跟踪数据,无论它位于文件403、表404还是服务器405。
提供一种用于数据库跟踪数据的计划性检索和重放的API。以上一般地描述API、数据库、跟踪数据以及跟踪数据的检索和重放。然后讨论用于计划性检索和重放的系统和方法,这将用于特别地指出以上所一般地描述的API的其它特征。
对于这一文献,术语计划性是指可以由自动化的功能访问。换言之,可以书写触发计划性功能,而不需要或减少了人的干预的计算机化的指令。例如,考虑具有存储在MICROSOFT WORD文档中的一组数字的计算机用户。用户希望添加这些数字。这样做的一种方法是使用计算器应用程序。计算机用户可以打开计算器应用程序,并使用用于选择合适数字的鼠标设备添加任何数字。但是计算器功能一般不具备编写计划性地检索并添加数字的计算机程序的能力。要添加大量数字或许多数字组的用户会发现将计算器应用程序用于这种任务是繁重的。
同样,需要检索和/或重放大量数据库跟踪数据或许多这类跟踪数据的组的用户,会发现使用分析器应用程序来“手工”完成这类任务是繁重的。相反,这类用户可能倾向于编写计划性地检索、存储和重放跟踪数据的程序。用户可以指定什么时候检索跟踪数据、从哪里检索它、如何存储它、如何修改它、什么时候重放它,等等,正如此处结合各个方面和实施例所述的那样。所有这些操作都可以按照用户的指定计划性地执行。使用此处所述的系统和方法,可以大大促进这类程序的创建。
图4和图5中例示了依照本发明的各种实施例的跟踪数据的检索。图4指出用于跟踪数据的检索的进程和上下文,而图5例示用于提供计划性检索功能的对象和接口的实现。以上结合图4讨论了检索,下面讨论图5中的示例性实现。
参照图5,提供一个阐明用于依照此处的系统和方法的API实现的统一建模语言(UML)图表。在图5顶端,元素500提供给出连接信息,如用于连接到的服务器或数据库、到图5的其它对象的连接信息的功能。元素501提供用于可以由其它各种对象访问的错误报告的函数。元素502是用于数据记录的接口,元素504是用于检索数据的接口。它是在随MICROSOFTNET框架一起发布的System.Data名字控件中定义的受管接口。图5中的这一接口504所包含的内容是用于明确地标识示例性API的潜在功能的目的,并不意味着特别将本发明限制为IDataReader 504接口。
对象506、507、508、509和510从IDataReader 504接口继承。对象508、509和510分别向服务器、表、文件提供检索跟踪数据的功能。用于这些功能的单独对象是有利的,因为在读取数据和将数据写入文件、表或服务器时需要不同的操作组。对于服务器的情况,一般不能访问用于修改记录的跟踪数据,因此对象508直接从对象506继承,而没有像对象509和510那样也从507继承。由对象508提供的用于检索跟踪数据并将其存储到文件的函数包括TraceServer(),它格式化跟踪数据以存储到服务器中;Start(),它启动来自指定服务器的跟踪数据的检索;Pause(),它暂停来自指定服务器的正在运行的跟踪数据的检索;以及Stop(),它停止来自指定服务器的正在运行的跟踪数据的检索。因为对象508从对象506继承,所以508也提供用于读取输入数据的函数Read()以及用于关闭数据所存储的位置的函数Close()。此外,对象508提供在IDataReader接口504中指定的函数。通过提供这些函数,对象508允许用户计划性地访问这些函数,并因此自动化了跟踪数据的计划性检索和重放。
对象509和510被例示为从对象507和对象506继承。这是由于以上所述的原因,即,在优选的实施例中,当跟踪数据被保存到表,如在509中,或文件,如在510中时,支持记录修改功能是有利的。为了达到这个目的,对象507从506继承并提供可以改变所存储的跟踪数据的记录的另一写函数。如图5所例示,写函数符合ITraceDataWriter接口505,它提出对写数据以及适当地通知这类写操作的合适对象的要求。接口505进而利用从所建立的IDataRecord接口502继承的IDataRecordChanger接口503。图9以另一种形式示出了IDataRecordChanger接口503。
在图9的实施例中,为IDataRecordChanger接口指定两种方法。本领域中的技术人员将会明白,在这类接口中可以指定不同的或其它的方法而不需要改变本发明的基本操作。图9所例示的接口的目的在于提供一种在写或重放数据时改变数据的方法。在这点上,方法SetValue()可以获取所要代替的列的索引(inti),并将新的值(object value)置于该位置。另一方面,方法AddColumn()将一个新列添加到跟踪数据。在这点上,给这类方法提供列标识符(int columnid)作为自变量,并且可以返回新生成的列的索引。
因此,使用接口503来指定最终改变根据另一个接口502传输的跟踪数据记录允许对象509和510执行记录修改操作。这类记录修改对重放目的来说是有用的。当结合此处所提供的自动化重放技术一起使用时,它允许快速修改和重放跟踪数据以提供以前从未获得的高性能数据库分析。
被对象509和510继承的所有函数可以由诸如示例性的用户对象400等用户计划性地访问。因此,尽管对象509和510可以将来自数据库流的跟踪数据分别写入表或文件,如UML图表中的TraceTable()和TraceFile()标记所指示的,,但由于它们从对象507继承,它们也支持存储在表和文件中的记录的修改。此外,由于从对象506继承,对象509和510也支持读取数据库跟踪流并关闭到数据库跟踪流的连接的函数。那些了解UML图表的人将会明白这一点,并将会更进一步认识IDataReader接口504和从该接口继承的对应的示例性函数。
现在考虑支持数据库跟踪数据的计划性重放的本发明的实施例,参见图6、图7、图8、图9、图10和图11。图6提供示意性地示出各种操作的图表,这些操作可以通过允许跟踪数据的计划性重放的API执行。图7至图11提供关于各种调用的信息,这些调用可以被展现以访问重放函数。注意,此处不提供UML图表,因为这种图表既不是感兴趣的也不能提供信息。这是因为,在优选的实施例中,重放函数对象不需要从任何以前存在的对象继承。即,肯定可以设计利用继承的本发明的实现。
参见图6,再次提供可以向API 601发出各种函数调用610、611、612的示例性用户对象600。API 601可以由API 601的实现630支持,该实现603用于执行所请求的各种操作。实现630可以利用此处所讨论的各种面向对象的设计原理,如此处参照图12所讨论的。在执行所请求的功能时,API实现630可以访问和/或修改存储在文件603中的跟踪数据、存储在表604中的跟踪数据以及存储在服务器605中的跟踪数据。实现630也可以表示涉及602、604和605中的跟踪数据的一系列查询或其它通信并将其发送给数据库640。该实现可以同时检索跟踪数据流返回642,以便再次将这类数据存储到603、604或605中,供进一步分析。
API可以具备开始、暂停或停止跟踪数据610的重放的能力。图7中也演示这些特征,提供跟踪重放对象类的伪代码定义。诸如图7中提供的作出调用的用户对象600可以指定用于开始重放的开始操作,以及多个开始参数。这些参数可以指定要重放的跟踪的位置、重放的时间、重放的数据库等等。同样,示例性用户对象600可以访问如图7所示的暂停和停止函数。
API也可以具备在任意数量的事件发生时请求通知611的能力。这类通知可以被用户对象600在重放跟踪数据时用于进一步的有用优势。图7中也例示了这些用户通知。例如,用户对象600可以在开始重放之前请求通知。这也由图7中“event ReplayNotifyDelegate”那一行示出。这一特征允许用户对象600,例如,在重放之前调查跟踪数据,并根据需要对各种记录做出任何改变。同样,当重放暂停时,正如图7“event ReplayPauseDelegate ReplayPauseNotify”那一行所指出的那样,可以请求通知。当重放重新开始时,正如图7 “eventReplayPauseDelegate ReplayStartNotify”那一行所指出的那样,可以请求通知,或者当跟踪数据重放停止时,正如图7“event ReplayStopDelegateReplayStopNotify”那一行所指出的那样,可以请求通知。相反,用户对象600不能作出对通知611的请求,只能选择忽略这些事件。
用户对象600将这些通知611用于协调跟踪数据的修改和重放的这些方法是没有限制的。本专利的范围延及所揭示的API的使用,以及利用API的对象,而不考虑那些对象是否也包括超出本发明范围的其它特征。通过此处所述的用于重放跟踪数据的API提供通知的想法实质上是一个进步,将支持使用所提供的API的用户对象的灵活、强大的设计。
图6的通知611a代表从API 601到用户对象的通知信号。应当明白,可以利用本领域中所知道的任何形式的通知,如事件对象或.NET代理,正如图7中的语言所表示的那样。在各种优选的实施例中,.NET代理被用于回调通知,可以声明通知事件,正如图8所例示的那样。此处的例子可以延及其它实施例,只有较小的实现差异。如图8所示,ReplayNotifyDelegate可以声明属于主题通知的数据。这也适用于其它示例性通知事件。
图8中所例示的通知事件被设计成携带足够的信息以允许事件处理程序响应于通知智能地选择合适的行动。这些通知也可以包含影响重放执行的机制。在这点上,下面的示例性信息可以和通知事件,如图8的那些通知事件一起包括在内:
RecordNumber——可以指定要重放的跟踪记录的行号。
currentRecord——可以是当前正在重放的跟踪记录。用户对象可以检查该记录的列,并直接修改它。
skipRecord——通过将跳过记录标志设定为“真”,用户对象处理程序可以命令API不要重放特定跟踪记录。
图7中所例示的其它特征,首先是此处被表示为“TraceReaderWriterOutput”函数的函数。正如所使用的语言所暗示的那样,这允许用户对象600检索由数据库发出的作为重放结果的跟踪数据输出。可以在存储之前修改这类输出数据。“ConnectionlnfoBase Connection”函数允许用户对象指定涉及连接到数据库或其它合适的服务器的信息。例如,可以指定特定的数据库地址和通信协议。然后API可以在用户对象600所要求的时刻计划性地打开到所指定的数据库的连接。
最后参见图7,“TraceReplayOptions”函数允许用户对象600指定任意数量的附加选项。图10中例示在优选的API中可用的示例性选项,为跟踪数据API提供选项的对象可以提供所例示的5个选项中的任何一个,以及被设计为或被发现是有用的任何其它选项。可以控制重放线程池的大小。这个选项可以用于防止重放打开太多的线程并使系统资源过载。可以指定在“取消”或终止挂起的进程之前的等待时间。例如,如果到数据库的连接运行不正常,则可以给那个进程指定终止之前的一定量的时间。可以设置挂起的进程的轮询频率。这允许用户指定应当将多少系统资源用于轮询。在非常稳定的环境中,可能需要不太频繁的轮询。可以指定重放模式。图11中进一步例示这个选项。此处考虑两种模式。第一,顺序重放模式,其中跟踪数据以与跟踪数据被收集到跟踪数据存储区域时的顺序相同的顺序被重放到数据库。第二,“连接级同步”模式,其中涉及特定客户机的所有事件都被顺序重放,但不保持事件的全局顺序,即,假定客户机请求相互独立。例如,如果单个客户机生成了对特定数据库的请求中的十分之一,本发明的一个方面允许针对数据库顺序重放数据库请求中相同的十分之一。如同可以被计划性地访问的其它功能那样,这考虑到重放细节的灵活控制。
最后,参见图10,对象可以指定是否应当返回实际数据库查询结果,或者只返回产生了错误的操作的结果。这个选项突出了本发明的一个有用的方面,即除了追踪数据之外,实际结果——查询结果或错误——可以在重放过程中收集,而且,这个特征可以由提供重放选项控制的对象控制。
因此,此处所揭示的API和各种支持对象从几个方面大大简化了跟踪数据的管理。首先,它们使得用户可以完全自动化被跟踪的服务器的安全审计和健康监控。其次,它们考虑到新服务器发布和安全包的自动功能验证。
示例性计算和网络环境
参见图2a,概括地描述适用于本发明的系统和方法的示例性计算设备200。在它最基本的配置中,设备200一般包括处理单元202和存储器203。取决于计算设备的确切配置和类型,存储器203可以是易失性存储器(如随机存取存储器)、非易失性存储器(如只读存储器、闪存等)或这两种存储器的某种组合。另外,设备200也可以有大容量存储(可移动存储204和/或不可移动存储205),如磁盘、光盘或磁带。同样地,设备200也可以有输入设备207,如键盘和鼠标,和/或输出设备206,如呈现GUI作为访问计算设备200的功能的图形帮助的显示器。设备200的其它方面可以包括使用有线或无线介质到其它设备、计算机、网络、服务器等等的通信连接208。所有这些设备在本领域中广为人知,不需要在此详细讨论。
图2b例示来自图2a的适用的计算设备和外围系统的稍微更详细的例子。计算系统环境220仅仅是一个合适的计算环境的例子,并非意味着对本发明的使用范围或功能的任何限制。计算环境220也不应当被解释为对在示例性操作环境220中例示的任何一个组件或其组合有任何依赖或要求。
本发明可在许多其它通用或专用计算系统环境或配置中操作。适用于实现本发明的众所周知的计算系统、环境和/或配置的例子包含但不限于:个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费性电子产品、网络PC、微型计算机、大型计算机以及包括任何以上系统或设备的分布式计算环境,等等。
本发明可以在由一个或多个组件执行的计算机可执行指令的一般上下文中如程序模块中实现。通常,程序模块包括完成特定的任务或实现特定的抽象数据类型的例程、程序、对象、数据结构等等。本发明还可以在分布式计算环境中实践,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参见图2b,用于实现本发明中的示例性客户机系统包括计算机241形式的通用计算设备。计算机241的组件包含但不限于:处理单元259、系统存储器222以及将包括系统存储器221在内的各个系统组件连接到处理器259的系统总线221。系统总线221可以是包括存储器总线或存储器控制器、外围总线以及使用多种总线体系结构的局部总线在内的若干总线结构类型中的任一种。作为例子而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线(也称为Mezzanine总线)。
计算机241一般包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,并且包括易失性和非易失性介质以及可移动和不可移动介质。作为例子而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法和技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质以及可移动和不可移动介质。计算机存储介质包括但不局限于:RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光学存储器、磁带盒、磁带、磁盘存储器或者其它磁存储设备或者任何其它可以用于存储或者传递所需信息并可由计算机241访问的介质。通信介质一般以诸如载波或者其它传输机制等已调制数据信号的形式表现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传递介质。术语“已调制数据信号”是指以以在该信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为例子而非限制,通信介质包括有线介质如有线网络或有线直接连接,以及无线介质如声学、射频、红外和其它无线介质。以上任何一个的组合也应当被包括在计算机可读介质的范围之内。
系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)223以及随机存取存储器(RAM)260。基本输入/输出系统224(BIOS)一般存储在ROM 223内,它包括比如在启动时帮助在计算机241内的元件之间传输信息的基本例程。RAM 260一般包含可由处理单元259即时访问的和/或目前在操作的数据和/或程序模块。作为例子而非限制,图2b例示了操作系统225、应用程序226、其它程序模块227以及程序数据228。
计算机241还包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅仅作为例子,图2b例示从不可移动的非易失磁性介质读取或向其中写入的硬盘驱动器238、从可移动的非易失性磁盘254读取或向其中写入的磁盘驱动器239以及从如CD-ROM或其它光学介质等可移动的非易失性光介质253读取或向其中写入的光盘驱动器240。其它可以用于示例性操作环境的可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238一般通过不可移动存储器接口,如接口234连接到系统总线221,而磁盘驱动器239和光盘驱动器240一般通过可移动存储器接口,如接口235连接到系统总线221。
以上讨论且例示于图2b中的驱动器及其相关计算机存储介质为计算机241提供了计算机可读指令、数据结构、程序模块以及其它数据的存储。例如,在图2b中,将硬盘驱动器238例示为存储操作系统258、应用程序257、其它程序模块256和程序数据255。注意,这些组件可以与操作系统225、应用程序226、其它程序模块227和程序数据228相同,也可以与它们不同。这里对操作系统258、应用程序257、其它程序模块256和程序数据255给予不同的标号,以说明至少它们是不同的副本。用户可以通过输入设备,如键盘25 1和定位设备252(通常指鼠标、跟踪球或触摸板)向计算机241输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备往往通过耦合至系统总线的用户输入接口236连接至处理单元259,但也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器242或其它类型的显示设备也通过接口,如视频接口232连接至系统总线221。除了监视器之外,计算机也可包括其它外围输出设备,如扬声器244和打印机243,它们可以通过输出外围接口233连接。
计算机241可工作在使用到一个或多个远程计算机,如远程计算机246的逻辑连接的网络化环境内。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且一般包括与计算机241相关的许多或所有上述元件,尽管图2b中仅例示了存储器存储设备247。图2b所述的逻辑连接包括局域网(LAN)245以及广域网(WAN)249。这些网络环境常见于办公室、企业范围内的计算机网络、内联网和因特网。
当用于LAN网络环境时,计算机241通过网络接口或适配器237连到局域网245。当用于WAN网络环境时,计算机241一般包括调制解调器250或用于通过广域网249,如因特网建立通信的其它装置。可以内置或者外置的调制解调器250可通过用户输入接口236或者其它合适的机制连接到系统总线221。在网络化环境中,所述的与个人计算机241相关的程序模块或其部分可存储在远程存储器设备内。作为例子而非限制,图2b例示远程应用程序248驻留在存储器设备247上。可以理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它装置。
应当理解,此处所述的各种技术可以结合硬件或软件,或者,如果合适,也可以结合两者的组合实现。因此,本发明的方法和装置或其特定方面或部分,可以采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码的形式(即指令),其中,当诸如计算机等机器载入并执行程序代码时,机器就变成用于实践本发明的装置。在可编程计算机上执行程序代码的情况下,计算设备通常包括处理器、处理器可读存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。一个或多个程序可以实现或利用此处所描述与发明相关的进程,如通过使用API、可重用的控制等。这些程序较佳地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要的话,程序可以用汇编语言或机器语言实现。无论如何,语言可以是编译语言或解释语言,并和硬件实现相结合。
尽管示例性实施例是在一个或多个独立计算机系统的环境中利用本发明,但是本发明不受这样的限制,相反也可以结合任何计算环境来实现,如网络或分布式计算环境。此外,本发明可以在多个处理芯片或设备内跨多个处理芯片或设备来实现,并且存储同样可以跨多个设备来实现。这些设备可以包括个人计算机、网络服务器、手持式设备、超级计算机或集成到诸如汽车和飞机等其它系统内的计算机。
图2c中提供了示例性的网络化计算环境。本领域内的普通技术人员可以理解,网络可以连接任何计算机或其它客户机或服务器设备,或者在分布式计算环境中。在这点上,任何具有任意数量的处理、存储器或存储单元的计算机系统或环境,以及同时发生的多个应用程序和进程被认为适于与所提供的系统和方法结合使用。
分布式计算通过计算设备和系统之间的交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、文件的高速缓存和磁盘存储。分布式计算利用网络连接,允许客户机充分利用其集体能力使整个企业受益。在这点上,多种设备可以具有包含此处所述的进程的应用程序、对象或资源。
图2c提供示例性网络化或分布式计算环境的示意图。该环境包括计算设备271、272、276和277以及对象273、274和275,还有数据库278。这些组件271、272、273、274、275、276、277和278的每一个可以包括或利用程序、方法、数据存储、可编程逻辑等等。组件271、272、273、274、275、276、277和278可以跨越相同或不同的设备的诸部分,如PDA、音频/视频设备、MP3播放器、个人计算机等等。组件271、272、273、274、275、276、277和278中的每一个可以通过通信网络270与其它组件271、272、273、274、275、276、277和278通信。在这点上,任何实体都可以负责数据库278或其它存储元件的维护和更新。
网络270本身可以包括向图2c的系统提供服务的其它计算实体,并且本身可以代表多个互相连接的网络。依照发明的一个方面,组件271、272、273、274、275、276、277和278中的每一个可以包含能利用API或其它对象、软件、固件和/或硬件的分立的功能程序模块,以请求其它组件271、272、273、274、275、276、277和278中的一个或多个的服务。
也应当明白,可以在另一个计算设备276上主存对象,如275。因此,尽管所述的物理环境可以示出所连接的设备为计算机,这种例示只是示例性的,并且可选择地,物理环境可以被描绘或描述为包括各种数字设备,如PDA、电视机、MP3播放器等等,以及软件对象,如接口、COM对象等等。
有多种支持分布式计算环境的系统、组件和网络配置。例如,计算系统可以通过有线或无线系统、本地网络或广泛的分布式网络连接在一起。目前,许多网络被耦合到因特网,提供用于广泛的分布式计算的基础结构,并且包含许多不同的网络。无论是否耦合到因特网上,任何这些基础结构都可以与所提供的系统和方法一起使用。
网络基础结构使得可以实现许多网络拓扑结构,如客户机/服务器、对等或混合体系结构。“客户机”是使用它所不涉及的另一个类或组的服务的类或组的成员。在计算中,客户机是一个进程,即,一般说来是请求由另一个程序提供的服务的一组指令或任务。客户机进程利用所请求的服务,不需要“知道”任何关于其它程序或该服务本身的工作细节。在客户机/服务器体系结构,尤其是网络化系统中,客户机通常是访问由另一台计算机,如服务器提供的共享网络资源的计算机。在图2c的例子中,取决于环境,任何组件271、272、273、274、275、276、277和278都可以被看作客户机、服务器或两者兼有。
一般地,尽管不是必然地,服务器是可以通过远程或本地网络,如因特网访问的远程计算机系统。客户机进程在第一计算机系统中可以是活动的,服务器进程在第二计算机系统中可以是活动的,通过通信介质相互通信,因此提供分布式功能并允许多个客户机利用服务器的信息收集能力。任何软件对象可以跨过多个计算设备或对象分布。
客户机和服务器利用协议层提供的功能相互通信。例如,超文本传输协议(HTTP)是用于万维网(WWW)或“Web”的公共协议。一般地,计算机网络地址,如互联网协议(IP)地址或其它引用,如统一资源定位符(URL),可以用于相互识别服务器或客户机计算机。网络地址可以称为URL地址。可以通过通信介质提供通信,例如,客户机和服务器可以通过用于高容量通信的TCP/IP连接相互耦合。
鉴于可以根据图2a和图2b中所提供的通用框架构造的种种计算环境,以及可以在如图2c的网络环境等网络环境中的计算过程中发生的其它多样化,此处所提供的系统和方法不能被解释为以任何方式受限于特定计算体系结构。相反,本发明不应当限于任何单个实施例,而应当依照所附权利要求书的广度和范围来解释。
Claims (55)
1.一种用于支持数据库跟踪数据的计划性检索和重放的系统,包括:
第一功能元件,包括用于检索数据库跟踪数据的多个计算机可读指令;
第一展示的功能调用,由此诸用户计算机进程可以计划性地启动所述第一功能元件的操作;
第二功能元件,包括用于存储数据库跟踪数据的多个计算机可读指令;
第三功能元件,包括重放数据库跟踪数据的多个计算机可读指令;
第三展示的功能调用,由此用户计算机进程可以计划性地启动所述第三功能元件的操作。
2.如权利要求1所述的系统,其特征在于,所述第二功能元件包括用于将数据库跟踪数据存储到文件、表和服务器中的一个或多个的多个计算机可读指令。
3.如权利要求1所述的系统,其特征在于,还包括第四功能元件,包括用于修改所存储的数据库跟踪数据的多个计算机可读指令。
4.如权利要求3所述的系统,其特征在于,还包括第四展示的功能调用,由此用户计算机进程可以计划性地调用所述第四功能元件的操作。
5.如权利要求1所述的系统,其特征在于,所述第一功能元件包括从一IDataReader接口继承的一个或多个对象。
6.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于在重放跟踪数据之前通知用户计算机进程的多个计算机可读指令。
7.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于当来自重放的数据库输出对用户计算机进程可用时通知用户计算机进程的多个计算机可读指令。
8.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于在重放被停止时通知用户计算机进程的多个计算机可读指令。
9.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于顺序重放模式的多个计算机可读指令,其中,对特定数据库的所有数据库服务请求实质上都以所述连续重放模式重放。
10.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于连接级重放模式的多个计算机可读指令,其中,从被表示的客户机或客户机组发送给数据库的所有数据库服务请求实质上都以所述连接级重放模式重放。
11.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于实质上收集与重放相关联的所有数据库输出的多个计算机可读指令。
12.如权利要求1所述的系统,其特征在于,所述第三功能元件包括用于实质上只收集与重放相关联的所报告的数据库错误的多个计算机可读指令。
13.一种允许计算机化进程计划性地检索和重放数据库跟踪数据的方法,包括:
展示用于检索数据库跟踪数据的第一功能调用,其中,所述第一功能调用被展示给用户计算机化进程;
响应于调用所述第一功能调用,检索数据库跟踪数据;
将数据库跟踪数据存储到由所述用户计算机化进程的一个或多个指定的位置或指定为默认位置的位置中;
展示用于重放数据库跟踪数据的第二功能调用,其中,所述第二功能调用被展示给用户计算机化进程;以及
响应于调用所述第二功能调用,重放数据库跟踪数据。
14.如权利要求13所述的方法,其特征在于,所述存储包括将数据库跟踪数据写入文件、表和服务器中的一个或多个。
15.如权利要求13所述的方法,其特征在于,用于检索的所述功能调用包括用于将数据库跟踪数据存储到多个位置的多个功能调用,由此,通过调用所述多个函数调用中的一个或多个,存储位置可以由用户计算机化进程指定。
16.如权利要求13所述的方法,其特征在于,还包括揭示用于修改数据库跟踪数据的第四功能调用,其中,所述第四功能调用被展示给用户计算机化进程。
17.如权利要求16所述的方法,其特征在于,还包括响应于调用所述第四功能调用,修改数据库跟踪数据。
18.如权利要求13所述的方法,其特征在于,所述检索数据库跟踪数据包括从一IDataReader接口继承的一个或多个对象。
19.如权利要求13所述的方法,其特征在于,还包括在重放跟踪数据之前通知用户计算机进程。
20.如权利要求19所述的方法,其特征在于,所述通知包括将一事件对象返回给用户计算机进程。
21.如权利要求19所述的方法,其特征在于,所述通知包括将一代理返回用户计算机进程。
22.如权利要求19所述的方法,其特征在于,所述通知包括将一接口返回用户计算机进程,其中,所述接口定义了用于修改跟踪数据记录的参数。
23.如权利要求19所述的方法,其特征在于,所述通知包括将一接口返回用户计算机进程,其中,所述接口定义了用于在所述重放期间跳过跟踪数据的参数。
24.如权利要求13所述的方法,其特征在于,还包括当来自重放的数据库输出对用户计算机进程可用时通知用户计算机进程。
25.如权利要求24所述的方法,其特征在于,所述通知包括将一事件对象返回给用户计算机进程。
26.如权利要求24所述的方法,其特征在于,所述通知包括将一代理返回给用户计算机进程。
27.如权利要求13所述的方法,其特征在于,所述重放包括在重放被停止时通知用户计算机进程。
28.如权利要求13所述的方法,其特征在于,所述重放包括连接到一数据库,其中,所述数据库由用户计算机进程指定。
29.如权利要求13所述的方法,其特征在于,所述重放包括控制线程池的大小,其中,所述线程池的大小由用户计算机进程指定。
30.如权利要求13所述的方法,其特征在于,所述重放包括控制时间间隔,其中,在终止不是正在进行中的进程之前,所述系统中用于支持数据库跟踪数据的计划性检索和重放的一个或多个元件将等待所述时间间隔。
31.如权利要求13所述的方法,其特征在于,所述重放包括控制用于发现不是正在进行中的进程的轮询频率。
32.如权利要求13所述的方法,其特征在于,所述重放包括利用一顺序重放模式,其中,对特定数据库的所有数据库服务请求实质上都以所述连续重放模式重放。
33.如权利要求13所述的方法,其特征在于,所述重放包括利用一连接级重放模式,其中,从被表示的客户机或客户机组发送给数据库的所有数据库服务请求实质上都以所述连接级重放模式重放。
34.如权利要求13所述的方法,其特征在于,所述重放包括实质上收集与重放相关联的所有数据库输出。
35.如权利要求13所述的方法,其特征在于,所述重放包括实质上只收集与重放相关联的所报告的数据库错误。
36.一种存储用于允许计算机化进程计划性地检索和重放数据库跟踪数据的指令的计算机可读介质,包括:
用于展示用于检索数据库跟踪数据的第一功能调用的指令,所述第一功能调用被展示给用户计算机化进程;
用于响应于调用所述第一功能调用检索数据库跟踪数据的指令;
用于将数据库跟踪数据存储到由所述用户计算机化进程的一个或多个指定的位置或被指定为默认位置的位置的指令;
用于展示用于重放数据库跟踪数据的第二功能调用的指令,所述第二功能调用被暴露给用户计算机化进程;以及
用于响应于调用所述第二功能调用重放数据库跟踪数据的指令。
37.如权利要求36所述的计算机可读介质,其特征在于,用于存储的所述指令包括用于将数据库跟踪数据写入文件、表和服务器中的一个或多个的指令。
38.如权利要求36所述的计算机可读介质,其特征在于,用于展示用于检索的第一功能调用的所述指令包括用于将数据库跟踪数据存储到多个位置的多个功能调用的指令,由此,通过调用所述多个函数调用中的一个或多个,存储位置可以由用户计算机化进程指定。
39.如权利要求36所述的计算机可读介质,其特征在于,还包括用于展示用于修改数据库跟踪数据的第四功能调用的指令,所述第四功能调用被展示给用户计算机化进程。
40.如权利要求39所述的计算机可读介质,其特征在于,还包括用于响应于调用所述第四功能调用修改数据库跟踪数据的指令。
41.如权利要求36所述的计算机可读的介质,其特征在于,用于检索数据库跟踪数据的所述指令包括从一IDataReader接口继承的一个或多个对象。
42.如权利要求36所述的计算机可读介质,其特征在于,还包括用于在重放跟踪数据之前通知用户计算机进程的指令。
43.如权利要求42所述的计算机可读介质,其特征在于,用于通知的所述指令包括用于将一事件对象返回给用户计算机进程的指令。
44.如权利要求42所述的计算机可读介质,其特征在于,用于通知的所述指令包括用于将一接口返回给用户计算机进程的指令,其中,所述接口定义了用于修改跟踪数据的参数。
45.如权利要求42所述的计算机可读介质,其特征在于,用于通知的所述指令包括用于将一接口返回给用户计算机进程的指令,其中,所述接口定义了用于在所述重放期间跳过跟踪数据的参数。
46.如权利要求42所述的计算机可读介质,其特征在于,用于通知的所述指令包括用于将一代理返回给用户计算机进程的指令。
47.如权利要求42所述的计算机可读介质,其特征在于,还包括用于当来自重放的数据库输出对用户计算机进程可用时通知用户计算机进程的指令。
48.如权利要求47所述的计算机可读介质,其特征在于,用于通知的所述指令包括用于将一事件对象返回给用户计算机进程的指令。
49.如权利要求47所述的计算机可读介质,其特征在于,用于通知的所述指令包括用于将一代理返回给用户计算机进程的指令。
50.如权利要求36所述的计算机可读的介质,其特征在于,用于重放的所述指令包括用于在重放被停止时通知用户计算机进程的指令。
51.如权利要求36所述的计算机可读介质,其特征在于,用于重放的所述指令包括用于连接到一数据库的指令,其中,所述数据库由用户计算机进程指定。
52.如权利要求36所述的计算机可读介质,其特征在于,用于重放的所述指令包括用于利用一顺序重放模式的指令,其中,对特定数据库的所有数据库服务请求实质上都以所述顺序重放模式重放。
53.如权利要求36所述的计算机可读介质,其特征在于,用于重放的所述指令包括用于利用一连接级重放模式的指令,其中,从被标识的客户机或客户机组发送给数据库的所有数据库服务请求实质上都以所述连接级重放模式重放。
54.如权利要求36所述的计算机可读介质,其特征在于,用于重放的所述指令包括用于实质上收集与重放相关联的所有数据库输出的指令。
55.如权利要求36所述的计算机可读的介质,其特征在于,用于重放的所述指令包括用于实质上只收集与重放相关联的所报告的数据库错误的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/872,633 US7822741B2 (en) | 2004-06-21 | 2004-06-21 | API for programmatic retrieval and replay of database trace |
US10/872,633 | 2004-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1722086A true CN1722086A (zh) | 2006-01-18 |
CN1722086B CN1722086B (zh) | 2010-05-12 |
Family
ID=35057008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100758886A Expired - Fee Related CN1722086B (zh) | 2004-06-21 | 2005-05-20 | 用于数据库跟踪的计划性检索和重放的api |
Country Status (5)
Country | Link |
---|---|
US (1) | US7822741B2 (zh) |
EP (1) | EP1610238A3 (zh) |
JP (1) | JP5404986B2 (zh) |
KR (1) | KR101203333B1 (zh) |
CN (1) | CN1722086B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104038556A (zh) * | 2014-06-26 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种Sybase IQ数据库集群中的存储资源配置方法及系统 |
CN109690549A (zh) * | 2016-09-09 | 2019-04-26 | 微软技术许可有限责任公司 | 跨不同方来跟踪对象 |
CN110058987A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于对计算系统进行追踪的方法、设备和计算机可读介质 |
CN110168507A (zh) * | 2017-01-06 | 2019-08-23 | 微软技术许可有限责任公司 | 可执行代码的推测重放 |
CN110249315A (zh) * | 2017-02-02 | 2019-09-17 | 微软技术许可有限责任公司 | 在跟踪重放期间存储器值的有效检索 |
CN110799952A (zh) * | 2017-06-29 | 2020-02-14 | 微软技术许可有限责任公司 | 分布式时间旅行跟踪记录和重放 |
CN112020717A (zh) * | 2018-04-24 | 2020-12-01 | 微软技术许可有限责任公司 | 经由动态缩放的时间膨胀来减轻计时攻击 |
CN112131070A (zh) * | 2019-06-25 | 2020-12-25 | 北京京东尚科信息技术有限公司 | 调用关系跟踪方法、装置、设备及计算机可读存储介质 |
US11915028B2 (en) | 2017-04-01 | 2024-02-27 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
US11994974B2 (en) | 2016-10-20 | 2024-05-28 | Microsoft Technology Licensing, Llc | Recording a trace of code execution using reference bits in a processor cache |
US12079105B2 (en) | 2016-08-31 | 2024-09-03 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599966B2 (en) * | 2005-01-27 | 2009-10-06 | Yahoo! Inc. | System and method for improving online search engine results |
US8130758B2 (en) * | 2005-06-27 | 2012-03-06 | Bank Of America Corporation | System and method for low latency market data |
US8065351B2 (en) | 2006-02-23 | 2011-11-22 | Microsoft Corporation | Default location that may be dynamically changed |
US8024299B2 (en) | 2006-10-20 | 2011-09-20 | Oracle International Corporation | Client-driven functionally equivalent database replay |
US7890458B2 (en) | 2006-10-20 | 2011-02-15 | Oracle International Corporation | Capturing database workload while preserving original transactional and concurrency characteristics for replay |
US7890457B2 (en) | 2006-10-20 | 2011-02-15 | Oracle International Corporation | Transactionally consistent database workload replay |
US7634512B2 (en) | 2006-10-20 | 2009-12-15 | Oracle International Corporation | Migrating temporary data of a session |
EP1952241B1 (en) * | 2006-10-20 | 2016-03-16 | Oracle International Corporation | Database workload capture and replay architecture |
US7984015B2 (en) | 2006-10-20 | 2011-07-19 | Oracle International Corporation | Database workload capture and replay architecture |
US8214807B2 (en) * | 2007-01-10 | 2012-07-03 | International Business Machines Corporation | Code path tracking |
KR101358750B1 (ko) | 2007-01-22 | 2014-02-06 | 삼성전자주식회사 | 관계형 데이터베이스를 이용한 프로그램 트레이스 방법 |
US8997048B1 (en) | 2007-02-14 | 2015-03-31 | Oracle America, Inc. | Method and apparatus for profiling a virtual machine |
US8185740B2 (en) * | 2007-03-26 | 2012-05-22 | Microsoft Corporation | Consumer computer health validation |
WO2008143855A2 (en) * | 2007-05-14 | 2008-11-27 | Dataupia, Inc. | Network-attached storage devices |
US20100332358A1 (en) * | 2007-06-21 | 2010-12-30 | Owens Bryan K | System and method of tracing items |
US9401846B2 (en) * | 2007-10-17 | 2016-07-26 | Dell Products, Lp | Information handling system configuration identification tool and method |
US8433680B2 (en) | 2008-07-01 | 2013-04-30 | Oracle International Corporation | Capturing and restoring database session state |
US8418150B2 (en) | 2009-04-03 | 2013-04-09 | Oracle International Corporation | Estimating impact of configuration changes |
US9935812B1 (en) * | 2009-09-10 | 2018-04-03 | New Relic, Inc. | Performance evaluation of applications that access external resources |
US8818991B2 (en) * | 2009-12-23 | 2014-08-26 | Pivotal Software, Inc. | Apparatus and method for analyzing query optimizer performance |
US9026862B2 (en) * | 2010-12-02 | 2015-05-05 | Robert W. Dreyfoos | Performance monitoring for applications without explicit instrumentation |
US9805108B2 (en) | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US10614098B2 (en) | 2010-12-23 | 2020-04-07 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US10997211B2 (en) | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US10713280B2 (en) | 2010-12-23 | 2020-07-14 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10346430B2 (en) | 2010-12-23 | 2019-07-09 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US9740762B2 (en) | 2011-04-01 | 2017-08-22 | Mongodb, Inc. | System and method for optimizing data migration in a partitioned database |
US10740353B2 (en) | 2010-12-23 | 2020-08-11 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10262050B2 (en) * | 2015-09-25 | 2019-04-16 | Mongodb, Inc. | Distributed database systems and methods with pluggable storage engines |
US11544288B2 (en) | 2010-12-23 | 2023-01-03 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8996463B2 (en) | 2012-07-26 | 2015-03-31 | Mongodb, Inc. | Aggregation framework system architecture and method |
US10977277B2 (en) | 2010-12-23 | 2021-04-13 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US8572031B2 (en) | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
US11615115B2 (en) | 2010-12-23 | 2023-03-28 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8850261B2 (en) * | 2011-06-01 | 2014-09-30 | Microsoft Corporation | Replaying jobs at a secondary location of a service |
US10585766B2 (en) | 2011-06-06 | 2020-03-10 | Microsoft Technology Licensing, Llc | Automatic configuration of a recovery service |
US9311219B2 (en) * | 2011-09-29 | 2016-04-12 | Siemens Aktiengesellschaft | Automatic trace retrieval using semantic bridge |
US8898643B2 (en) * | 2012-06-19 | 2014-11-25 | Sap Se | Application trace replay and simulation systems and methods |
US10872095B2 (en) | 2012-07-26 | 2020-12-22 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11403317B2 (en) | 2012-07-26 | 2022-08-02 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11544284B2 (en) | 2012-07-26 | 2023-01-03 | Mongodb, Inc. | Aggregation framework system architecture and method |
CN105825137B (zh) * | 2015-01-05 | 2018-10-02 | 中国移动通信集团江苏有限公司 | 一种确定敏感数据扩散行为的方法及装置 |
US10496669B2 (en) | 2015-07-02 | 2019-12-03 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
US11843679B2 (en) | 2015-07-27 | 2023-12-12 | Wp Company Llc | Automated dependency management based on page components |
US10846411B2 (en) | 2015-09-25 | 2020-11-24 | Mongodb, Inc. | Distributed database systems and methods with encrypted storage engines |
US10673623B2 (en) | 2015-09-25 | 2020-06-02 | Mongodb, Inc. | Systems and methods for hierarchical key management in encrypted distributed databases |
US9672141B1 (en) * | 2015-11-25 | 2017-06-06 | International Business Machines Corporation | Generic language application programming interface interpreter |
US10671496B2 (en) | 2016-05-31 | 2020-06-02 | Mongodb, Inc. | Method and apparatus for reading and writing committed data |
US10621050B2 (en) | 2016-06-27 | 2020-04-14 | Mongodb, Inc. | Method and apparatus for restoring data from snapshots |
US10866868B2 (en) | 2017-06-20 | 2020-12-15 | Mongodb, Inc. | Systems and methods for optimization of database operations |
US11556500B2 (en) | 2017-09-29 | 2023-01-17 | Oracle International Corporation | Session templates |
US11151025B1 (en) | 2020-05-15 | 2021-10-19 | Dell Products L.P. | Generating software test plans based at least in part on monitored traffic of a production application |
US11544222B2 (en) | 2020-12-11 | 2023-01-03 | Fidelity Information Services, Llc | Systems and methods for data tracing |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835915A (en) * | 1995-01-24 | 1998-11-10 | Tandem Computer | Remote duplicate database facility with improved throughput and fault tolerance |
JPH08235098A (ja) * | 1995-02-22 | 1996-09-13 | Mitsubishi Electric Corp | 分散アプリケーション通信方式 |
US5745750A (en) * | 1995-12-15 | 1998-04-28 | International Business Machines Corporation | Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems |
US6101497A (en) * | 1996-05-31 | 2000-08-08 | Emc Corporation | Method and apparatus for independent and simultaneous access to a common data set |
US6145121A (en) * | 1997-04-17 | 2000-11-07 | University Of Washington | Trace based method for the analysis, benchmarking and tuning of object oriented databases and applications |
JP2000278359A (ja) * | 1999-03-19 | 2000-10-06 | Ntt Communicationware Corp | 電文データ生成方法、電文データ生成装置、サーバ装置、アプリケーションプログラムの試験システムおよび記録媒体 |
US6467052B1 (en) | 1999-06-03 | 2002-10-15 | Microsoft Corporation | Method and apparatus for analyzing performance of data processing system |
JP4257563B2 (ja) * | 2000-08-30 | 2009-04-22 | ソニー株式会社 | 情報処理装置および方法、記録媒体、並びにデータベース構築装置 |
JP2002269145A (ja) * | 2000-12-08 | 2002-09-20 | Fujitsu Ltd | 情報処理装置、端末装置、方法、媒体、およびプログラム |
US7228416B2 (en) * | 2001-01-26 | 2007-06-05 | Hitachi, Ltd. | Database access method and system capable of concealing the contents of query |
CN1435782A (zh) * | 2002-01-31 | 2003-08-13 | 百度在线网络技术(北京)有限公司 | 一种使用快照的方式实现对网上信息进行记录和分析的方法 |
US7039644B2 (en) * | 2002-09-17 | 2006-05-02 | International Business Machines Corporation | Problem determination method, system and program product |
JP2004163480A (ja) * | 2002-11-11 | 2004-06-10 | Hitachi Ltd | 地図生成システム及び地図管理システム |
GB0228279D0 (en) | 2002-12-04 | 2003-01-08 | Ibm | A synchronization method |
EP1562120A1 (en) * | 2004-02-09 | 2005-08-10 | Sap Ag | Data processing system with display of test data |
-
2004
- 2004-06-21 US US10/872,633 patent/US7822741B2/en active Active
-
2005
- 2005-04-21 KR KR1020050033065A patent/KR101203333B1/ko active IP Right Grant
- 2005-05-20 CN CN2005100758886A patent/CN1722086B/zh not_active Expired - Fee Related
- 2005-06-02 JP JP2005163149A patent/JP5404986B2/ja not_active Expired - Fee Related
- 2005-06-03 EP EP05104857A patent/EP1610238A3/en not_active Ceased
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104038556B (zh) * | 2014-06-26 | 2017-11-17 | 浪潮(北京)电子信息产业有限公司 | 一种Sybase IQ数据库集群中的存储资源配置方法及系统 |
CN104038556A (zh) * | 2014-06-26 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种Sybase IQ数据库集群中的存储资源配置方法及系统 |
US12079105B2 (en) | 2016-08-31 | 2024-09-03 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
CN109690549B (zh) * | 2016-09-09 | 2023-08-01 | 微软技术许可有限责任公司 | 跨不同方来跟踪对象 |
CN109690549A (zh) * | 2016-09-09 | 2019-04-26 | 微软技术许可有限责任公司 | 跨不同方来跟踪对象 |
US11994974B2 (en) | 2016-10-20 | 2024-05-28 | Microsoft Technology Licensing, Llc | Recording a trace of code execution using reference bits in a processor cache |
CN110168507A (zh) * | 2017-01-06 | 2019-08-23 | 微软技术许可有限责任公司 | 可执行代码的推测重放 |
CN110168507B (zh) * | 2017-01-06 | 2023-04-07 | 微软技术许可有限责任公司 | 可执行代码的推测重放 |
CN110249315B (zh) * | 2017-02-02 | 2023-06-20 | 微软技术许可有限责任公司 | 在跟踪重放期间存储器值的有效检索 |
CN110249315A (zh) * | 2017-02-02 | 2019-09-17 | 微软技术许可有限责任公司 | 在跟踪重放期间存储器值的有效检索 |
US11915028B2 (en) | 2017-04-01 | 2024-02-27 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
CN110799952A (zh) * | 2017-06-29 | 2020-02-14 | 微软技术许可有限责任公司 | 分布式时间旅行跟踪记录和重放 |
CN110058987B (zh) * | 2018-01-18 | 2023-06-27 | 伊姆西Ip控股有限责任公司 | 用于对计算系统进行追踪的方法、设备和计算机可读介质 |
CN110058987A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于对计算系统进行追踪的方法、设备和计算机可读介质 |
CN112020717A (zh) * | 2018-04-24 | 2020-12-01 | 微软技术许可有限责任公司 | 经由动态缩放的时间膨胀来减轻计时攻击 |
CN112020717B (zh) * | 2018-04-24 | 2024-07-02 | 微软技术许可有限责任公司 | 经由动态缩放的时间膨胀来减轻计时攻击 |
CN112131070A (zh) * | 2019-06-25 | 2020-12-25 | 北京京东尚科信息技术有限公司 | 调用关系跟踪方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2006012141A (ja) | 2006-01-12 |
US7822741B2 (en) | 2010-10-26 |
KR20060047324A (ko) | 2006-05-18 |
KR101203333B1 (ko) | 2012-11-20 |
CN1722086B (zh) | 2010-05-12 |
US20050283457A1 (en) | 2005-12-22 |
EP1610238A2 (en) | 2005-12-28 |
EP1610238A3 (en) | 2006-07-26 |
JP5404986B2 (ja) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1722086A (zh) | 用于数据库跟踪的计划性检索和重放的api | |
CN1988549B (zh) | 生成用于应用会话的资源使用简档的方法和系统 | |
US11194795B2 (en) | Automated maintenance of external tables in database systems | |
Loshin | Big data analytics: from strategic planning to enterprise integration with tools, techniques, NoSQL, and graph | |
US8407669B2 (en) | Device based software authorizations for software asset management | |
US7725441B2 (en) | Methods, systems, and computer program products for disaster recovery planning | |
CN100356321C (zh) | 编程生成合成事务以监视web应用的性能和可用性的方法和系统 | |
US11392469B2 (en) | Framework for testing machine learning workflows | |
US20130080350A1 (en) | Management and notification of object model changes | |
CN1836208A (zh) | 计算机系统和分布式应用程序的基于模型管理 | |
CN1831854A (zh) | 识别计算环境中实际清单与期望清单的不同的系统和方法 | |
CN102576354A (zh) | 支持不同部署架构的可扩展框架 | |
JP2001514422A (ja) | 分散型コンピュータシステム | |
CN102708067A (zh) | 组合具有相同内容的存储器页面 | |
AU2005317688B2 (en) | Export queue for an enterprise software system | |
US8458215B2 (en) | Dynamic functional module availability | |
US11899659B2 (en) | Dynamically adjusting performance of materialized view maintenance | |
CN103098048A (zh) | Sql枚举器 | |
EP4066128A1 (en) | Managed materialized views created from heterogeneous data sources | |
CN116820535A (zh) | 任务处理方法、装置、计算机可读存储介质和电子装置 | |
US10728257B2 (en) | Profile-based dashboard system | |
Thomas | OCA: Oracle Database 12c Administrator Certified Associate Study Guide: Exams 1Z0-061 and 1Z0-062 | |
Pipes et al. | Pro MySQL | |
Virolainen | Migrating Microservices to Graph Database | |
Yang et al. | DB2 performance measurement and tuning hands on exercises |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150429 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150429 Address after: Washington State Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: Washington State Patentee before: Microsoft Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100512 |
|
CF01 | Termination of patent right due to non-payment of annual fee |