基于对象关系确定将哪些对象放置在容器中的装置和方法

文档序号:6564121阅读:206来源:国知局
专利名称:基于对象关系确定将哪些对象放置在容器中的装置和方法
技术领域
本发明一般涉及计算机数据系统,尤其涉及一种当需要组合(combination)里的所有对象来解决问题时,用于于分析对象的关系以确定将哪些对象放置在容器(高速缓存)里以提高系统性能的装置和方法。
背景技术
当不是所有项目符合给定容器限制之内时,计算哪些项目最有利于保持被称为“背包(knapsack)”问题。在诸如Silvano Martello和Paolo Toth的书Knapsack ProoblemsAlgorithms and Computer Implementations的资源中讨论了这个问题的解决方案。为了解决在给定限制之内寻找将添加到容器里的单个对象的正确子集的问题,这本书和其它出版的论文利用现有算法解决了最有效的算法和各种问题。然而,这些参考没有解决当单独的单个对象不是将要添加到所述容器的项目时,如何分析对象的关系的问题。在这些情况下,单个对象的组合是在容器里用于搜索请求所需的,并且通过包括一个组合,其它组合变得更有利于被包括。
计算机目录服务器里的属性高速缓存是遭遇背包问题的特殊情况。现有技术里常见的目录服务器的类型是轻量级目录访问协议(LDAP)目录。LDAP是由程序用于从LDAP储存库或目录寻找信息的因特网协议。因此,LDAP定义由客户端程序使用的“语言”来告诉LDAP服务器在任何类型的储存库中的哪一个可以存储数据。在客户端侧,客户端可是电子邮件程序、打印机浏览器或地址本。LDAP也定义由管理者设置的许可来只允许某些人访问在LDAP目录结构中存储的数据,并可选地保持某些数据为私有。LDAP方案是描述服务器中数据的格式和属性的一种方式。
某些LDAP类型的目录服务器具有公知为属性高速缓存的特征,该属性高速缓存允许服务器管理者定义一组属性到存储器里的高速缓存,并配置用于这个高速缓存的最大存储器数量。这些属性存储在数据库表里,但连续地访问这些表来解决LDAP搜索需要过多的系统资源,因此在存储器里高速缓存这些属性以提高效率。如果在存储器里的属性高速缓存里发现了用于解决LDAP搜索所必需的所有属性,那么所述目录服务器将在存储器中快速地解决该搜索,而不是利用对数据库表的数据库查询。因此,属性高速缓存是目录服务器的性能增强特性。
现有技术里的属性高速缓存极其难以配置。管理者需要理解由访问服务器的所有应用做出的搜索的类型。即使所述服务器报告哪些属性在搜索过滤器里最经常使用,但它不能基于实时使用来报告所述属性与解决在应用里使用的每个类型的搜索过滤器所需要的所有属性之间的关系,并希望管理者手动配置它。
当单个对象不是将要添加到所述容器(诸如存储器高速缓存)的项目时,缺少一种更有效地高速缓存对象的方式,因此计算机业将继续忍受低效和低性能。

发明内容
根据优选实施例,一种装置和方法当需要组合里的所有对象来解决问题时,分析对象的关系以确定哪些对象将放置在容器(高速缓存)里从而提高数据库性能和利用。相对于在计算机数据库系统里的属性高速缓存说明了优选实施例,其中需要被高速缓存的属性或对象不是单个属性,而是属性组合,其中包括的一个对象影响它所存在的所有组合。在其它优选实施例里,描述了属性高速缓存,其中所包括的对象组合影响所有其它组合,其中所述其它组合包含在所包括的组合里的一个或多个单个对象。
根据下述如附图所示出的本发明的优选实施例的更具体描述,本发明的前述和其它的特征将更加明显。


