CN100485640C - 用于企业软件系统的高速缓存 - Google Patents

用于企业软件系统的高速缓存 Download PDF

Info

Publication number
CN100485640C
CN100485640C CNB2005800411703A CN200580041170A CN100485640C CN 100485640 C CN100485640 C CN 100485640C CN B2005800411703 A CNB2005800411703 A CN B2005800411703A CN 200580041170 A CN200580041170 A CN 200580041170A CN 100485640 C CN100485640 C CN 100485640C
Authority
CN
China
Prior art keywords
allocation table
data
software application
activation
speed cache
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.)
Expired - Fee Related
Application number
CNB2005800411703A
Other languages
English (en)
Other versions
CN101073069A (zh
Inventor
P·L·克莱斯比
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101073069A publication Critical patent/CN101073069A/zh
Application granted granted Critical
Publication of CN100485640C publication Critical patent/CN100485640C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述了从诸如企业软件系统的软件系统高速缓存数据的技术。可以将所述技术应用于通过网络连接至所述软件系统的计算装置。在一个例子中,所述高速缓存包括简明的、基于文件的高速缓存,其包括存储被高速缓存的数据的对象存储器和管理所述对象存储器中的空间分配的分配表。所述高速缓存技术提供了鲁棒的存储系统,其保存所述分配表的前一拷贝,同时更新当前表格。此外,所描述的高速缓存管理技术利用自动压缩使高速缓存文件大小最小化。当在计算装置上执行多个软件应用时,所述技术允许多个软件应用对所述高速缓存并行访问,同时保持所存储的数据的完整性。

Description

用于企业软件系统的高速缓存
技术领域
本发明涉及软件系统,具体而言涉及用于从企业软件系统高速缓存数据的技术。
背景技术
企业软件系统通常很复杂,并且是能够支持,例如,几百或几千个并发用户的大规模系统。企业软件系统的例子包括财务规划系统、预算规划系统、订单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统以及其他企业软件系统。
可以将用户通过网络连接至企业软件系统。典型地,用户装置包括至少一个高速缓存,以存储用户请求的数据。以这种方法,能够提高系统性能,因为能够在本地从高速缓存满足未来的数据请求,而不必从企业软件系统反复检索相同的数据。很多常规的高速缓存方案都比较复杂,并且要采用数据库应用,例如,来自华盛顿雷德蒙的Microsoft Corporation的AccessTM
就企业规划系统而言,在某些环境下,用户可能并行运行几个软件应用,例如建模工具和报表工具。在这种情况下,高速缓存必须能够处理来自多个软件模块的并发数据请求。但是,常规高速缓存技术通常在处理软件模块争用方面存在困难,或者根本不允许对高速缓存并行访问。此外,由于高速缓存继续存储检索到的数据,因而高速缓存所需的大量的存储空间可能破坏用户装置的操作,通常需要用户介入以减小高速缓存的容量。
发明内容
总体来讲,本发明涉及从诸如企业软件系统的软件系统高速缓存数据的技术。例如,所述技术提供了对简明的、基于文件的高速缓存中的数据的有效存储和检索。所述高速缓存包括存储被高速缓存的数据的对象存储器和管理所述对象存储器内的空间的分配的分配表。所述技术提供了鲁棒的存储系统,其保存所述分配表的前一拷贝,同时更新当前表格。此外,所述技术包括自动压缩,从而使所述高速缓存文件大小保持最小。
例如,可以将所述技术应用于通过网络连接至企业软件系统的计算装置。当在所述计算装置上执行的软件模块请求来自所述软件系统的数据时,如本文所述,将数据本地存储在高速缓存内。通过这种方式,高速缓存能够允许计算系统在本地满足对先前请求的数据的未来请求,而不必从远程企业软件系统中重复检索相同的数据,由此能够提高系统性能。
可以在计算装置上执行多个软件应用。所述技术允许通过多个软件应用对所述高速缓存并行访问,同时保持所存储的数据的完整性。例如,所述高速缓存提供了互斥对象(mutex),以确保每一软件应用从所述高速缓存检索到最新数据。
在一个实施例中,通过计算机实现的系统包括高速缓存和多个软件应用。所述高速缓存包括用于存储数据的对象存储器和多个用于管理所述对象存储器中的存储空间的分配的分配表;所述分配表包括激活分配表和至少一个非激活分配表。所述在计算机的操作环境内执行的多个软件应用利用所述激活分配表访问所述对象存储器内的被高速缓存的数据。
在另一个实施例中,一种方法包括将数据存储在位于计算装置上的高速缓存的对象存储器内,并采用多个分配表管理所述对象存储器内的存储空间的分配。所述分配表包括激活分配表和至少一个非激活分配表。所述方法还包括在所述计算装置上执行多个软件应用,其中,所述多个软件应用利用所述激活分配表访问所述对象存储器中被高速缓存的数据。所述方法还包括在所述多个软件应用中的一个完成高速缓存操作之后,将所述激活分配表切换至所述分配表中的下一个。
在另一实施例中,一种计算机可读介质包括使计算装置的可编程处理器执行下述操作的指令:将数据存储在位于计算装置上的高速缓存的对象存储器内,并采用多个分配表管理所述对象存储器内的空间的分配,其中,所述分配表包括激活分配表和至少一个非激活分配表。所述指令还使所述可编程处理器在所述计算装置上执行多个软件应用,其中,所述多个软件应用利用所述激活分配表访问所述对象存储器中的被高速缓存的数据,以及在所述多个软件应用中的一个执行高速缓存操作之后,将所述激活分配表切换至所述分配表中的下一个。
在另一个实施例中,通过计算机实现的系统包括高速缓存和多个软件应用。所述高速缓存包括对象存储器和分配表。所述对象存储器存储元数据分配和关键字分配,所述的每一关键字分配包括使所述关键字分配与所述数据分配中的一个相关的链接表。所述多个软件应用利用所述分配表访问被高速缓存到所述对象存储器内的数据。
在其他实施例中,一种方法包括将数据存储到位于计算装置上的高速缓存的对象存储器内,以及将关键字存储到所述高速缓存的对象存储器内。所述对象存储器将数据和关键字作为独立的分配加以存储,所述关键字分配包括使所述关键字分配与所述数据分配相关的链接表。所述方法还包括采用所述高速缓存的分配表管理所述对象存储器内的分配,并在所述计算装置上执行多个软件应用。所述软件应用利用所述分配表访问被高速缓存到所述对象存储器内的数据。
在另一实施例中,一种计算机可读介质包括使计算装置的可编程处理器执行下述操作的指令:将数据存储在位于计算装置上的高速缓存的对象存储器内,以及将关键字存储在所述高速缓存的所述对象存储器内,其中,所述对象存储器将数据和关键字存储为单独的分配,所述关键字分配包括使所述关键字分配与所述数据分配相关的链接表。所述指令还使所述可编程处理器执行下述操作:采用所述高速缓存的分配表管理所述对象存储器内的分配,以及在所述计算装置上执行多个软件应用,其中,所述软件应用利用分配表访问所述对象存储器内的被高速缓存的数据。
在另一个实施例中,一种企业规划系统包括远程数据库系统和计算装置。所述数据库系统存储定义多个节点的建模数据和与每一所述节点相关的企业规划数据。所述计算装置包括多个企业规划软件应用以及包括对象存储器和分配表的高速缓存。所述企业规划软件应用访问所述企业规划数据并执行企业规划对话。所述高速缓存存储从所述远程数据库系统检索的企业规划数据,以供所述企业规划软件应用使用。
在附图和下面的说明中给出了本发明的一个或多个实施例的细节。显然,可以通过说明书和附图,以及通过权利要求发现本发明的其他特征、目的和优点。
附图说明
图1是示出了计算环境的例子的方框图,在所述计算环境中,有多个用户与企业规划系统交互作用,所述企业规划系统能够实现并自动执行自顶向下的目标与详细的自底向上的预测的协调。
图2是示出了用于与图1中的企业规划系统交互作用的远程计算装置的一个实施例的方框图。
图3是更为详细地示出了图2所示的计算装置的部分的方框图。
图4示出了由所述计算装置维持的用于高速缓存数据的对象存储器。
图5更为详细地示出了图4所示的对象存储器内包括的链接表。
图6是示出了图3所示的部件的示范性操作的流程图。
图7示出了这里所述的高速缓存的示范性分配表,其用于分配对应的对象存储器上的空间。
图8是示出了图7所示的分配表的示范性操作的流程图。
图9示出了由三个分配表构成的示范性系统,其用于管理局部高速缓存,以提供鲁棒的存储。
图10是示出了图9所示的分配表系统的示范性操作的流程图。
具体实施方式
图1是示出了示例企业4的方框图,所述企业具有计算环境10,其中,有多个用户12A-12N(总称“用户12”)与企业规划系统14交互作用。在图1所示的系统中,企业系统14通过网络18以能够通信的方式耦合至多个计算装置16A-16N(总称为“计算装置16”)。用户12与它们各自的计算装置交互作用,以访问企业规划系统14。
出于示范性目的,将参考诸如企业财务或预算规划系统的企业规划系统描述本发明。可以将这里描述的技术容易地应用到其他软件系统当中,包括大规模企业软件系统。企业软件系统的例子包括订单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统以及其他企业软件系统。
一般而言,企业规划系统14能够为企业实现并自动执行自顶向下的目标与自底向上的预测的协调。企业规划系统14实现并管理企业规划过程,其可以被分为三个功能:(1)建模,(2)投稿和(3)协调。
最初,被称为分析员的高级企业管理者或执行官定义组织目标,并为企业建立规划模型。例如,分析员可以包括财务分析师,例如,首席财务官、资深财务分析师或者产品和销售分析员。更具体地说,分析员开发出模型,所述模型具有很多分级布置的、表示组织内部的各种成本中心的节点,例如所述成本中心可以是业务单位或部门。分析员为组织阶级的每一节点指定团体目标数据。团体目标数据可以包括财务数据、税务数据、订单数据、库存数据等,其取决于企业正在执行的特定企业规划活动。之后,分析员向每一节点分配一个或多个企业用户,例如管理者、监察者、销售代表、实验室管理者等,他们负责对应于所述节点的成本中心企业规划。可以将每一企业用户指定为投稿者,其向企业规划系统14提供规划数据,或者将其指定为审查者,其接受或驳回来自投稿者的投稿,或者将其同时指定为投稿者和审查者。投稿者和审查者可以是企业内部或者耦合至网络18的其他实体(例如供应商或客户)内部的授权用户。
接下来,被指定为投稿者的企业用户12与企业规划系统14交互作用,以输入具有投稿数据的形式的详细预测。如上所述,企业用户12可以提供详细的财务预测、税务预测、订单预测、库存预测、估计的资源需求等,其取决于企业正在执行的特定企业规划活动。
企业规划系统14使预测数据与分析员提供的团体目标数据的协调自动化。具体而言,企业规划系统14根据所定义的模型,即根据由分析员创建的企业规划模型操作,以提供具有多个协调级别的分级规划过程。由于每一投稿者都提供他或她的投稿数据,因而企业规划系统14自动地实时收集整个企业的投稿数据,并为被指定为与企业的较高级别相关的审查者的企业用户12提供对所收集的数据的访问。具体而言,在从投稿者接收到投稿数据的同时,企业规划系统14确定受到最新接收的投稿数据影响的组织模型的所有较高级别,并实时计算每一级别的新的总和。
因而,审查者在企业规划对话期内实时审查整个企业的集合数据。在每一级别内,企业规划系统14确保如企业模型的节点所定义的审查者能够使预测数据与目标数据协调。例如,每一审查者可以考虑到分析员提供的团体目标而拒绝或接受投稿数据。这一过程一直持续到组织阶层的最高级最终批准投稿数据为止,由此确保来自投稿者的投稿数据与分析员提供的团体目标协调。
通过这种方式,企业规划系统14提供的企业规划能够比采用传统方法得到的企业规划更为精确。例如,企业规划系统14可以使组织能够利用详细的预测协调团体模型和组织目标,由此提高企业规划的准确性和预见性。所述技术可以提供一个平台,所述平台能够提供协作的实时规划能力,而不需要对预测进行离线整理和集合。由于企业规划系统14能够实时集合投稿数据,因此能够向所有的用户12提供对数字的准确的、最新的查看。此外,企业规划系统14的架构能够容易地扩展至数千用户,并且可以围绕最佳规划做法对其进行设计。此外,所述技术实现了企业用户12,即投稿者和审查者的高度参与,从而减少了精确规划周期。
企业用户12可以采用各种计算装置,经由网络18与企业规划系统14交互作用。例如,企业用户可以采用运行web浏览器的膝上型计算机、台式计算机等与企业规划系统14交互,例如,所述web浏览器可以是华盛顿雷德蒙的Microsoft Corporation的InternetExplorerTM。或者,企业用户可以采用个人数字助理(PDA)、能够实现web功能的移动电话或类似装置,例如,所述PDA可以是加利福尼亚圣克拉拉的Palm Inc.的PalmTM管理器。
网络18表示任何通信网络,例如,Internet等基于分组的数字网络。通过这种方式,系统10能够容易地扩展为适应大型企业。企业用户12可以通过局域网直接访问企业规划系统14,或者可以通过虚拟专用网络、远程拨号或类似的远程访问通信机制对企业规划系统14远程访问。
企业规划系统14可以利用“切削”过程,通过该过程根据所定义的企业模型将多维数据存储器“切片”给每一用户12。在这一过程中,企业规划系统14确定分配作为投稿者或审查者的用户12的、所定义的模型的区域,并根据所述分配“切削”数据存储器。在指定用户12登陆并进行企业规划活动时,企业规划系统14通过扩展的电子表格应用将对应的数据片传递给对应的计算装置16,进而显示给用户。在这种方式当中,企业规划系统14不必向每一用户12传递整个模型,由此降低了通信时间以及资源要求。相反,每一用户只接收到了相关信息。用户12与计算装置16交互,以俘获投稿数据,并使投稿数据与组织目标协调。
如本文所述,每一计算装置16可以保持至少一个高速缓存(图1中未示出),从而对相应的用户12请求的来自企业规划系统14的数据进行本地存储。根据文中描述的技术,每一计算装置16为来自高速缓存的数据提供有效的存储和检索,在一个实施例中可以将所述高速缓存实现为基于文件的高速缓存。如进一步的说明所示,所述高速缓存包括用于存储受到高速缓存的数据的对象存储器。在一个实施例中,所述对象存储器将所存储的数据与关键字链接,所述对象存储器还包括管理对象存储器内的空间分配的一个或多个分配表。在一些实施例中,企业规划系统14还可以利用文中描述的技术实现有效高速缓存方案。
在下文中将予以更详细说明的高速缓存技术提供了鲁棒的存储系统,并且可以根据需要自动压缩高速缓存,从而保持高速缓存的大小为最低。此外,在计算装置16上实现的客户端高速缓存通过可以在每一所述计算装置上执行的多个软件应用支持并行访问,同时保持所存储的数据的完整性。
图2是示出了用于与企业规划系统14交互作用的计算装置16A的一个实施例的方框图。在所述示范性实施例中,计算装置16A包括web浏览器20、永久存储器26、一个或多个规划应用28以及分配表管理器29。将计算引擎22和数据立方体24安装在web浏览器20内,以备在企业规划对话期内使用。
永久存储器26包括多个高速缓存27,因而能够对规划对话期内所需的数据进行本地高速缓存。永久存储器26可以包括永久计算机可读介质。通过这种方式,高速缓存27允许计算系统16A在本地满足对高速缓存后的数据的未来请求,因而不必从企业规划系统14或数据立方体24中反复检索相同的数据。
在一个实施例中,计算引擎22包括嵌入在通过基于数组的语言建立的Active X内的正向计算引擎22。在企业规划实例中,用户12A可以与web浏览器20交互作用,以输入并操作预算或预测数据。数据立方体24含有可以包括自顶向下的目标和自底向上的投稿数据的规划数据,并允许计算装置16A在本地执行企业规划对话期内的所有计算。因此,在这一例子中,投稿者能够修改其相应的投稿数据,并执行企业规划过程所需的计算,而不必访问企业规划系统14。换言之,可以通过计算装置16A在本地维护(例如,作为ActiveX组件)计算引擎22和数据立方体24。用户12A可以在本地存储规划数据,并将所述规划数据提交给企业规划系统14,从而与其他用户12提交的规划数据集合。企业规划系统14自动地实时集合整个企业4的投稿数据,并向与企业的较高级别相关的审查者提供对集合数据的访问。这一过程一直持续到与组织阶层的最高级相关的审查者最终批准投稿数据为止,由此确保来自投稿者的投稿数据与分析员提供的共同目标协调。在其他实施例中,可以只在企业规划系统14上维护计算引擎22和数据立方体24,并在计算装置16上本地安装计算引擎22和数据立方体24。
规划应用28表示可以在计算装置16A上同时执行的软件应用。例如,规划应用28可以包括报表工具、建模工具、电子表格应用、数据收集模版、商业智能工具或其他类型的企业规划应用。
如图2所示,计算装置16A包括高速缓存27,其用于对规划应用28或用户12A请求的数据,例如从企业规划系统14或数据立方体24请求的数据进行本地存储。高速缓存27的例子包括用于存储在线规划应用所采用的数据的在线高速缓存、用于存储离线规划应用所采用的数据的离线高速缓存、用于存储软件扩展所采用的数据的扩展高速缓存以及用于存储计算引擎22所采用的数据的“jce”高速缓存。
计算装置16A为来自高速缓存27的数据提供了有效的存储与检索。例如,可以将高速缓存27实现为基于文件的高速缓存,其不依赖于诸如Microsoft Access的数据库应用。因此,高速缓存27可以实现更为简明的高速缓存技术,其包括的足印比常规高速缓存更小。
应用于高速缓存27的高速缓存管理技术提供了鲁棒的存储系统,并且可以根据需要自动压缩高速缓存27,从而保持高速缓存文件大小最小化。当某一高速缓存27内的文件的数量或所述高速缓存的总大小达到上限时,计算装置16A可以启动压缩。用户12A可以设置上限。在其他情况下,计算装置16A可以基于计算装置16A上可用的自由空间的量设置所述上限。用户12A还可以随时启动对一个或多个高速缓存27的压缩。对高速缓存27之一的压缩实际上通过去除未使用的空间并重新组织文件结构而使高速缓存的总大小最小化,由此“清理”了所述高速缓存。
高速缓存管理技术允许通过规划应用28并行访问高速缓存27。为了使每一规划应用28并行访问高速缓存27,每一高速缓存27可以包括互斥对象(mutex)。所述mutex允许某一规划应用在访问高速缓存时将高速缓存27中的一个相对于其他规划应用锁定。通过这种方式,所述高速缓存管理技术确保了每一规划应用28能够从高速缓存27检索当前数据。
计算装置16A还包括分配表管理器29。如以下将要更详细介绍的,每一高速缓存27包括用于存储被高速缓存的数据并使被高速缓存的数据与关键字链接的对象存储器。每一高速缓存27还包括管理对象存储器内的空间的分配的分配表。每一规划应用28可以利用分配表管理器29创建来自每一高速缓存27的分配表的实例。此外,分配表管理器29提供了应用编程接口(API),其将高速缓存操作传达给高速缓存27。规划应用28对每一高速缓存27内的分配表执行高速缓存操作。
在一些实施例中,永久存储器26可以包括一个或多个插件程序(未示出),其应用于高速缓存27,从而在将数据存留在磁盘上之前执行数据变换。一个插件程序可以包括压缩模块,其用于自动压缩被高速缓存的数据,以及在用户12A需要时对数据解压缩。通过这种方式,可能产生额外的高速缓存,因为压缩数据放弃了高速缓存27内的存储空间。因此,压缩插件程序能够使计算装置16A不是那么频繁地压缩高速缓存27。另一插件程序包括加密模块,其用于对被高速缓存的数据加密,以及在用户12A需要时对数据解密。在某些情况下,永久存储器26包括两个或更多用于高速缓存27的插件程序。在这种情况下,与向高速缓存27内存储数据相比,在检索数据时,所述两个或更多插件程序按照相反顺序执行。
图3是更为详细地示出了计算装置16A的部分的方框图。出于举例说明的目的,图3示出了连接至单个高速缓存的规划应用28。在其他实施例中,每一规划应用28可以连接至多个高速缓存。如图3所示,高速缓存27A(例如,图2所示的高速缓存27之一)包括基于文件的高速缓存,其包括对象存储器30和分配表32。对象存储器30存储被高速缓存的数据,分配表32管理对象存储器30中的空间的分配。在一个例子中,对象存储器30内的空间分配可以存储关键字对象、数据对象或元数据对象。
分配表32中列举的每一分配对应于对象存储器30内的空间的分配,并且包括与所述分配相关的一组属性。例如,分配表32可以包括距第一分配的分配偏移量、分配的大小、所述分配当中的自由空间的量以及表示所述分配是否激活的标志。存储在对象存储器30内的每一关键字对象可以包括链接表或其他用于将所述关键字与存储在对象存储器30的其他位置的相应的被高速缓存的数据对象相联系的数据。在某些情况下,所述链接表还可以使关键字与一个或多个相应元数据对象相联系。所述链接表可以引用分配表32,以确定所需数据对象的偏移量。之后,可以采用所述偏移量在对象存储器30内对所述数据对象定位。通过这种方式,高速缓存27A利用了简明、有效的、基于文件的高速缓存过程。
例如,分配表管理器29可以具有包括分配表管理器类别的动态链接库(DLL)。每一规划应用28可以对具有所述分配表管理器类别的相应分配表管理器对象36加以例示。分配表管理器对象36A-36N(总称为“分配表管理器对象36”)中的每者均开放应用编程接口(API),规划应用28通过所述API与高速缓存27A交互作用。
在所示的实施例中,API包括通信接口37A-37N(总称为“通信接口37”)。通信接口37将连接和断开请求以及高速缓存操作从对应的规划应用28传达给高速缓存27A。可以通过通信接口37实现的高速缓存操作的例子包括选择、插入、更新、删除和压缩。分配表管理器对象36对分配表32执行高速缓存操作。例如,选择由某一规划应用28使用的分配、插入新的分配、更新现有的分配、删除分配(即,将某一分配标记为非激活)或压缩分配表32。
例如,要想将规划应用28A连接至高速缓存27,那么通信接口37A接收来自高速缓存27A的信息,并采用所述信息建立连接。即使在不访问高速缓存27A时,规划应用28A也可以保持连接至高速缓存27A。因此,每一规划应用28可以同时连接至高速缓存27A。一旦将规划应用28连接至高速缓存27A,那么分配表管理器对象36就可以分别创建来自高速缓存27A的分配表的表格实例38A-38N(总称为“表格实例38”)。每一分配表管理器对象36将分配表32的内容读到与对应的规划应用28相关的存储器内。
在对分配表32执行高速缓存操作之前,分配表管理器对象36A比较表格实例38A与分配表32的差异。分配表32可以包括位于首部内的全局唯一标识符(guid),其在每次对分配表32进行修改时改变。如果与表格实例38A相关的guid和与分配表32相关的guid不匹配,那么分配表管理器对象36将更新表格实例38A。分配表32内的每一分配也可以包括guid。可以将与特定分配相关的guid与表格实例38A内的对应分配的guid相比较。因此,分配表管理器对象36A可以只重新加载两个文件之间不同的那些分配,即热加载。但是,在某些情况下,分配表管理器对象36A可以将整个分配表32重新加载到表格实例38A中,即冷加载。
之后,分配表管理器对象36A可以基于表格实例38A执行来自软件应用28A的高速缓存操作,以修改存储在高速缓存27A中的对象存储器30内的数据。所述高速缓存操作可以包括最小单位操作,其针对对表格实例38A执行的每一操作打开、修改和关闭分配表32。
为了允许规划应用28对高速缓存27A并行访问,应用表格管理器对象36利用了共享mutex,以控制对高速缓存的访问。所述mutex允许某一规划应用28将高速缓存27A相对于其他规划应用锁定,同时对高速缓存27A进行访问。通过这种方式,所述高速缓存管理技术确保了每一规划应用28从高速缓存27A检索当前数据。
图4更为详细地示出了图3所示的对象存储器30的一个实施例。在所示的实施例中,对象存储器30包括存储关键字对象40、元数据对象42和数据对象44的分配。关键字对象40包括用于定义将所述关键字与对应的被高速缓存的数据对象44相联系的链接表41的数据。链接表41还将关键字40与多达十四个对应的元数据对象42链接。
图5更为详细地示出了图4所示的链接表41的一个实施例。链接表41提供确定用于分配表32内的每一对象的相应分配条目的序数,由此将关键字对象40与元数据对象42以及数据对象44链接。换言之,所述序数确认了分配表32内的分配条目,所述条目确定对象存储器30内的每一对应分配的属性(例如,偏移量和大小)。通过这种方式,链接表41将关键字对象40与元数据对象42和数据对象44有效地“链接”。在这一例子中,链接表41包括关键字序数46、数据序数47和元数据序数48A-48N(总称为“元数据序数48”)。在某些情况下,可能没有元数据对象42链接至关键字对象40;因此,链接表41将含有针对元数据序数48的空值数据。在其他情况下,可以将多达十四个元数据对象链接至关键字对象40。在这种情况下,链接表41内可以包括多达十四个元数据序数48。
将每一关键字对象40、元数据对象42和数据对象44作为单独的分配而高速缓存在对象存储器30内。为了使规划应用28检索数据对象44,分配表管理器对象36遍历对象存储器30内的分配,以寻找关键字对象40。如果所述分配是激活的,并且包括关键字对象40,那么分配表管理器对象36将采用链接表41确定数据序数47。之后,分配表管理器对象36采用数据序数47对分配表32内的对应分配列表定位。所述分配列表可以包括所需数据对象44的偏移量。之后,分配表管理器对象36采用所述偏移量从对象存储器30恢复数据对象44。
图6是示出了图3所示的部件的示范性操作的流程图。最初,通过例示表格管理器对象36,并调用由对应的通信接口37暴露的链接方法,将一个或多个规划应用28连接至高速缓存27A(50)。这时,分配表管理器对象36由高速缓存27A内的分配表32在存储器内创建表格实例38,可以将其存储在文件当中(52)。
接下来,任何分配表管理器对象36都可以从某一相应规划应用28(例如规划应用28A)接收将对分配表32执行的高速缓存操作(54)。所述高速缓存操作的例子包括选择、插入、更新、删除和压缩。在执行高速缓存操作之前,该例子中的分配表管理器对象36A打开分配表32,并读取分配表32的首部。如上所述,分配表32可以包括位于首部内的guid,其在每次修改分配表32时发生改变。之后,分配表管理器对象36A将表格实例38A的guid与分配表32的guid比较(56)。
如果所述表格实例guid等于所述分配表的guid(由“是”从58引出的分支),那么分配表管理器36A可以访问高速缓存27A(72)。换言之,如果表格实例38A与分配表32是通用的,那么分配表管理器36A可以基于表格实例38A执行高速缓存操作,以修改存储在高速缓存27A中的对象存储器30内的数据。所述高速缓存操作可以包括最小单位操作,其针对对表格实例38A执行的每一操作打开、修改和关闭分配表32。
如果所述表格实例guid不等于分配表guid(由“否”从58引出的分支),那么分配表管理器对象36A读取分配表32内的每一分配的首部。分配表32内的每一分配也可以包括位于首部内的guid,其在每次修改所述分配时发生改变。之后,分配表管理器对象36A将表格实例分配的guid与对应的分配表分配的guid比较(60)。这使分配表管理器对象36A能够只向表格实例38A重新加载修改过的分配。在某些情况下,分配表管理器对象36A可能无法向表格实例38A执行分配表32的热加载。相反,分配表管理器对象36A可以清空表格实例38A,并执行分配表32的冷加载。
如果表格实例分配guid等于分配表分配guid(由“是”从62引出的分支),那么分配表管理器对象36A读取分配表32中的下一分配的首部(由“是”从70引出的分支,60)。当分配表32内的所有分配都和表格实例38A内的分配比较过之后(由“否”从70引出的分支),分配表管理器对象36A访问高速缓存27A(72)。
如果任何表格实例分配的首部与分配表分配首部都不相等(由“否”从62引出的分支),那么分配表管理器对象36A更新表格实例38A中的分配(64)。当在表格实例38A中更新激活的分配时(由“是”从66引出的分支),分配表管理器对象36A加载对应于所述分配的对象(68)。所述对象可以包括关键字对象、数据对象和元数据对象。一旦将所述对象加载到表格实例38A中之后,或者如果更新的分配没有激活(由“否”从66引出的分支),那么分配表管理器对象36A读取分配表32中的下一分配的首部(由“是”从70引出的分支,60)。在比较完所有的分配之后(由“否”从70引出的分支),分配表管理器对象36A访问高速缓存27A,并基于更新的表格实例38A执行所请求的操作(72)。
通过这种方式,分配表管理器对象36确保了表格实例38含有当前分配,而不必将分配表32完全重新加载到表格实例38中。此外,规划应用28可以基于最新表格实例38,通过分配表管理器对象36执行最小单元高速缓存操作,其修改高速缓存内的对象存储器30和分配表32。
图7示出了这里所述的高速缓存的示范性分配表80,其管理对应的对象存储器的空间分配。图8是示出了图7所示的分配表80的示范性操作的流程图。分配表80的操作基本类似于图3所示的分配表32。在所示的实施例中,分配表80包括两个分配,第一分配82和第二分配83。分配82和83每者可以包括关键字对象、数据对象或元数据对象中的任何一个。
分配82和83包括与所述分配相关的一组属性。如图7所示,所述一组属性可以包括距第一分配82的偏移量、分配的大小、所述分配当中的自由空间的量以及表示所述分配是否激活的标志。在这一例子中,激活标志包括布尔逻辑标志。第一分配82是大小为100的非激活分配。第二分配83是大小为50的激活分配,并且距第一分配82的偏移量为100。
参考图8,假设规划应用最初向分配表80添加了某一大小的分配(86)。如果在分配表80内没有大到足以容纳新的分配的非激活分配(由“否”从87引出的分支),那么分配表80创建新的激活分配(88)。例如,如图7所示,当规划应用在分配表80中插入大小为200的分配时,分配表80将创建新的分配84,因为非激活第一分配82没有大到足以容纳新的分配的大小。第三分配84为大小为200的激活分配,其距第一分配82的偏移量为150。
如果分配表80包括大到足以容纳新的分配的非激活分配(由“是”从87引出的分支),那么分配表80将现有分配设置为激活态(90)。但是,现有分配的大小可能大于新的分配所需要的大小。在这种情况下,所述分配含有自由空间。当分配中的自由空间小于再分配门限时(由“否”从92引出的分支),那么分配表80将所述自由空间保留在所述分配中(94)。
例如,如图7所示,规划应用可以插入大小为75的分配。在这一例子中,第一分配82大到足以处理新的分配。那么第一分配82变为大小为75的激活第一定位82A,并具有25的单位的自由空间。例如,分配表80可以包括再分配门限50。因此,分配表80将所述自由空间保留在第一分配82A内。
当分配中的自由空间大于再分配门限时(由“是”从92引出的分支),那么分配表80为所述自由空间创建新的非激活分配(96)。例如,如图7所示,规划应用可以插入大小为25的分配。第一分配82再次具有大到足以处理新的分配的大小。在这种情况下,第一分配82变成大小为25的激活第一分配82B,并具有75个单位的自由空间。由于分配表80包括再分配门限50,因而分配表80为来自第一分配82B的自由空间创建第四分配85。第四分配85是大小为75的非激活分配,其距第一分配82B的偏移量为25。之后,将所述激活的第一分配82B内的自由空间设为零(98)。
如图7所示,分配表80内的分配未必处于以所述偏移量值为基础的顺序内。相反,每一分配包括如上所述的序数,仅当对所述高速缓存执行作为清理机制的压缩时,所述序数才发生改变。
上述分配过程提供了对高速缓存的空间的有效利用。采用所述再分配门限控制是否在现有分配内创建针对自由空间的新的分配。由于高速缓存通常适于大的数据块,因而使较小的分配,即处于再分配门限之下的分配保持在原始分配当中。文中描述的高速缓存管理技术的分配效率可以降低必须压缩高速缓存的频率。对高速缓存的压缩可能倾向于扰乱与每一分配相关的序数。因此,由规划应用创建的任何表格实例在发生压缩之后都可能需要来自分配表的冷加载。
图9示出了采用多个(这一例子中为三个)分配表管理高速缓存,从而为高速缓存提供鲁棒的存储的示范性技术。图10是示出了图9所示的分配表系统的示范性操作的流程图。在这一例子中,示出了第一分配表100、第二分配表102和第三分配表104,它们当中的每者基本类似于图3所示的分配表32和图7所示的分配表80。轮流采用所述三个分配表提供鲁棒的存储系统,在下文中将对其进一步说明。具体而言,采用所述分配表的方式为自动保存先前采用的分配表的拷贝,同时更新当前分配表。
具体而言,在给定周期内,分配表100、102和104中只有一个是激活的。与所述分配表100、102和104中的每者相关的首部可以包括一字节,通过转换所述字节可以将相应的分配表有选择地设置为激活分配表。
在该实施例中,分配表管理器对象36采用这样的高速缓存管理技术,其在每次对当前表格执行最小单元操作时自动选择新的分配表。单个最小单元操作可以将不超过两个分配追加到分配表上。就周期105而言,前一最小单元操作导致了将分配0和分配1追加到第一分配表100上。
在周期105内,例如,第一分配表100是激活的,规划应用可以对激活分配表执行最小单元高速缓存操作(图10中的110)。结果,分配表管理器对象36将当前激活的表格(即分配表100)拷贝到了下一分配表(即,分配表102)中(112)。在这种情况下,将第一分配表100内的两个当前分配拷贝到第二分配表102中。
之后,分配表管理器对象36可以将由对当前激活的分配表100执行的最小单元高速缓存操作导致的任何变化保存到第二分配表102内(113)。就周期105而言,最小单元操作导致了将分配2和分配3追加到第二分配表102上。通过这种方式,高速缓存管理技术确保了当前激活的分配表保持完好。接下来,将分配表102设置为激活分配表(114)。
在图9所示的例子中,在周期106内,第二分配表102是激活表格。所述鲁棒的存储过程以循环的方式继续。例如,在周期106内,访问高速缓存,从而导致将当前激活的分配表102拷贝到下一分配表(即第三分配表104)中。高速缓存操作将分配4和分配5追加到第三分配表104上。在成功地完成了对高速缓存操作的执行之后,第三分配表104变为用于在周期107中使用的激活分配表,并包含了所有来自第二分配表102的分配。为了继续这一例子,将第三分配表104拷贝到第一分配表100中。在最小单元操作之后,可以在周期107内将分配6和分配7追加到第一分配表100上。之后,在周期108内,分配表管理器对象36将第一分配表100设为激活分配表。
如图9所示,可以在存储器中将分配表100、102和104作为一个连续的数据块加以维护,将第三分配表104拷贝到第一分配表100覆盖了第一分配表100。此外,在周期107内,向第一分配表100追加分配6和分配7也覆盖了第二分配表102。但是,由于对于每一最小单位操作只能追加两个分配,因而不能覆盖第三分配表104。通过这种方式,每次切换激活分配表,先前的分配表都能保持完好。当断电或其他故障破坏了激活分配表时,可以在恢复过程中容易地采用前一分配表的备份。
已经描述了本发明的各种实施例。尽管文中是参考诸如企业财务规划系统或预算规划系统的企业规划系统而做的说明,但是也可以将所述高速缓存技术工程容易地应用到其他软件系统当中,包括其他大规模的企业软件系统。企业软件系统的例子包括订单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统以及其他企业软件系统。此外,可以在任何类型的计算装置上,包括在服务器、用户计算机、膝上型电脑和其他装置上实施所述技术。这些和其他实施例均处于权利要求的范围内。

Claims (33)

1.一种计算机实现的系统,包括:
高速缓存,其包括用于存储数据的对象存储器和用于管理所述对象存储器中的存储空间的分配的多个分配表,其中,所述分配表包括激活分配表和至少一个非激活分配表;
在计算机操作环境内执行的多个软件应用,其中,所述软件应用利用所述激活分配表访问所述对象存储器内的被高速缓存的数据;以及
至少一个在计算机的操作环境内执行的分配表管理器,
其中,所述分配表管理器在所述多个软件应用执行完每一高速缓存操作之后,指定所述分配表中不同的一个作为激活分配表。
2.根据权利要求1所述的系统,其中,所述分配表管理器将当前激活的分配表拷贝到所述分配表中不同的一个当中,并在所述多个软件应用中的一个对当前激活的分配表执行高速缓存操作时,将变化保存到所述分配表拷贝当中。
3.根据权利要求2所述的系统,其中,将所述多个分配表作为连续的存储块存储,使得在任何时候所述多个分配表中的至少一个存储着先前激活的分配表的拷贝。
4.根据权利要求1所述的系统,其中,所述多个分配表包括
N个分配表,所述分配表管理器将不超过N-1个分配追加到所述分配表中的不同的一个上,之后将所述分配表中的所述不同的一个指定为激活分配表。
5.根据权利要求1所述的系统,其中,所述高速缓存操作包括分配插入、分配删除、分配更新、分配选择或分配表压缩之一。
6.根据权利要求1所述的系统,其中,所述高速缓存操作包括最小单元操作。
7.根据权利要求1所述的系统,其中,将所述对象存储器存储在永久计算机可读介质上。
8.根据权利要求1所述的系统,其中,所述多个分配表包括由所述激活分配表和两个非激活分配表构成的三个分配表。
9.根据权利要求1所述的系统,其中,所述对象存储器包括多个分配,其中,每一分配存储数据、元数据或关键字。
10.根据权利要求9所述的系统,其中,每一关键字包括使所述关键字与所述数据分配中的相应一个相关的链接表。
11.根据权利要求10所述的系统,其中,所述每一关键字的链接表包括使所述关键字与一个或多个元数据分配相关的条目。
12.根据权利要求1所述的系统,还包括分配表管理器类别,其中,所述多个软件应用中的每者例示具有所述分配表管理器类别的相应分配表管理器对象,并且所述分配表管理器对象开放用于与所述高速缓存通信的应用编程接口(API)。
13.根据权利要求12所述的系统,其中,所述分配表管理器对象将对应的软件应用连接至所述高速缓存,从所述高速缓存创建所述激活分配表的实例,并基于所述表格实例执行来自所述对应的软件应用的高速缓存操作。
14.根据权利要求1所述的系统,还包括:
远程数据库系统,其用于存储定义多个节点的建模数据和与每一所述节点相关的企业规划数据,
其中,所述软件应用包括企业规划软件应用,其访问所述企业规划数据并执行企业规划对话,并且
其中,所述高速缓存存储从所述远程数据库系统检索的企业规划数据,以供所述企业规划软件应用使用。
15.一种方法,包括:
将数据存储在位于计算装置上的高速缓存的对象存储器内;
采用多个分配表管理所述对象存储器内的存储空间的分配,其中,所述分配表包括激活分配表和至少一个非激活分配表;
在所述计算装置上执行多个软件应用,其中,所述多个软件应用利用所述激活分配表访问所述对象存储器中被高速缓存的数据;以及
在所述多个软件应用中的一个完成高速缓存操作之后,将所述激活分配切换至所述分配表中的下一个。
16.根据权利要求15所述的方法,其中,所述激活分配表的切换包括:
将所述激活分配表中列出的分配拷贝到所述分配表中的下一个当中;
将来自所述高速缓存操作的变化保存到所述分配表中的下一个当中,以及
将所述分配表中的下一个设为激活分配表。
17.根据权利要求15所述的方法,其中,执行来自所述多个软件应用中的一个的高速缓存操作包括将最多两个分配追加到所述分配表中的下一个上。
18.根据权利要求15所述的方法,其中,所述多个软件应用中的每者例示具有分配表管理器类别的相应分配表管理器对象,所述方法还包括:
向所述分配表管理器对象发送连接消息,从而将对应的软件应用连接至所述高速缓存;
利用所述分配表管理器对象创建所述激活分配表的实例;以及
基于所述表格实例执行来自所述对应的软件应用的高速缓存操作。
19.根据权利要求15所述的方法,还包括:
存储定义企业的多个节点的建模数据;
存储与每一所述节点相关的企业规划数据;
采用所述企业规划数据通过所述软件应用执行企业规划对话;以及
将从数据库系统检索到的企业规划数据存储到所述高速缓存中,以备所述软件应用将来之用。
20.一种方法,包括:
将数据存储在位于计算装置上的高速缓存的对象存储器内;
采用多个分配表管理所述对象存储器内的存储空间的分配,其中,所述分配表包括激活分配表和至少一个非激活分配表,并且其中,所述分配表包括全局唯一标识符(guid);
在所述计算装置上执行多个软件应用,其中,所述多个软件应用利用所述激活分配表访问所述对象存储器中被高速缓存的数据,并且其中,所述多个软件应用中的每者例示具有分配表管理器类别的相应分配表管理器对象;
向所述分配表管理器对象发送连接消息,从而将对应的软件应用连接至所述高速缓存;
利用所述分配表管理器对象创建所述激活分配表的实例;
基于所述表格实例执行来自所述对应的软件应用的高速缓存操作;
在所述多个软件应用中的一个完成高速缓存操作之后,将所述激活分配表切换至所述分配表中的下一个;
在更新所述激活分配表时改变所述激活分配表的所述guid;
在执行所述高速缓存操作之前,将与所述激活分配表相关的所述guid和与所述表格实例相关的guid相比较;以及
在所述标识符不相等时更新所述表格实例。
21.根据权利要求20所述的方法,其中,所述分配表包括所述对象存储器中的分配的列表,每一所述分配包括guid,所述方法还包括:
在修改对应的分配时更新相应的guid;
将与每一所列出的分配相关的guid和与所述表格实例中对应的分配相关的guid比较;以及
当所述guid不相等时更新所述表格实例中的对应分配。
22.一种计算机实现的系统,包括:
高速缓存,其包括对象存储器和分配表,其中,所述对象存储器存储数据分配和关键字分配,每一所述关键字分配包括使相应的关键字分配与所述数据分配之一相关的链接表,其中,所述分配表包括所述高速缓存内的多个分配表中的激活的一个;
多个软件应用,其利用所述分配表访问所述对象存储器内被高速缓存的数据;以及
分配表管理器,其在所述多个软件应用完成每一高速缓存操作之后,循环指定所述分配表中的不同的一个作为所述激活分配表。
23.根据权利要求22所述的系统,其中,所述对象存储器存储元数据分配,所述每一关键字分配的链接表包括使所述相应的关键字分配与一个或多个元数据分配相关的条目。
24.根据权利要求22所述的系统,其中,将所述对象存储器存储在永久计算机可读介质上。
25.根据权利要求22所述的系统,其中,每一所述关键字分配中的所述链接表包括针对所述关键字分配和数据分配的分配表序数。
26.根据权利要求22所述的系统,其中,所述分配表管理器将当前激活的分配表拷贝到所述多个分配表中的一个当中,并在所述多个软件应用中的一个对当前激活的分配表执行高速缓存操作时,将变化保存到所述分配表拷贝当中。
27.根据权利要求22所述的系统,还包括:
远程数据库系统,其用于存储定义多个节点的建模数据和与每一所述节点相关的企业规划数据;
其中,所述软件应用包括企业规划软件应用,其访问所述企业规划数据并执行企业规划对话,并且
其中,所述高速缓存存储从所述远程数据库系统检索的企业规划数据,以供所述企业规划软件应用使用。
28.一种方法,包括:
将数据存储在位于计算装置上的高速缓存的对象存储器内;
将关键字存储在所述高速缓存的所述对象存储器内,其中,所述对象存储器将数据和关键字存储为独立的分配,所述关键字分配包括使所述关键字分配与所述数据分配相关的链接表;
利用所述高速缓存的分配表管理所述对象存储器中的分配,其中,所述分配表包括激活分配表和至少一个非激活分配表;
在所述计算装置上执行多个软件应用,其中,所述软件应用利用所述激活分配表访问所述对象存储器中被高速缓存的数据;以及
在所述多个软件应用中的一个完成高速缓存操作之后,将所述激活分配表切换至下一个分配表。
29.根据权利要求28所述的方法,还包括将元数据作为独立分配存储在所述对象存储器内,其中,所述链接表使所述关键字与一个或多个所述元数据分配相关。
30.根据权利要求28所述的方法,其中,所述多个软件应用中的每个例示具有分配表管理器类别的相应分配表管理器对象,所述方法还包括:向所述分配表管理器对象发送连接消息,从而将所述对应的软件应用连接至所述高速缓存;
利用所述分配表管理器对象创建所述激活分配表的实例;以及
基于所述表格实例,访问由所述对应的软件应用请求的被高速缓存的数据。
31.根据权利要求28所述的方法,还包括:
存储定义企业的多个节点的建模数据;
存储与每一所述节点相关的企业规划数据;
利用所述企业规划数据通过所述软件应用执行企业规划对话;以及
将从数据库系统检索到的企业规划数据存储到所述高速缓存中,以备所述软件应用将来之用。
32.一种方法,包括:
将数据存储在位于计算装置上的高速缓存的对象存储器内;
将关键字存储在所述高速缓存的所述对象存储器内,其中,所述对象存储器将数据和关键字存储为独立的分配,所述关键字分配包括使所述关键字分配与所述数据分配相关的链接表;
利用所述高速缓存的分配表管理所述对象存储器中的分配;
在所述计算装置上执行多个软件应用,其中,所述软件应用利用所述分配表访问所述对象存储器中被高速缓存的数据,访问所述被高速缓存的数据包括:遍历所述对象存储器,以查找所需的关键字分配;
读取所需的关键字分配的链接表,以确定对应的数据分配的分配表序数;
基于所述序数在所述分配表中对对应的数据分配列表定位;
以及
采用所述数据分配列表中包括的分配偏移量从所述对象存储器中恢复数据。
33.一种企业规划系统,包括:远程数据库系统,其用于存储定义多个节点的建模数据和与每一所述节点相关的企业规划数据;以及
计算装置,其包括多个企业规划软件应用以及包括对象存储器和分配表的高速缓存,其中,所述分配表包括激活分配表和至少一个非激活分配表;以及
在计算装置的操作环境内执行的分配表管理器,其中,所述分配表管理器在所述多个企业规划软件应用完成每一高速缓存操作之后,指定所述分配表中不同的一个作为激活分配表,
其中,所述企业规划软件应用利用所述激活分配表访问所述企业规划数据,并执行企业规划对话,并且
其中,所述高速缓存存储从所述远程数据库系统检索的企业规划数据,以供所述企业规划软件应用使用。
CNB2005800411703A 2004-11-30 2005-11-15 用于企业软件系统的高速缓存 Expired - Fee Related CN100485640C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/999,369 US7418567B2 (en) 2004-11-30 2004-11-30 Cache for an enterprise software system
US10/999,369 2004-11-30

Publications (2)

Publication Number Publication Date
CN101073069A CN101073069A (zh) 2007-11-14
CN100485640C true CN100485640C (zh) 2009-05-06

Family

ID=36565418

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800411703A Expired - Fee Related CN100485640C (zh) 2004-11-30 2005-11-15 用于企业软件系统的高速缓存

Country Status (7)

Country Link
US (1) US7418567B2 (zh)
EP (1) EP1817674B1 (zh)
CN (1) CN100485640C (zh)
AT (1) ATE512407T1 (zh)
AU (1) AU2005310983B2 (zh)
CA (1) CA2589508A1 (zh)
WO (1) WO2006059249A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549137B2 (en) * 2006-06-05 2013-10-01 Nec Corporation Monitoring device, monitoring system, monitoring method, and program
US8645642B2 (en) * 2010-06-23 2014-02-04 International Business Machines Corporation Tracking dynamic memory reallocation using a single storage address configuration table
US11212177B2 (en) * 2013-08-01 2021-12-28 Commscope Connectivity Uk Limited Hosted physical layer management or automated infrastructure management system having software only configuration and/or local hardware appliance
TWI502372B (zh) * 2013-09-27 2015-10-01 Acer Inc 網路儲存系統及檔案快取方法
US9942346B2 (en) 2013-10-03 2018-04-10 Red Hat, Inc. Caching mechanism for determining validity of cached data using web application business logic
US10114878B2 (en) * 2013-12-16 2018-10-30 International Business Machines Corporation Index utilization in ETL tools
US10225352B2 (en) * 2013-12-20 2019-03-05 Sony Corporation Work sessions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1196130A (zh) * 1995-09-14 1998-10-14 诺基亚电信公司 在双工计算机部件中控制共享磁盘数据
JP2001109661A (ja) * 1999-10-14 2001-04-20 Hitachi Ltd キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
US6453321B1 (en) * 1999-02-11 2002-09-17 Ibm Corporation Structured cache for persistent objects
US20020184445A1 (en) * 2001-04-20 2002-12-05 Rajasekhar Cherabuddi Dynamically allocated cache memory for a multi-processor unit
US20040205295A1 (en) * 2003-04-11 2004-10-14 O'connor Dennis M. Apparatus and method to share a cache memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182151B1 (en) * 1996-07-29 2001-01-30 International Business Machines Corporation Method and apparatus for batch storage of objects in a client-server storage management system
JP3969809B2 (ja) * 1997-10-31 2007-09-05 富士通株式会社 記憶装置におけるデータバッファの管理方法
US6292880B1 (en) * 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6542967B1 (en) * 1999-04-12 2003-04-01 Novell, Inc. Cache object store
SE0000533D0 (sv) * 2000-02-18 2000-02-18 Ericsson Telefon Ab L M Static cache
JP4104281B2 (ja) * 2000-10-25 2008-06-18 株式会社日立製作所 データベースアクセス方法
US6732239B2 (en) * 2000-12-14 2004-05-04 Borland Software Corporation Concurrent access scheme for exclusive mode cache
US6769048B2 (en) * 2001-12-06 2004-07-27 Sun Microsystems, Inc. Cache synchronization method, system and apparatus for a distributed application and an object located in a client cache
JP2004109661A (ja) * 2002-09-19 2004-04-08 Ricoh Co Ltd 画像形成装置、画像形成システム及びコンピュータプログラム
US20040111728A1 (en) * 2002-12-05 2004-06-10 Schwalm Brian E. Method and system for managing metadata
US20050102670A1 (en) * 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines
US7269705B1 (en) * 2004-04-23 2007-09-11 Seidl Matthew L Memory space management for object-based memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1196130A (zh) * 1995-09-14 1998-10-14 诺基亚电信公司 在双工计算机部件中控制共享磁盘数据
US6453321B1 (en) * 1999-02-11 2002-09-17 Ibm Corporation Structured cache for persistent objects
JP2001109661A (ja) * 1999-10-14 2001-04-20 Hitachi Ltd キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
US20020184445A1 (en) * 2001-04-20 2002-12-05 Rajasekhar Cherabuddi Dynamically allocated cache memory for a multi-processor unit
US20040205295A1 (en) * 2003-04-11 2004-10-14 O'connor Dennis M. Apparatus and method to share a cache memory

Also Published As

Publication number Publication date
EP1817674B1 (en) 2011-06-08
EP1817674A2 (en) 2007-08-15
ATE512407T1 (de) 2011-06-15
AU2005310983A1 (en) 2006-06-08
CN101073069A (zh) 2007-11-14
WO2006059249A3 (en) 2006-11-02
WO2006059249A2 (en) 2006-06-08
AU2005310983B2 (en) 2009-11-05
US7418567B2 (en) 2008-08-26
US20060117146A1 (en) 2006-06-01
EP1817674A4 (en) 2008-12-10
CA2589508A1 (en) 2006-06-08

Similar Documents

Publication Publication Date Title
Bakshi Considerations for big data: Architecture and approach
CN101576918B (zh) 具备负载均衡功能的数据缓存系统
CN101828182B (zh) 报告oltp数据的无etl零冗余系统和方法
CN103299267B (zh) 用于执行多租户存储中的交叉存储连接的方法和系统
CN112534396A (zh) 数据库系统中的日记表
CN101167048B (zh) 多维企业软件系统内的可聚集维度信息的生成
CN102227121B (zh) 基于机器学习的分布式缓存策略自适应切换方法及系统
CN100485640C (zh) 用于企业软件系统的高速缓存
CN107766402A (zh) 一种楼盘字典云房源大数据平台
CN110019251A (zh) 一种数据处理系统、方法及设备
CN106716409A (zh) 基于查询需求从行存储数据库自适应地构建和更新列存储数据库的方法和系统
CN101208692A (zh) 在企业软件系统的活数据立方体间自动移动多维数据
CN103488673A (zh) 用于执行调和处理的方法、控制器、程序及数据存储系统
CN107077480A (zh) 基于查询需求自适应地从当前时间的行存储数据库中构建列存储数据库的方法和系统
Derakhshan et al. Optimizing machine learning workloads in collaborative environments
Xiong et al. Data vitalization: a new paradigm for large-scale dataset analysis
Mukherjee Synthesis of non-replicated dynamic fragment allocation algorithm in distributed database systems
CN109074304A (zh) 优化的数据分布系统
CN111708895A (zh) 一种知识图谱系统的构建方法及装置
Singh et al. Non-replicated dynamic data allocation in distributed database systems
Lwin et al. Non-redundant dynamic fragment allocation with horizontal partition in Distributed Database System
KR102504537B1 (ko) 데이터 분할 기반 데이터 전처리 장치 및 방법
WO2011118425A1 (ja) クエリ最適化システム、クエリ最適化装置、及びクエリ最適化方法
KR20200121986A (ko) 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램
Mohamed et al. ENHANCING QUERY PROCESSING ON STOCK MARKET CLOUD-BASED DATABASE.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081219

Address after: American New York

Applicant after: International Business Machines Corp.

Address before: Amsterdam, The Netherlands

Applicant before: IBM International Group

Effective date of registration: 20081219

Address after: Amsterdam, The Netherlands

Applicant after: IBM International Group

Address before: Alberta Canada

Applicant before: Coorg Los Unlimited Co.

Effective date of registration: 20081219

Address after: Alberta Canada

Applicant after: Coorg Los Unlimited Co.

Address before: The University of Minnesota

Applicant before: Cognos Inc.

ASS Succession or assignment of patent right

Owner name: IBM INTERNATIONAL GROUP CO.,LTD.

Free format text: FORMER OWNER: CARL LOEWS CO.,LTD.

Effective date: 20081219

Owner name: INTERNATIONAL BUSINESS MACHINE CORP.

Free format text: FORMER OWNER: IBM INTERNATIONAL GROUP CO.,LTD.

Effective date: 20081219

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090506

Termination date: 20181115