以下将结合附图来描述本发明的优选实施例,在附图中相同的标号表示相同的单元,并且在附图中图1是根据优选实施例的装置;图2是根据现有技术和优选实施例的用于说明示例的过滤器表;图3是根据现有技术和优选实施例的用于说明属性高速缓存的示例的与图2里的过滤器相关的对象的表;图4是根据优选实施例的用于说明属性高速缓存的示例的与图2里的过滤器相关的组合对象的表;图5是根据优选实施例的说明属性高速缓存的示例的结果的表;图6是根据优选实施例的用于说明属性高速缓存的示例的与图2里的过滤器相关的组合对象的表;图7是根据优选实施例的用于图6里的示例的组合对象的表;图8是根据优选实施例的说明属性高速缓存的示例的结果的表;图9是根据优选实施例的说明属性高速缓存的另一个示例的表;以及图10是根据优选实施例的用于确定在容器里放置对象的方法的流程图,其中所述对象具有对其它对象的关系,所述关系影响将该对象放置在容器里的效益。
具体实施例方式
概述本发明涉及一种用于当需要组合里的所有对象用于问题解决时分析这些对象的关系的装置和方法。参考计算机数据库系统里的属性高速缓存说明了优选实施例。对于那些不熟悉数据库和属性高速缓存的人,这个概述部分提供将有助于理解本发明的额外背景信息。
现有技术的背包方法和属性高速缓存现有技术的背包方法是用于确定什么是在成本上最有利的项目以存储在快速存取存储器(背包)中以便降低经常使用的项目的访问时间的系统化方法。基本的背包例程获得单个对象、它们的相关值及它们的成本,并创建其后用于空间限制来确定哪些对象被放置在所述背包里最有效益的效益比率(benefit ratio)。
图2示出了用于在以下将进一步描述的示例的一组搜索过滤器。所述过滤器由使用LDAP来访问在LDAP储存库里的数据的应用产生。例如,第一过滤器201在储存库里查找包含objectclass(对象类)等于“eperson”并且具有通用名称“Carolyn”的记录。类似地,过滤器202查找包含objectclass等于“eperson”并且具有通用名称“Sarah”或UID为“1234567”的记录。过滤器203查找包含title(标题)等于“computer programmer”或具有通用名称“Karla”或姓为“Arndt”的记录。过滤器204查找包含SN(姓)等于“Arndt”及Givenname(名)为“Timothy”的记录。过滤器205在储存库里查找包含等于“eperson”或“person”的objectclass及具有SN为“Arndt”和UID为“1234567”的记录。过滤器206在储存库里查找包含VID等于“1234567”及具有SN为“Arndt”和Objectcalss等于“epdrson”的记录。
图3中的表300示出对应于图2示出的搜索过滤器的对象的6个单个对象310。表300里的信息可从LDAP服务器得到。对于每个对象310,图3示出了访问速度320、每个对象所需的数据大小330及效益比率340。所述效益比率340提供了一种用于比较存储不同对象的相关值的便捷方式。效益比率通过由访问速度320除以大小330来确定。
图2和图3里的表用于示出现有技术的背包方法确定什么项目将放置在高速缓存里的示例。在根据现有技术的该方法中,分析单个对象来确定哪些对象应当被放置在背包(高速缓存)里。依据背包的大小限制,不同的对象将证明放置到背包里是最有效益的。例如,对给定的容器大小限制,现有技术的方法将从具有最大效益比率的对象开始将对象添加到所述高速缓存里直到满足大小限制。对于1500的限制,选择的第一对象会是CN,因为它在大小限制之内具有最大的效益比率(2.7)。对于1000的组合大小,选择的下一对象会是SN。对于组合全部总大小为1350,选择的下一个对象将是被Givenname,随后是Title。因此,对于1500的限制,现有技术方法将会把对象CN、SN、Givenname和Title放置到所述高速缓存里。
继续利用前述现有技术的示例,现在考虑3000的限制大小。在容器的大小限制等于3000时,选择的前两个对象将依然是每个都具有500大小的CN和SN,因为它们具有较大的效益比率。符合剩下的大小限制且具有最大效益比率的下一个对象是具有1000大小的Objectclass。由于在限制之内依然剩下空间(3000-500-500-1000=1000),因此具有最高效益比率并且其大小小于或等于1000的对象是具有大小为750的UID。由于依然剩下空间,因此选择对象Givenname作为最后一个适合在所述容器里的对象。根据所述现有技术的方法,放置在限制大小是3000的背包里的对象的结果是CN、SN、UID、Objectclass和Givenname。
在前述示例里,仅仅通过分析搜索过滤器的单个对象来确定将什么放置在高速缓存中的选择。然而,当搜索具有组合对象,即多于一个对象时,所述搜索过滤器不能在存储器里解决,除非该组合的所有对象都包括在所述高速缓存里。因此,如果所述搜索过滤器正使用组合的对象并且所有的组合的对象没有在所述高速缓存里结束,那么只高速缓存单一对象将是处理时间和存储器的浪费。因此,为了在由系统管理者定义的存储器限制内确定什么属性组合将对于高速缓存最有效益,就必须了解在搜索过滤器里使用的属性之间的关系。
在现有技术里已经使用了诸如上述的背包方法来确定将什么属性高速缓存在目录服务器环境里。由目录服务器将访问信息的属性存储在存储器里以降低在目录服务器里重复访问相同信息的时间。现有技术里的属性高速缓存极其难以配置,并且典型地是由系统管理者进行的手动过程。在现有技术中为了配置属性高速缓存,管理者需要了解由访问该服务器的所有应用做出的搜索的类型。即使所述服务器报告哪些属性在搜索过滤器里最经常使用,但它不会基于实时使用来报告所述属性与解决在应用里使用的每个类型的搜索过滤器所需要的所有属性之间的关系,并希望管理者手动配置它。进一步来说,即便所述服务器确实报告了所述更多的信息,但这对管理者分析所述信息以手动地配置属性高速缓存仍将相当地困难。
详细描述虽然现有技术已经解决了在给定限制之内查找单个对象的子集来添加到容器的“背包”问题,但它没有解决在单个对象不是将被添加到所述容器的项目时如何分析所述对象的关系的问题。在优选实施例里,由于只有在所有的对象都出现时容器才可以响应请求,因此考虑将需要被放置在容器里的全部对象组合都放置在所述容器里。此外,这里的实施例处理下述情形,其中包括对象组合影响所有其它组合,所述其它组合包含在所述被包括的组合里的一个或多个单个对象。在优选实施例里,如果其它单个对象的组合提供更好的整体效益,则具有最高效益比率的对象不一定是对于给定限制选择的对象。
这里的优选实施例提供了一种用于当需要组合里的所有对象用于问题解决时分析所述对象的关系的装置和方法。这里的实施例允许目录管理者为目录服务器里的属性高速缓存建立自治(autonomical)的控制参数。现在参见图1,计算机系统100是根据本发明优选实施例的装置的一种合适的实现。计算机系统100是IBM eServer iSeries计算机系统。然而,本领域技术人员将明白的是,本发明的机制和装置可以同样应用于任何计算机系统,而无论所述计算机系统是复杂的多用户计算装置、单用户工作站、还是嵌入式控制系统。如图1所示,计算机系统100包括处理器110、主存储器120、海量存储接口135、显示接口140和网络接口150。这些系统部件通过系统总线160的使用而互连。海量存储接口135用于将海量存储设备(诸如直接存取存储设备155)连接到计算机系统100。一种特定类型的直接存取存储设备155是可读写CD RW驱动器,其可将数据存储到CDRW 195或从CD RW 195读取数据。
根据优选实施例的主存储器120包含数据121、操作系统122、目录服务器123、自治高速缓存控制器124、高速缓存125和数据库127。数据121表示用作到计算机系统100的任何程序的输入或来自其的输出的任意数据。操作系统122是在行业里公知为i5/OS的多任务操作系统;然而本领域的技术人员将明白,本发明的精神和范围并不限定于任何一个操作系统。在这里的优选实施例里,存储器120包括如下面进一步描述的目录服务器123。在优选实施例里,目录服务器123是应用。在其它实施例里,目录服务器123是操作系统122的一部分。该存储器120还包括自治高速缓存控制器124、一个或多个属性高速缓存125和属性高速缓存参数126。所述存储器120也包括数据库127,其是已知的或是以后开发的任何适合的数据库。数据库127包括一个或多个表(未图示)。
计算机系统100使用公知的虚拟寻址机制,该机制允许计算机系统100的程序的行为好像是它们只访问大型的、单个存储实体,而不是访问多个、较小的存储实体,诸如主存储器120和DASD设备155。因此,虽然示出的数据121、操作系统122、目录服务器123、自治高速缓存控制器124、属性高速缓存125、属性高速缓存参数126和数据库127驻留在主存储器120里,但本领域普通技术人员将理解,这些项目并不需要同时都完全包含在主存储器120里。同样应该注意的是,这里使用的术语“存储器”通常指计算机系统100的全部虚拟存储器,并可以包括耦合到计算机系统100的其它计算机系统的虚拟存储器。
处理器110可由一个或多个微处理器和/或集成电路构成。处理器110执行存储在主存储器120里的程序指令。主存储器120存储处理器110可以访问的程序和数据。当计算机系统100启动时,处理器110首先执行构成操作系统122的程序指令。操作系统122是管理计算机系统100的资源的复杂程序。这些资源中的某些是处理器110、主存储器120、海量存储接口135、显示接口140、网络接口150和系统总线160。
尽管示出的计算机系统100只包含单个处理器和单个系统总线,但本领域技术人员将明白,本发明可以利用具有多处理器和/或多总线的计算机系统来实施。此外,在优选实施例里使用的接口分别包括分离的、完全程序控制的微处理器,其用于从处理器110卸下计算密集型处理。然而,本领域技术人员将明白,本发明同样可应用于只使用I/O适配器来执行类似功能的计算机系统。
显示接口140用于将一个或多个显示器165直接连接到计算机系统100。这些显示器165可以是非智能(即无声音的)终端或完全程序控制的工作平台,其用于允许系统管理者和用户与计算机系统100通信。然而,注意的是,虽然提供了显示接口140来支持与一个或多个显示器165通信,然而计算机系统100不必一定需要显示器165,因为与用户和其它处理器的所有需要的交互可以经由网络接口150来进行。
网络接口150用于将其它计算机系统和/或工作站(例如图1里的175)通过网络170连接到计算机系统100。无论计算机系统100如何连接到其它计算机系统和/或工作站,本发明同样适用,而不管该网络连接170是否是利用目前的模拟和/或数字技术或经由将来的某些网络机制来制造的。此外,可使用许多不同的网络协议来实现网络。这些协议是允许计算机通过网络170通信的专用计算机程序。TCP/IP(传输控制协议/因特网协议)是一种合适的网络协议的示例。
在这点上,值得注意的是,虽然在完全功能性的计算机系统的上下文中已经描述并将继续描述本发明,但本领域技术人员将明白,本发明可以作为各种形式的程序产品来分派,并且不管用于实际实施所述分派的信号承载媒体的特定类型,本发明同样适用。合适的信号承载媒体的示例包括诸如软盘和CD RW的可记录型媒体(例如图1的195)和诸如数字和模拟通信链路的传输型媒体。注意,优选的信号承载媒体是有形的。
这里的优选实施例解决了背包(高速缓存)情形,其中需要被高速缓存的对象不是单个对象,而是对象组合,其中所包括的一个对象影响存在所述对象的所有组合。现在将根据本发明的实施例来描述示例并在图4和5中表示该示例。这个示例使用在上述的图2中示出的示例里使用的相同的六个LDAP搜索过滤器,并使用图3示出的这些对象的访问速度和大小。
图4的表400示出对应于图2示出的6个搜索过滤器200的5个组合对象410。(虽然表400示出的所有组都是组合对象,但下面描述的相同方法也可用于一个对象的组。)搜索过滤器中的两个204和205具有相同的对象,因此将它们组合到表400里的单一行。表400中的信息可从LDAP目录服务器123得到。对于每个组合对象410,图4示出了访问速度420,每个对象所需的数据大小430和效益比率440。效益比率440提供一种用于比较存储的不同对象的相关值的便利方式。效益比率通过将访问速度420除以大小430来确定。在表400里,对象410不是单个对象,而是需要解决所述搜索过滤器的对象组。每个组合的访问速度420在图里列出。访问速度420是在在服务器上用于任何应用的任何搜索过滤器中使用的属性组合的次数,而不管所搜索的值,不管过滤器的复杂性,也不管在所述过滤器里使用的属性的次数。(相反,图3示出的单个对象的访问速度220反映了包含每个对象220的组合访问速度420的总和。)每个组合对象的大小430包括图3示出的每个单个对象的大小。例如,在图4里的CNObjectclass对象的大小430是1500,其是图3示出的单个CN对象(500)和Objectclass(1000)的总和。
再次参见图4,将根据优选实施例描述第一示例。在这个示例里,分析所述组合对象来确定什么组合对象应当放置在所述高速缓存里。如果容器的大小限制为1500,则第一优选实施例将从具有最大效益比率的对象开始将组合对象添加到高速缓存里直到达到大小限制。对于1500的限制,所选择的第一对象将是CNObjectclass,因为它在大小限制里具有最大效益比率(0.33)。由于CNObjectclass(1500)的大小达到了大小限制,因此没有其它对象可以放置到容器(高速缓存)里。因此对于1500的限制,优选实施例的第一示例将只能将对象CN和Objectclass放置到高速缓存里以允许对于组合对象CNObjectclass的搜索的完全存储器访问。根据这个示例,使用CN和Objectclass的组合对象的过滤器需要所有对象。在上述现有技术示例里,放置在容器里的对象没有覆盖示例里的任何过滤器的所有对象,因此现有技术的高速缓存是低效的。
继续第一优选实施例的示例,现在考虑3000的大小限制。由于容器的大小限制等于3000,因此所选择的第一组合对象将再次是OjectclassSNUID,因为它具有符合大小限制的最大效益比率。由于在高速缓存容器限制里依然有可用空间(3000-2250=750),因此确定具有符合剩下限制的最大效益比率的下一个组合对象。在这种情况下,选择具有大小为650的组合对象GivennameSN作为将适合在容器里的最后一个对象。在图5中示出了根据这个第一优选实施例的对于3000的大小限制放置在背包里的对象的结果。所述将放置在容器里的单个对象是Objectclass、SN、UID和Givenname。从这个示例可以看出,所述容器没有被最高效地填充,因为对象SN被包括在两个组合对象里。
图6-8利用图4示出的相同数据来说明根据这里的优选实施例的另一个示例。在这些优选实施例里,通过在考虑将放置到容器里的下一个组合对象之前考虑已经放置在容器里的组合对象的关系,高速缓存可以被更高效地填充,并使整个系统更高效。为了这样做,考虑组合对象的大小630为在容器里“仍未包括”的对象的大小。所述大小630是放置在所述高速缓存里所需的组里的所有属性的最初总大小。但由于在高速缓存里包括了对象,因此所述大小被重复计算为在高速缓存里仍未包括的大小630。效益比率640是访问速度除以仍未包括的大小,因此,无论何时当仍未包括的大小被修改时动态地计算效率比率640。
依据所述大小限制,在高速缓存里包括了不同组合。如果所述大小限制足够小,以至于只能包括一个组合,那么优选实施例的该方法可包括与现有技术的背包方法相同的结果。例如,再次从图4的表400示出的数据开始,如果对用于存储对象的容器的大小限制很小,诸如是1500,则对于这个步骤的方法类似于现有技术方法,并包括CN和Objectclass属性。包括这些属性是因为具有CNObjectclass的表的第一行具有最大效益比率(0.33),而其大小又在1500的大小限制之内。
然而,如果使用了较大的大小限制,以至于存在累积大小小于所述限制并具有高效益比率的多个对象,那么这里的方法分析所述对象的关系来确定哪些对象应当被放置在高速缓存里。对于示出的图6的示例,利用表400里的数据并且所述限制是3000,由于Objectclass、SN和UID的组合最初效益比率3.6是最大的,因此它们被包括在容器里。接着,所有其它行被动态地更新以反映这个改变。由于属性Objectclass、SN和UID现在都已经被高速缓存,因此就像图6示出的表600所描述的,它们被程序控制地从所述对象组合的码里移除,它们的大小从所述仍未包括的大小里移除,并重新计算效益比率。由于ObjectclassSNUID已经包括在容器里,因此没有在表600里示出。
通过查看图6示出的中间表,可以假设,接下来包括Givenname将是最有效益的,因为它具有最高效益比率。然而,对图6的表的进一步分析示出,虽然所述表具有4行,但由于前两行可以组合,因此实际上只有三行剩下。在组合以后,我们具有三行一行CN,一行CNTitle及一行Givenname。这样,优选实施例的方法组合所有行,其中只保持单个属性。因此,上述前两行被组合,并且CN的访问速度变成1100,大小依然是500,及效益比率变成2.2。因此,将包括的下一个属性是依然符合限制之内的CN,并且现在所使用的总大小变成2750。然后将CN对象从图6的对象组合里移除,得到图7示出的表700。
再次参见图7,通过再分析这两个剩下的行来继续该方法。被改变的唯一行是CNTitle行,由于属性CN在前述步骤中被添加到高速缓存里,因此它变成具有大小为200及效益比率为1.25的只用于Title的行。然后,优选实施例的方法将包括Title而不是Givenname,即使Givenname的效益比率较大,这是因为Title和Givenname二者的效益比率都不符合,而Title的访问速度较快。然后根据优选实施例的方法完成这个示例。然后在图8的表800里示出了用于这个实施例的放置在容器里的对象。
现在参见图9,根据优选实施例将描述另一个示例来示出如何可以分析将被添加到容器里的最后一个组。在这个示例里,容器的大小限制还是1500,但效益比率不相同。本优选实施例将以与之前描述相同的方式,从具有最大的效率比率的对象开始,将组合对象添加到高速缓存里,直到发现满足大小限制的最后一组。对于1500的限制,所选择的第一对象将是CNObjectclass,因为它在所述大小限制之内具有最大的效益比率(0.33)。但由于CNObjectclass的大小(1500)满足大小限制,因此确定是采用这个组、还是是否存在具有更高效益比率的较小组的组合。在这种情况里,可以观察到CNSNTitle和GivennameSN具有的组合大小小于限制大小(1200+650-500(对象CN重复))。由于所组合的这些较小组具有更大的访问速度(350+200=500),因此不再考虑CNObjectclass组,并且以前述相似的方式处理所述较小组。在这种情况下,将添加CNSNTitle组,并然后将像上述那样分析剩下的行。在再分析之后,由于在剩下的限制大小之内GivennameSN组是最后一组,因此它将被添加。
上述方法也可以类似地“反向”应用于在变化中的环境里更新变化中的高速缓存。例如,在属性表被高速缓存的自治高速缓存期间,但是基于访问速度或大小变化(或两者)它不再应当被高速缓存。不再被高速缓存的属性需要被添加回到正确的对象组合,并且仍未包括大小及效益比率需要被再计算来确保只有在经配置的限制之内具有最高效益的这些属性被包括在高速缓存里。
上述和通过先前示例说明的此方法可应用到任何应用,其中为了解决问题需要对象的组合,并且在多个组合之内使用所述对象。必须保持所述组合对象之间的关系及单个对象的信息(即,在这个情况下就是它们的大小)。需要这些变量来将所述方法应用到组合对象,其中已经被包括的对象修改了其它组合的因素,以便为每次迭代产生新的组合。例如,上述方法可以在数据库环境或其它存储器存储环境里使用,以确定什么是存储在本地存储器高速缓存里的最有效益的项目,以将更多的访问时间给更经常使用的项目。这样,将优选实施例应用在所有背包或高速缓存应用,其中所存储的对象具有与其它对象的关系,所述关系影响放置在容器(高速缓存)里的单个对象的效益。
再次参见图1,如上面示例所述,本发明的另一实施例允许用户或系统管理者建立参数126以控制由自治高速缓存控制器124对属性高速缓存125里的属性的自治高速缓存。所述自治高速缓存控制器124是利用高速缓存参数126来确定如何高速缓存及确定哪些属性将高速缓存以加强系统性能来操作的软件例程。所述自治高速缓存控制器124具有允许系统管理者如下面描述那样设置参数的用户接口(未示出)。在优选实施例里,所述自治高速缓存控制器是目录服务器123的一部分。在其它实施例里,所述自治高速缓存控制器124是数据库127的数据库引擎(未示出)的一部分,并以与这里对于目录控制器描述的相同方式操作。
优选实施例的高速缓存参数包括如下Cache Parameter(高速缓存参数)AttributeAutoAdjust(属性自动调整),这是允许系统管理者开启和关闭自治高速缓存的布尔(TRUE|FALSE)参数。当自治高速缓存是关闭时,所述高速缓存用作现有技术的手动高速缓存并只能在Cache Parameter里指定AttributeName被放置在所述高速缓存里。当自治高速缓存是开启时,根据这里描述的其它参数,所述目录服务器高速缓存属性。
Cache Parameter(高速缓存参数)AutoAdjustTime(自动调整时间)-T000000到T235959,这个参数是允许系统管理者来确定在其上执行自治高速缓存的时间边界的值。所述参数设置一天的固定时间(时-分-秒)作为执行高速缓存的边界。
Cache Parameter(高速缓存参数)AutoAdjustTimeInterval(自动调整时间间隔),服务器自治地高速缓存的次数之间的小时时间间隔。例如,如果autoadjusttime是T060000并且timeinterval是4,那么所述服务器将在上午2点、上午6点、上午10点、下午2点、下午6点和下午10点进行自治高速缓存。
Cache Parameter(高速缓存参数)Size(大小),以千字节为单位,用于自动高速缓存的存储器的最大总量。
Cache Parameter(高速缓存参数)AttributeName(属性名称),这个参数可包括几个属性名称行。这个高速缓存里的名称在服务器处于手动高速缓存模式(Cache ParameterAutoAdjust=false)时使用。这个高速缓存里的名称也用于在启动时和当自动高速缓存尚未被更新或当所述自动高速缓存没有使用存储器最大总量时进行自动高速缓存。例如,如果Cache ParameterAutoAdjust是false并然后被修改为true,那么所述服务器将高速缓存这里所列出的不管什么名称,直到下一次自动高速缓存在指定的时间/时间间隔自动地运行。或者,如果已经执行了自动高速缓存,并且已经自动检测到高速缓存的所述属性只使用了存储器的一部分,则在AttributeName里的属性将也被高速缓存。
现在参见图10,流程图示出了根据优选实施例的用于确定在容器里放置对象的方法1000,其中所述对象具有对其它对象的关系,所述关系影响将该对象放置在容器里的效益。方法1000被呈现为由计算机软件程序执行的一系列步骤,所述程序诸如是以上参考图1描述的存储器120里的自治高速缓存控制器124。方法1000首先选择具有最大效益比率的对象组,其具有小于或等于限制的组合大小(步骤1010)。然后参照剩下的限制大小来检查剩下的对象组,以确定所选择的组是否是将适合在容器里的最后一组(步骤1020)。如果所选择的组不是最后一组(步骤1020=否),那么将所选择的组的对象包括在容器里(步骤1030)。然后如上所描述的再次分析对象组以再计算每个组的仍未包括大小和效益比率(步骤1040)。所述方法然后回到步骤1010。如果所选择的组是将适合在容器里的最后一组(步骤1020=是),那么利用剩下的对象组来分析所选择的组以确定,与之后的多个较小组相比,将这个所选择的最后一组放置在容器里是否更有效益(步骤1050)。如果采用这个组更有效益(步骤1050=是),则将所选择的组放置到容器里,及该方法结束。如果采用之后的较小组更有效益(步骤1050=否),则不再考虑所选择的组,该方法返回至步骤1020来考虑剩下的组。
上述的方法也可以看作由操作系统122执行的,其中目录服务器123是操作系统122的一部分。此外,所描述的步骤可以由数据库引擎执行来直接地对数据库里的数据进行高速缓存访问,而不需要由目录服务器提供的服务。
参考优选实施例描述的本发明提供了对现有技术的重要改进。所描述的装置和方法提供了用于确定在高速缓存里放置对象的高效方法,其中所述对象具有对其它对象的关系,所述关系影响将该对象放置在容器里的效益。本发明提供了一种在给定限制里精确地高速缓存最常用的信息以提高计算机数据系统的性能的方式。
本领域技术人员将明白,在本发明的范围之内许多修改是可能的。因此,虽然已参考本发明优选实施例具体示出和描述了所述发明,但本领域技术人员将理解的是,在不脱离本发明的精神和范围下可做出形式和细节上的这些和其它改变。
权利要求
1.一种装置,包括至少一个处理器;耦合到所述至少一个处理器的存储器;以及驻留在所述存储器里的容器控制器,其基于一个或多个预设参数和到服务器的多个预先访问来自治地确定高速缓存什么对象,其中所述对象之间的关系用于确定哪些对象被高速缓存更有效益。
2.如权利要求1所述的装置,其中所述一个或多个预设参数可通过系统管理者修改。
3.如权利要求2所述的装置,其中所述一个或多个预设参数从下列中选择自动调整开启、自动调整时间、自动调整时间间隔、大小和属性名称。
4.如权利要求3所述的装置,其中所述对象之间的关系用于确定哪些对象对于高速缓存更有效益,这意味着目录服务器选择小于高速缓存大小限制的、具有最大效益比率的对象组来放置到所述高速缓存里,并然后再分析剩下的对象组的大小和效益比率以确定其它什么对象组将放置到所述高速缓存里。
5.如权利要求1所述的装置,其中所述容器控制器是从一个或多个客户端应用接收数据请求并自治地确定在所述容器里高速缓存什么对象的目录服务器的一部分,以及所述预设参数是所述目录服务器的属性。
6.一种用于分析计算机数据系统里的数据对象的关系以确定哪些对象应当放置在容器里的方法,所述方法包括以下步骤1)基于到所述计算机数据系统的多个预先访问确定多个对象组;2)分析多个对象组的访问速度、大小和效益比率;3)选择具有最大效益比率的对象组添加到容器里,该对象组具有的大小小于所述容器里剩下的空间;4)在从前述步骤里没有选择的多个对象组的大小中移除前述步骤里选择的共同对象的大小之后,再分析所述多个对象组以调整大小和效益比率;5)确定在所述容器里剩下的空间;以及6)如果在所述容器里剩下的空间大于或等于剩下的最小对象,则重复步骤3和4。
7.如权利要求6所述的方法,还包括在步骤2之前的下述步骤确定所述容器的大小是否小于所述多个对象组的大小,并选择具有最大效益比率并且最大的大小小于或等于所述容器大小的对象组。
8.如权利要求7所述的方法,其中所述容器是计算机存储器。
9.如权利要求6所述的方法,其中所述容器是用于目录服务器的计算机存储器。
10.如权利要求6所述的方法,其中所述容器是数据库服务器的高速缓存。
11.一种用于确定在计算机数据系统里哪些属性将高速缓存的方法,所述方法包括以下步骤1)基于到所述计算机数据系统的多个预先访问确定多个对象组;2)分析从由一个或多个客户端计算机对所述计算机数据系统的访问中得到的多个属性组的访问速度、大小和效益比率;3)选择具有最大效益比率的属性组添加到容器里,该属性组具有的大小小于高速缓存里剩下的空间;4)在从前述步骤里没有选择的多个属性组的大小中移除前述步骤里选择的共同属性的大小之后,再分析所述多个属性组以调整大小和效益比率;5)确定在所述高速缓存里剩下的空间;以及6)如果在所述高速缓存里剩下的空间大于或等于剩下的最小属性,则重复步骤3和4。
12.如权利要求11所述的方法,还包括在步骤2之前的下述步骤确定所述高速缓存的大小是否小于所述多个属性组的大小,并选择具有最大效益比率并且最大的大小小于或等于所述容器大小的属性组。
13.如权利要求11所述的方法,其中所述目录服务器基于由系统管理者设置的一个或多个预设参数来自治地确定哪些属性将高速缓存。
14.如权利要求13所述的方法,其中所述一个或多个预设参数是从下列中选择的自动调整开启、自动调整时间、自动调整时间间隔、大小和属性名称。
15.如权利要求13所述的方法,其中所述高速缓存是轻量级目录访问协议类型的目录服务器的一部分。
全文摘要
一种当需要组合里的所有对象来解决问题时,用于分析对象的关系以确定哪些对象将放置在容器(高速缓存)里从而提高数据库性能和利用的装置和方法。相对于在计算机数据库系统里的属性高速缓存说明了优选实施例,其中需要被高速缓存的属性或对象不是单个属性,而是属性组合,其中包括的一个对象影响它所存在的所有组合。在其它优选实施例里,描述了属性高速缓存,其中所包括的对象组合影响所有其它组合,其中所述其它组合包含在所包括的组合里的一个或多个单个对象。
文档编号G06F17/30GK1979492SQ20061016393
公开日2007年6月13日 申请日期2006年11月14日 优先权日2005年12月8日
发明者K·K·阿恩特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1