CN102770849B - 当应用基于用户的安全性时优化数据高速缓存 - Google Patents

当应用基于用户的安全性时优化数据高速缓存 Download PDF

Info

Publication number
CN102770849B
CN102770849B CN201180010922.5A CN201180010922A CN102770849B CN 102770849 B CN102770849 B CN 102770849B CN 201180010922 A CN201180010922 A CN 201180010922A CN 102770849 B CN102770849 B CN 102770849B
Authority
CN
China
Prior art keywords
data
list
speed cache
security
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180010922.5A
Other languages
English (en)
Other versions
CN102770849A (zh
Inventor
G·D·朗蒂尔
J·C·格里格斯
P·约里奥
R·N·格罗塞特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
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 CN102770849A publication Critical patent/CN102770849A/zh
Application granted granted Critical
Publication of CN102770849B publication Critical patent/CN102770849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种安全缓存***和缓存方法,包括:接收对数据的用户请求,所述请求包含安全性上下文,其中所述安全性上下文标识所述用户的针对数据库应用的安全性简档;以及基于所述用户请求和所接收的安全性上下文而在高速缓存内搜索所请求的数据。如果在高速缓存中找到所请求的数据,则响应于所述用户请求而返回所缓存的数据。如果在高速缓存中未找到所请求的数据,则从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联,以及响应于所述用户请求而返回所请求的数据。针对所请求的数据的搜索可包括搜索具有所述安全性上下文以作为关键字的安全性列表,所述安全性列表包括所请求的数据在所述高速缓存中的地址。

Description

当应用基于用户的安全性时优化数据高速缓存
技术领域
本发明涉及数据库的领域。具体地说,本发明涉及当应用基于用户的安全性时优化数据高速缓存。
背景技术
业务智能(BI)为促进工商企业决策制定及监管的软件类别。BI提供报告/分析工具以分析、预测及呈现信息;BI亦提供数据库管理***以组织数据库(诸如在线分析处理(“OLAP”)数据库)中的数据、将数据存储在数据库中、取回数据库中的数据及管理数据库中的数据。
OLAP数据源及工具为BI工具的子集。OLAP工具为报告生成工具且为数据库软件类别。OLAP提供用于使用户根据用户预定义功能来限制原始数据及交互地检查数据的各种维度中的结果的接口。OLAP***提供数据的多维度概念视图,包括针对分层的完整支持及多个分层。通常在多用户客户端/服务器模式中实施OLAP工具以提供对查询的一致快速响应,而不管数据库大小及复杂性如何。OLAP允许用户使用OLAP服务器来合成信息,所述OLAP服务器被特定设计为支持和操作多维度数据源。OLAP服务器的设计及数据的结构被优化以用于任何定向上的快速临时信息取回。
就结构及容量而言,如下组织典型OLAP***,其中上层结构元素充当下层元素的容器:
·立方体-每应用数十个
·维度-每立方体数十个,每应用数百个
·分层-每维度若干个,每应用数百个
·层级-每分层若干个,每应用数百个至数千个
·成员-每层级数百个至数千个,每应用数万个至数百万个
在BI报告***中,每个用户示意动作(gesture)的查询执行必须尽可能地快。通常使用高速缓冲存储器或高速缓存来加速处理。具体地说,可使用数据高速缓存来存储数据(包括元数据)的常用项目,以便最小化自数据源的数据取回。图1展示更通常包括数据高速缓存的常规BI***。下文进一步详细地描述此图。
数据高速缓存可存储各种不同类型的数据,包括元数据,所述元数据被理解为“关于数据的数据(data about data)”。例如,可将上述OLAP结构元素的任何实例(诸如“地理”维度或“加拿大”成员)存储在数据高速缓存中。事实上,在假定OLAP数据源可为关系型数据库(该关系型数据库被组织为在周边上具有维度表的星型模式,且对于该关系型数据库,每个维度成员作为一个列被存储在维度表中)的情况下,成员常常被视为数据而非元数据。因此,没有必要针对不同类型的数据来区分不同类型的高速缓存。
BI报告***的不同用户可具有不同安全性权限,使得可限制对特定数据(包括元数据)的存取。在与BI报告***通过接口连接的每个OLAP数据源的安全性子***内定义这些安全性权限。OLAP数据源的安全性子***通常被组织为安全性简档集合。用户被指派至特定安全性组,这些安全性组可为嵌套的且甚至在用户向BI报告***认证(登录)之后仍保持固定。用户亦可被指派许可的安全性角色,且具有在向BI报告***认证(登录)时选择这些角色中的一个或多个角色的机会。每个安全性简档将一个命名安全性组或角色与一个特定存取权限集合相关联。OLAP***可限制对各种不同安全性简档的数据的存取,其中针对不同类型的数据而指定不同规则。
当用户向BI报告***认证(登录)且查询来自特定OLAP立方体的数据时,该已认证用户的有效安全性简档与OLAP数据源的组合是定义此用户的安全性上下文的事项。例如,制作时间乘地理销售报告(交叉表)的用户可能没有资格查看所有潜在可用年份及每个地理位置(例如,国家)的结果;因此,基于此用户的安全性上下文(定义对时间及地理维度的存取的有效安全性简档)而过滤出某些年份及国家成员。
当缓存数据时,BI***需要知道何种数据在用户当中为通用的且因此可被安全地共享(被不同用户查看),及何种数据不为通用的(亦即,安全的(将不被某些类型的用户查看)。为了处理此要求,当前,大多数BI***实施两种典型方法中的一种典型方法。第一方法是使***管理员直接在BI***内复制及重新定义底层OLAP数据源的安全性规则(存取权限),且使BI***作为单个超级用户而登录数据源。此情形暗示:需要在对高速缓存的任何存取之前和/或之后执行基于每个用户的安全性上下文的过滤,以便仅返回每个用户有资格查看的数据。第二方法是使个别BI***用户使用其自己的凭证而连接至底层OLAP数据源,且在用户之间不共享任何已缓存的数据信息。一般而言,第一方法就性能而言是优选的(针对通常大量的成员使用较少高速缓冲存储器),而第二方法就维护简易性而言是优选的。
关于在BI***中重新定义安全性规则的第一方法,需要在两个位置维护每个安全性简档:BI***及OLAP数据源。除了麻烦以外,此类安全性维护开销亦易于出错。另一方面,关于通过BI***创建多个数据高速缓存(每用户一个高速缓存)的第二方法,此方法造成非常无效率地使用内存,且在假定通常大量的成员的情况下,此方法就性能而言可被证明是相当昂贵的。
发明内容
从第一方面看,本发明提供一种安全缓存方法。此缓存方法包括:接收对数据的用户请求及安全性上下文;基于所述用户请求和所接收的安全性上下文而在高速缓存内搜索所请求的数据。如果在所述高速缓存中找到所请求的数据,则响应于所述用户请求而返回所缓存的数据。如果在所述高速缓存中未找到所请求的数据,则从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联,以及响应于所述用户请求而返回所请求的数据。
此解决方案在以下方面解决了现有技术中的缺陷。因为安全性规则实质上“被发现”且“被表示为安全性列表”(其可置于数据高速缓存中),所以当个别BI***用户提交查询(报告)时,此数据源不可知方法不具有必须在BI***中重新定义每个安全性规则的要求。
此外,因为安全性列表是对已缓存数据的引用的轻量列表,所以已缓存数据自身独立于安全性简档且因此几乎不含有与兑现不同安全性简档的存取权限的要求相关联的冗余性。关于此解决方案,高速缓冲存储器的大小得以优化且当具有相同或不同安全性上下文的愈来愈多的用户登录BI***且提交报告/查询时将不会显著地增长。
从另一方面看,本发明提供一种安全缓存方法,包括:接收对数据的用户请求及安全性上下文;基于所述用户请求和所接收的安全性上下文而在高速缓存内搜索所请求的数据;如果在所述高速缓存中找到所请求的数据,则响应于所述用户请求而返回所缓存的数据;以及如果在所述高速缓存中未找到所请求的数据,则从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联,以及响应于所述用户请求而返回所请求的数据。
优选地,本发明提供一种方法,其中使用将所缓存的数据与所述安全性上下文相关联的对应列表来存储所缓存的数据,并且其中如果在所述高速缓存中未找到所请求的数据,则通过存储对存储在所述高速缓存中的所获得的数据的引用而生成新列表以便将存储在所述高速缓存中的所获得的数据与所述安全性上下文相关联。
优选地,本发明提供一种方法,其中将所述新列表存储在列表存储单元中,在所述列表存储单元中,所存储列表的数目基于所接收的用户查询而递增地增加。
优选地,本发明提供一种方法,还包括:如果所缓存的数据中的改变损害列表的完整性,则从列表存储单元清除该列表。
优选地,本发明提供一种方法,还包括:在使用所述高速缓存之前初始化列表存储单元,其中所述初始化包括将针对常用安全性上下文的常用数据的查询提交给所述数据源;将所述查询的结果加载至所述高速缓存;以及创建引用所缓存的数据的安全性列表。
优选地,本发明提供一种方法,还包括:针对冗余性而检查所存储的列表,并且如果找到两个相同列表,则将所述两个相同列表合并成单个列表。
优选地,本发明提供一种方法,其中所述数据是元数据。
优选地,本发明提供一种方法,其中所述安全性简档是用户安全性简档。
从另一方面看,本发明提供一种在连接至用户及数据源的***中的安全缓存方法,所述数据源具有基于用户的安全性上下文的已定义存取权限。所述方法包括:接收包括安全性上下文及数据标识符的用户请求;以及在列表存储器中检查通过所述安全性上下文及所述数据标识符所标识的列表的存在。如果不存在所述列表,则在所述列表存储器中创建通过所述安全性上下文及所述数据标识符所标识的列表、从所述数据源取回数据且将所取回的数据存储在数据存储器中,及使用存储在所述数据存储器中的所取回数据的存储地址填充所创建的列表。如果存在所述列表,则使用所述列表中的所述存储地址从所述数据存储器取回数据。
优选地,本发明提供一种方法,其中所述数据标识符是立方体维度标识符。
优选地,本发明提供一种方法,其中所述数据存储器是包括从多个异构远程数据源提供的数据的高速缓存。
优选地,本发明提供一种方法,还包括:预加载所述数据存储器和所述列表存储器,其中所述列表存储器预加载有与常用安全性上下文和数据标识符对应的列表,并且所述数据存储器预加载有由预加载的列表引用的常用数据。
优选地,本发明提供一种方法,其中存储在数据存储器中的数据是OLAP元数据。
从另一方面看,本发明提供一种缓存***,包括:处理器,其执行软件模块;以及内存,其存储所述软件模块,其中所述软件模块包括:接收器模块,其接收对数据的用户请求和安全性上下文;搜索模块,其基于所述用户请求和所接收的安全性上下文而在高速缓存内搜索所请求的数据;管理模块,如果在所述高速缓存中找到所请求的数据,则所述管理模块响应于所述用户请求而获得所缓存的数据;并且其中如果在所述高速缓存中未找到所请求的数据,则所述管理模块从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联,以及响应于所述用户请求而返回所请求的数据。
优选地,本发明提供一种***,其中如果所述搜索模块在所述高速缓存中未找到所请求的数据,则所述管理模块通过存储对存储在所述高速缓存中的所获得的数据的引用而生成新列表以便将存储在所述高速缓存中的所获得的数据与所述安全性上下文相关联。
优选地,本发明提供一种***,其中所述管理模块将所述新列表存储在列表存储单元中,在所述列表存储单元中,所存储列表的数目基于所接收的用户查询而递增地增加。
优选地,本发明提供一种***,还包括:清除模块,如果所缓存的数据中的改变损害列表的完整性,则所述清除模块从列表存储单元清除该列表。
优选地,本发明提供一种***,还包括:预加载模块,所述预加载模块在使用所述高速缓存之前初始化列表存储单元,其中所述预加载模块将针对常用安全性上下文的常用数据的查询提交给所述数据源、将所述查询的结果加载至所述高速缓存,以及创建引用所缓存的数据的新安全性列表。
优选地,本发明提供一种***,还包括:检查模块,所述检查模块针对冗余性而检查所存储的列表,且如果找到两个相同列表,则所述检查模块将所述两个相同列表合并成单个列表。
从另一方面看,本发明提供一种存储用于安全缓存的指令的计算机可读介质,所述指令包括:接收对数据的用户请求及安全性上下文;及基于所述用户请求及所接收的安全性上下文而在高速缓存内搜索所请求的数据;如果在所述高速缓存中找到所请求的数据,则响应于所述用户请求而返回所缓存的数据;以及如果在所述高速缓存中未找到所请求的数据,则从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联。
优选地,本发明提供一种计算机可读介质,其中所述指令还包括:如果在所述高速缓存中未找到所请求的数据,则通过存储对存储在所述高速缓存中的所获得的数据的引用而生成新列表以便将存储在所述高速缓存中的所获得的数据与所述安全性上下文相关联。
优选地,本发明提供一种计算机可读介质,其中所述指令还包括:将所述新列表存储在列表存储单元中,在所述列表存储单元中,所存储列表的数目基于所接收的用户查询而递增地增加。
优选地,本发明提供一种计算机可读介质,其中所述指令还包括:如果所缓存的数据中的改变损害列表的完整性,则从列表存储单元清除该列表。
优选地,本发明提供一种计算机可读介质,其中所述指令还包括:在使用所述高速缓存之前初始化列表存储单元,其中所述初始化包括将针对常用安全性上下文的常用数据的查询提交给所述数据源;将所述查询的结果加载至所述高速缓存;以及创建引用所缓存的数据的新安全性列表。
优选地,本发明提供一种计算机可读介质,其中所述指令还包括:针对冗余性而检查所存储的列表,并且如果找到两个相同列表,则将所述两个相同列表合并成单个列表。
附图说明
图1是示出本领域中公知的BI***的方块图;
图2是示出具有根据本发明的一个优选实施例所实施的数据缓存的BI***的方块图;
图3是展示根据本发明的一个优选实施例的示例性安全性列表的结构的视图;
图4A至图4E是示出根据本发明的一个优选实施例的地理维度的安全性权限和对应安全性列表的示意图;
图5是示出根据本发明的一个优选实施例的安全成员缓存过程的流程图;
图6是示出根据本发明的一个优选实施例的安全性列表的生成的流程图;
图7A及图7B是示出根据本发明的一个优选实施例的安全性列表的删除的流程图;以及
图8是示出根据本发明的一个优选实施例的本发明的示例性实施例可在其中运行的计算机***环境的示意图。
具体实施方式
为了帮助对比本发明的某些实施例与常规数据缓存***,现参看图1来论述常规数据缓存***。如上文所提及,图1是示出根据相关技术的具有常规数据高速缓存的BI***的方块图。在图1中,客户端102使用查询服务112来请求数据。将使用查询服务112所生成的查询作为请求111A而提供至缓存单元110。缓存单元110包括:数据缓存模块111,其与查询服务及缓存单元110的模块通过接口连接;配置模块114,其影响缓存行为;数据存储器117,其存储数据;及数据源接口115,其从一个或多个第三方数据源101取回信息。数据缓存模块111提供从存储器117获得的所取回数据,或如果在存储器117中得不到所取回的数据,则数据缓存模块111在对查询服务112的响应111B中提供从第三方数据源101获得的所取回数据,查询服务112又将所取回的数据提供至客户端102。在此常规***中,如果第三方数据源101采用影响不同用户的数据可见性/可存取性的安全性规则,则通常应用上文在“背景技术”章节中所描述的两种典型方法中的一种典型方法。
图2展示具有根据本发明的一个示例性实施例所实施的高速缓存的BI***。
对于此示例性实施例中的成员取回,当从客户端202接收用户查询时,查询服务212进行对缓存单元210的必要成员请求211A,以便满足原始查询,从而随每个此类请求一起传递维度标识符(例如,“地理”)及用户的安全性上下文。数据缓存模块211充当接收请求211A且与缓存配置模块214及“安全性感知(security aware)”层216通过接口连接的接口。
“安全性感知”层216管理存储在安全性列表存储器218中的安全性列表。“安全性感知”层216创建、更新及删除存储在安全性列表存储器218中的安全性列表。保留在安全性列表存储器218中的列表引用保留在数据存储器217中的所缓存数据。“安全性感知”层216管理包括各种成员之间的关系的所有安全性上下文信息,其对于不同安全性上下文可能不同。“安全性感知”层216维护缓存单元210的数据存储器217。
对于此示例性实施例中的成员取回,“安全性感知”层216在安全性列表存储器218中检查由用户安全性上下文及维度标识符所标识的安全性列表的存在。如果存在安全性列表,则安全性列表存储器218返回对存在于存储在数据存储器217中的成员的已找到安全性列表中的一个或多个存储地址的链接;可接着通过“安全性感知”层216直接从数据存储器217取回成员数据且在对查询服务212的响应211B中返回成员数据。如果不存在安全性列表,则“安全性感知”层216指示数据源接口215从与用户的安全性上下文相关联的数据源201取回维度成员。如果所得到的成员(及其属性)尚未存在于数据存储器217中,则将所得成员(及其属性)存储在数据存储器217中且“安全性感知”层216使用对应存储地址以在安全性列表存储器218中创建新安全性列表。如果某些成员已经存储在数据存储器217中,则不复制这些成员,而在新安全性列表中使用现有存储地址。接着通过缓存单元210经由响应211B而将所请求的成员返回至查询服务212。
图3是示出根据本发明的一个实施例的含有对已缓存成员的引用的安全性列表的示例性结构的示意图。在图3中,安全性列表320具有包括安全性上下文字段321及维度字段322的标头。此标头标识安全性列表。安全性列表320的正文330包括到与此安全性列表相关联的成员的高速缓存中的存储位置的地址(例如,索引)列表。例如,安全性上下文字段321的值为“欧洲销售经理”323,且维度字段322的值为“地理”324。安全性列表的正文330包括一个或多个地址,其中对应成员存储在高速缓存(例如,图2的数据存储器217)中。例如,安全性列表的正文330包括已缓存成员“西班牙”的地址、已缓存成员“荷兰”的地址,以及已缓存成员“意大利”的地址。
图4A是示出根据本发明的一个示例性实施例的具有层级及成员的单个分层的地理维度的示意图。可将地理维度分割为四个层级:具有成员内华达州及安大略省的州/省层级;具有成员美国、加拿大、法国、意大利的国家层级;具有成员北美洲及欧洲的洲层级;及主层级或根层级,亦即,所有地理层级。
如图4B所示,不同用户可能能够存取地理维度的每个层级内的不同层级及成员。例如,用户A可能仅存取洲层级成员北美洲的数据。因此,用户A被授予对北美洲成员及任何较低层级成员(诸如美国及加拿大)的存取。亦即,针对用户A的根节点成员为北美洲,且用户A可存取北美洲的所有子代节点。另一方面,用户A不能存取在国家层级下的其它地理维度成员(诸如欧洲及其子代节点)。
图4C展示根据一个示例性实施例的针对各种用户的相同维度的示例性视图。例如,用户A可存取北美洲成员及所有其子代节点,用户B可存取欧洲成员及所有其子代节点,且用户C可存取地理维度的所有成员。
图4D说明使用与一个或多个用户的安全性上下文相关联的安全性列表以提供对高速缓存内的维度及成员的存取。用户A及用户E皆具有安全性上下文:简档1。当用户A或用户E请求数据时,发现简档1的安全性列表。此简档1安全性列表将具有该安全性上下文的用户(例如,用户A及用户E)链接至北美洲成员及所有其子代。图4E展示其它安全性上下文的额外安全性列表:简档2及简档3。此处,用户B具有简档2以作为其安全性上下文。此安全性上下文与简档2安全性列表相关联,该简档2安全性列表将用户B链接至欧洲成员及所有其子代。用户C及用户D具有简档3以作为其安全性上下文。此安全性上下文与简档3安全性列表相关联,该简档3安全性列表将用户C及用户D链接至地理维度中的所有成员。
图5是示出根据本发明的一个示例性实施例的安全成员缓存过程的流程图。在操作501中,接收用户查询。尽管提交至BI***的查询引擎的用户查询潜在地引用多个维度,但通过查询服务将这些查询分解为若干子查询,且因此,可假定通过此安全成员缓存过程接收的用户查询是针对单个维度的成员请求。此用户查询亦包括用户的安全性上下文。
如上文所描述,BI***的给定用户的安全性上下文(针对特定OLAP数据源的查询/报告数据)由用于该已认证用户及该OLAP数据源的“有效”安全性简档来定义(基于此用户所属的安全性组及在登录时所选择的任何角色)。亦即,当用户与BI***交互时,可修改用户的安全性上下文。例如,当准备针对特定OLAP立方体进行报告时,可提示用户进一步描述他/她在组织内的角色。一旦认证此角色,此角色随即将变成此用户的安全性上下文的一部分以用于在BI***中的后续动作,且安全成员缓存过程随即将此修改后的安全性上下文视为不同安全性上下文。
在操作502中,基于在操作501中接收的用户查询中识别的维度及安全性上下文来执行在安全性列表中的搜索。如果找到匹配(操作503-是),则在操作505中获得高速缓存中的对应成员数据的地址信息。在操作506中,接着通过使用所获得的地址信息而直接从高速缓存取回所请求的成员数据。另一方面,如果未找到当前安全性上下文及维度的安全性列表(操作503-否),则在操作504中从数据源取回所请求的成员且将所请求的成员存储在高速缓存中。在操作507中,在高速缓存中创建含有至存储在高速缓存中的成员的地址的新安全性列表。
在一个示例性实施例中,每个维度成员在数据高速缓存中仅被存储一次。当向数据高速缓存进行针对该维度已经遇到的用户安全性上下文的维度成员取回请求时,无需查询底层数据源;仅仅返回通过针对当前维度及用户安全性上下文的安全性列表所指向的已缓存成员。
共享相同安全性上下文的每个用户(例如,在加拿大的每个销售经理)将能够使用与该安全性上下文相关联的安全性列表来存取存储在高速缓存中的数据。
图6是示出根据一个示例性实施例的在安全成员缓存过程中安全性列表的生成的流程图。在操作601中,接收用户查询。在操作602中,所述过程基于在所接收的用户查询中获得的安全性上下文及维度来搜索安全性列表。具体地说,根据预定规则将所获得的维度及安全性上下文组合为关键字或标识符。使用此生成的关键字来搜索现有安全性列表。
如果存在由所生成的关键字标识的安全性列表(操作603-是),则所述过程结束(操作610)。另一方面,如果未找到此列表(操作603-否),则在操作604中生成新安全性列表。例如,将初始化新安全性列表以包括关键字字段及地址字段。关键字字段被指派有对应于所生成的关键字的值。
接下来,在操作605中,针对当前用户的安全性上下文中的当前维度而从数据源取回成员数据。接下来,在操作606中,检查每个所返回成员是否存在于高速缓存中。如果该成员已经存在于高速缓存中(操作606-是),则在操作607中将对此成员的引用(诸如该成员在高速缓存中的地址)***新安全性列表中。
如果该成员未存储在高速缓存中(操作606-否),则在操作608中使用此成员的数据填充该高速缓存,且在操作609中将对该成员的引用(诸如该成员数据在高速缓存中的地址)添加至新安全性列表。接下来,所述过程继续针对下一所返回成员实施类似操作。如果未返回其它维度成员,则所述过程返回至其结束所在的操作610。
图7A及图7B是示出根据本发明的一个示例性实施例的安全性列表的删除的流程图。
BI***修订用于高速缓存的常规驱逐策略以包括安全性列表的删除。具体地说,可“逐维度地”进行用于高速缓存的驱逐策略,这通过高速缓存大小限制或时间限制来触发。在图7A中,在操作701中接收从高速缓存删除数据(在此实例中为元数据)的请求,且标记该元数据以供删除。
例如,已达到高速缓存的大小限制,且正在逐维度地从高速缓存清除元数据以释放内存而用于后续元数据。备选地,可以以时间为基础来清除元数据。例如,如果维度中的任何元数据未被使用达到预定时段,则自高速缓存清除该维度的元数据。可使用所述两种方法的组合来判定要从高速缓存删除的元数据。此外,高速缓存可能由于安全性规则改变或底层数据源中的其它元数据改变(例如,缓慢改变的维度有时发生的成员数据更新或删除)而需要清除元数据。
在一个示例性实施例中,为了确保高速缓存足够新,提供一个用户可配置的期满时期。如果达到该期满时期,则清除及重新加载高速缓存数据。在一个示例性实施例中,此方案可与所有源***类型一起工作且无需关于底层安全性***的特定知识。如果判定维度更新或安全性更新(诸如更新的触发或轮询)的工具可用,则使用这些工具以知晓何时更新高速缓存。
根据预定方案,在操作702中寻找被标记为供删除的元数据。在操作703中,获得被标记为供删除的元数据的地址。暂时存储元数据的地址,使得可确定对应安全性列表。在操作704中,删除所标记的元数据。在操作705中,使用元数据的所存储地址以在安全性列表内寻找此元数据。所述安全性列表存储至高速缓存中的元数据位置的指针。因此,如果保留于安全性列表中的任何指针指向已删除元数据项的高速缓存位置,则需要从该安全性列表删除该指针,所述删除通过操作706执行。
图7B所例示的备选驱逐策略可基于维度的唯一标识符。例如,所述维度可为地理。在操作711中接收从高速缓存删除此维度的请求。在操作712中,***搜索由地理维度部分地标识的所存储安全性列表。在操作713中,***判定当前安全性列表是否以地理维度作为关键字。如果当前安全性列表未以地理维度作为关键字(操作713-否),则在操作714中执行检查以判定最后列表是否被检查。如果存在其它安全性列表,则***返回操作712,以检查更多列表是否以所请求的维度作为关键字。
例如,一个安全性列表可能针对“员工”安全性上下文及地理维度,另一安全性列表可能针对“销售经理”安全性上下文及时间维度,且另一列表可能针对“出纳员”安全性上下文及地理维度。接着,如果要从高速缓存删除的维度为地理,则需要删除由此维度标识的所有安全性列表,这意味着要删除安全性列表“员工”/地理及“出纳员”/地理。
如果通过所请求维度部分地标识当前安全性列表(操作713-是),则在操作715中删除此安全性列表。***接着检查是否存在需要针对该维度而检查的其它列表(操作714)。如果存在其它列表(操作714-否),则***返回操作712,以检查更多列表是否以所请求的维度作为关键字。
另一方面,如果已检查所有列表(在操作714中-是),则接着在操作716中在高速缓存中搜索维度。***基于相同的唯一关键字或标识符(其可为(例如)字符串“地理”)而在高速缓存中搜索维度。如果在元数据高速缓存中未找到此维度(操作717-否),则所述过程结束。如果找到该维度(操作717-是),则***在操作718中从高速缓存删除该维度。
在一个示例性实施例中且作为BI***的额外优化,可将常用数据预加载至高速缓存中。可提前(当***启动时)通过提交针对更常用维度的成员查询(代表属于存取该***的主安全性简档的实例用户)而将成员数据预加载至数据高速缓存。
此外,作为BI***的额外优化,可在BI***环境内提供建模工具,其目的是表示OLAP立方体元数据(诸如维度、分层及层级)以及使用自动地提供至BI***查询引擎的新属性扩充此元数据。接着,通过在此建模工具中支持新维度属性(例如,被称为“安全”),建模者可指定哪些立方体内的哪些维度实际上需要安全性处理。因此,每当被返回至呼叫查询引擎的成员是针对无需为安全的维度(亦即,如下维度:该维度将从未具有应用于其的安全性,从而使得适于在不关注对可见性的限制的情况下直接返回其所缓存成员)时,便可通过高速缓存取回逻辑来检验此属性的值以消除创建(及处理)安全性列表的开销。
作为用于安全性感知成员缓存的另一内存优化技术,一个示例性实施例可包括单独活动,其并行地执行或根据调度执行,以识别相同安全性列表且将这些相同安全性列表合并成单个列表。已被以此方式合并的任何两个相同列表将源于在两个不同安全性上下文中属于相同维度的成员的查询。一旦这两个列表变成单个列表,标识此单个列表的关键字机制随即将确保已促成原始列表创建的两个安全性上下文中的任一安全性上下文现与所得到的单个列表相关联。
另外,取决于可用***资源,可定制高速缓存大小以使用不同类型的存储机制来保留不同的数据量。例如,缓存层可对一个维度中有多少将存储在RAM中与有多少将存储在磁盘上进行平衡。大型维度可含有1,000,000个以上元数据成员。因此,即使1,000,000个成员实际上存在于高速缓存中,这些成员也可被保留在RAM中或被分页至磁盘。
上文所提供的示例性实施例描述关于OLAP成员的缓存。可使用上述示例性结构及方法来实施各种不同类型的数据(诸如元数据)的缓存。亦即,尽管所描述的示例性实施例相当有益于在连接至安全OLAP数据源的***中进行安全成员缓存,但可将所述安全成员缓存用于涉及其它类型的数据的实施例中。例如,当对这些类型的数据的存取根据所述数据源的规则而需要为安全时,可使用所述安全成员缓存以优化含有OLAP维度数据、分层数据及层级数据的高速缓存。当对元组值的存取需要为安全时,亦可使用所述安全成员缓存以优化含有OLAP单元数据(cell data)的高速缓存。此外,每当对特定已缓存数据的存取根据安全非OLAP数据源的规则而需要为安全时,便可使用所述安全成员缓存以优化在连接至所述数据源的***中的含有非OLAP数据的高速缓存。
图8是示出根据一个示例性实施例的计算机/服务器***800的方块图。***800包括计算机/服务器平台801、***设备802及网络资源803。
计算机平台801可包括:数据总线804或其它通信机制,其用于跨越计算机平台801的各部分及在这些部分之间传送信息;及处理器805,其与总线804耦合以用于处理信息且执行其它计算及控制任务。计算机平台801亦包括易失性存储器806(诸如随机存取内存(RAM)或其它动态存储器件),其耦合至总线804以用于存储各种信息以及要由处理器805执行的指令。易失性存储器806亦可用于在通过处理器805执行指令期间存储暂时变量或其它中间信息。
计算机平台801可进一步包括只读存储器(ROM或EPROM)807或其它静态存储器件,其耦合至总线804以用于存储用于处理器805的静态信息及指令(诸如基本输入输出***(BIOS))以及各种***配置参数。提供永久性存储设备808(诸如磁盘、光盘或固态闪存设备)且将其耦合至总线804以用于存储信息及指令。例如,永久性存储设备808可存储一个或多个安全性列表,且亦可包括存储元数据成员的高速缓存。
计算机平台801可经由总线804而耦合至显示器809(诸如阴极射线管(CRT)、等离子显示器或液晶显示器(LCD))以用于向计算机平台801的用户显示信息。输入设备820(包括字母数字键及其它键)耦合至总线804以用于将信息及命令选择传送至处理器805。另一类型的用户输入设备是光标控制设备811(诸如鼠标、轨迹球或光标方向键)以用于将方向信息及命令选择(诸如OLAP查询)传送至处理器805且用于控制显示器809上的光标移动。此输入设备通常具有在两个轴线(第一轴线(例如,x)及第二轴线(例如,y))上的两个自由度,这允许该设备在平面中指定位置。
外部存储设备(数据源)812可经由总线804而连接至计算机平台801,外部存储设备812存储由计算机平台801使用的元数据。尽管出于简单性的目的而仅描绘一个数据源812,但可存在数个数据源812以及其它类型的数据源。
如本文所使用的术语“计算机可读介质”指参与将指令提供至处理器805以供执行的任何介质。计算机可读介质可为计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可为(例如(但不限于))电子、磁性、光学、电磁、红外线或半导体***、装置或设备,或前述各者的任何合适组合。计算机可读存储介质的更多特定实例(非详尽列表)将包括以下项:具有两个或两个以上导线的电连接;诸如软性磁盘或柔性磁盘的便携计算机磁盘;磁带或任何其它磁性介质;硬盘;随机存取存储器(RAM);只读存储器(ROM);可擦除可编程只读存储器(EPROM或闪存);记忆卡;任何其它内存芯片或卡盒;光纤;便携光盘只读存储器(CD-ROM);任何其它光学介质;打孔卡;纸带;具有孔图案的任何其它物理介质或可供计算机读取的任何其它介质;或前述各者的合适组合。
在此文档的上下文中,计算机可读存储介质可为可含有或存储供指令执行***、装置或设备使用或结合指令执行***、装置或设备使用的程序的任何有形介质。
计算机可读信号介质可包括体现有计算机可读程序代码的传播数据信号,例如,在基频中或作为载波的一部分。此传播信号可采取多种形式中的任一形式,包括(但不限于)电磁形式、光学形式或其任何合适组合。计算机可读信号介质可包括同轴电缆、铜线及光纤,包括包含数据总线804的导线。计算机可读信号介质可为并非计算机可读存储介质且可传送、传播或传送供指令执行***、装置或设备使用或结合指令执行***、装置或设备使用的程序的任何计算机可读介质。
体现于计算机可读介质上的程序代码可使用包括(但不限于)以下各者的任何适当介质进行传输:无线介质、有线介质、光缆介质、RF介质,等等,或前述各者的任何合适组合。
可以一种或多种编程语言的任何组合来编写用于实现示例性实施例的各方面的操作的计算机程序码,所述一种或多种编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C+、.Net或其类似者)及常规过程编程语言。程序代码可完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立软件包执行、部分地在用户计算机上执行且部分地在远程计算机上执行,或完全地在远程计算机或服务器上执行。远程计算机可经由任何类型的网络(包括局域网(LAN)或广域网(WAN))而连接至用户计算机,或可进行至外部计算机的连接(例如,在使用因特网服务提供者的情况下经由因特网)。
计算机可读介质只是机器可读介质的一个实例,其可承载用于实施本文所描述的方法和/或技术中的任一者的指令。此介质可采取许多形式,包括(但不限于)非易失性介质及易失性介质。非易失性介质包括(例如)光盘或磁盘,如存储设备808。易失性介质包括动态内存,诸如易失性存储器806。
可在将一个或多个指令的一个或多个序列携带至处理器805以供执行时涉及各种形式的计算机可读介质。例如,所述指令可初始被从远程计算机携带到磁盘上。备选地,远程计算机可将所述指令加载至其动态内存中且使用调制解调器经由电话线而发送所述指令。在计算机***800本地的调制解调器可在电话线上接收数据且使用红外线传输器以将数据转换为红外线信号。红外线检测器可接收在红外线信号中所携带的数据,且适当电路可将数据置于数据总线804上。总线804将数据携带至易失性存储器806,处理器805从易失性存储器806取回指令且执行指令。通过易失性内存806接收的指令可视情况在通过处理器805执行之前或之后存储在永久性存储设备808上。亦可使用本领域公知的多种网络数据通信协议经由因特网而将指令下载至计算机平台801中。
计算机平台801亦包括通信接口,诸如耦合至数据总线804的网络接口卡813。通信接口813提供至连接至本地网络815的网络链路814的双向数据通信耦合。例如,通信接口813可为集成业务数字网络(ISDN)卡或调制解调器以提供至对应类型的电话线的数据通信连接。作为另一实例,通信接口813可为局域网络接口卡(LAN NIC)以提供至兼容LAN的数据通信连接。亦可将诸如公知802.11a、802.11b、802.11g及蓝芽的无线链路用于网络实施。在任何此实施中,通信接口813发送及接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光学信号。
网络链路814通常提供经由一个或多个网络而至其它网络资源的数据通信。例如,网络链路814可提供经由本地网络815而至主机计算机816或网关/服务器817的连接。备选地或额外地,网络链路814可经由网关/防火墙817而连接至广域网络或全局网络818(诸如因特网)。因此,计算机平台801可存取位于因特网818上的任何位置的网络资源,诸如远程网络存储器/服务器819,其为数据源的另一实例。另一方面,计算机平台801亦可由位于本地网络815和/或因特网818上的任何位置的客户端进行存取。网络客户端820及821可在远程访问***801。
本地网络815及因特网818皆使用携带数字数据流的电信号、电磁信号或光学信号。将数字数据携带至计算机平台801及自计算机平台801携带数字数据的经由各种网络的信号及处于网络链路814上且经由通信接口813的信号为传送信息的载波的示例性形式。
计算机平台801可经由多种网络(包括因特网818及LAN 815)、网络链路814及通信接口813而发送消息且接收数据(包括程序代码)。在因特网实例中,当***801充当网络服务器时,***801可能经由因特网818、网关/防火墙817、本地网络815及通信接口813而传输在客户端820和/或821上运行的应用的所请求代码或数据。类似地,***801可自其它网络资源接收代码。
所接收的代码可在其被接收时通过处理器805执行,和/或分别存储在永久性性存储设备808或易失性存储设备806中,或存储在其它非易失性存储器中以供稍后执行。以此方式,计算机***801可获得呈载波形式的应用代码。
所述图中的流程图及方块图说明根据各种示例性实施例的***、方法及计算机程序产品的可能实施的架构、功能性及操作。就此而言,在流程图或方块图中的每个块可表示程序代码的模块、区段或部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。亦应注意,在某些备选实施中,块中所提及的功能可不以图中所提及的次序发生。例如,取决于所涉及的功能性,连续展示的两个块事实上可基本同时地执行,或两个块有时可以相反次序执行。亦应注意,方块图和/或流程图说明的每个块以及方块图和/或流程图说明中的块的组合可通过执行指定功能或动作的专用硬件基础***予以实施,或通过专用硬件与计算机指令的组合予以实施。
本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另行指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、元素和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、元素和/或组件,以及/或者它们的组合。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。

Claims (18)

1.一种用于数据库应用的安全缓存方法,所述方法包括以下步骤:
接收对数据的用户请求和安全性上下文,其中所述安全性上下文标识所述用户的针对所述数据库应用的安全性简档;
基于所述用户请求和所接收的安全性上下文而在高速缓存内搜索所请求的数据;
如果在所述高速缓存中找到所请求的数据,则响应于所述用户请求而返回所缓存的数据;以及
如果在所述高速缓存中未找到所请求的数据,则从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联,以及响应于所述用户请求而返回所请求的数据,
其中使用将所缓存的数据与具有对应维度的所述安全性上下文相关联的对应列表来存储所缓存的数据。
2.如权利要求1的方法,其中如果在所述高速缓存中未找到所请求的数据,则通过存储对存储在所述高速缓存中的所获得的数据的引用而生成新列表以便将存储在所述高速缓存中的所获得的数据与所述安全性上下文相关联。
3.如权利要求2的方法,其中将所述新列表存储在列表存储单元中,在所述列表存储单元中,所存储列表的数目基于所接收的用户查询而递增地增加。
4.如权利要求2的方法,还包括:如果所缓存的数据中的改变损害列表的完整性,则从列表存储单元清除该列表。
5.如权利要求2的方法,还包括:在使用所述高速缓存之前初始化列表存储单元,其中所述初始化包括将针对常用安全性上下文的常用数据的查询提交给所述数据源;将所述查询的结果加载至所述高速缓存;以及创建引用所缓存的数据的安全性列表。
6.如权利要求2的方法,还包括:针对冗余性而检查所存储的列表,并且如果找到两个相同列表,则将所述两个相同列表合并成单个列表。
7.如权利要求1的方法,其中所述数据是元数据。
8.如权利要求1的方法,还包括以下步骤:
在列表存储器中检查由所述安全性上下文和数据标识符所标识的列表的存在;以及
如果不存在所述列表,则在所述列表存储器中创建由所述安全性上下文和所述数据标识符来标识的列表、从所述数据源取回数据且将所取回的数据存储在数据存储器中,以及使用存储在所述数据存储器中的所取回数据的存储地址填充所创建的列表;以及
如果存在所述列表,则使用所述列表中的所述存储地址从所述数据存储器取回数据。
9.如权利要求8的方法,其中所述数据标识符是立方体维度标识符。
10.如权利要求8的方法,其中所述数据存储器是包括从多个异构远程数据源提供的数据的高速缓存。
11.如权利要求8的方法,还包括:预加载所述数据存储器和所述列表存储器,其中所述列表存储器预加载有与常用安全性上下文和数据标识符对应的列表,并且所述数据存储器预加载有由预加载的列表引用的常用数据。
12.如权利要求8的方法,其中存储在数据存储器中的数据是OLAP元数据。
13.一种缓存***,包括:
处理器,其执行软件模块;以及
内存,其存储所述软件模块,
其中所述软件模块包括:
接收器模块,其接收对数据的用户请求和安全性上下文,其中所述安全性上下文标识所述用户的针对所述数据库应用的安全性简档;
搜索模块,其基于所述用户请求和所接收的安全性上下文而在高速缓存内搜索所请求的数据;
管理模块,如果在所述高速缓存中找到所请求的数据,则所述管理模块响应于所述用户请求而获得所缓存的数据;且
其中如果在所述高速缓存中未找到所请求的数据,则所述管理模块从数据源获得所请求的数据、将所获得的数据存储在所述高速缓存中且将所获得的数据与所述安全性上下文相关联,以及响应于所述用户请求而返回所请求的数据,
其中使用将所缓存的数据与具有对应维度的所述安全性上下文相关联的对应列表来存储所缓存的数据。
14.如权利要求13的***,其中如果所述搜索模块在所述高速缓存中未找到所请求的数据,则所述管理模块通过存储对存储在所述高速缓存中的所获得的数据的引用而生成新列表以便将存储在所述高速缓存中的所获得的数据与所述安全性上下文相关联。
15.如权利要求14的***,其中所述管理模块将所述新列表存储在列表存储单元中,在所述列表存储单元中,所存储列表的数目基于所接收的用户查询而递增地增加。
16.如权利要求14的***,还包括:清除模块,如果所缓存的数据中的改变损害列表的完整性,则所述清除模块从列表存储单元清除该列表。
17.如权利要求16的***,还包括:预加载模块,所述预加载模块在使用所述高速缓存之前初始化列表存储单元,其中所述预加载模块将针对常用安全性上下文的常用数据的查询提交给所述数据源、将所述查询的结果加载至所述高速缓存,以及创建引用所缓存的数据的新安全性列表。
18.如权利要求14的***,还包括:检查模块,所述检查模块针对冗余性而检查所存储的列表,且如果找到两个相同列表,则所述检查模块将所述两个相同列表合并成单个列表。
CN201180010922.5A 2010-02-26 2011-02-22 当应用基于用户的安全性时优化数据高速缓存 Active CN102770849B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/714,225 2010-02-26
US12/714,225 US8375056B2 (en) 2010-02-26 2010-02-26 Optimizing data cache when applying user-based security
PCT/EP2011/052612 WO2011104237A2 (en) 2010-02-26 2011-02-22 Optimizing a data cache when applying user-based security

Publications (2)

Publication Number Publication Date
CN102770849A CN102770849A (zh) 2012-11-07
CN102770849B true CN102770849B (zh) 2015-05-27

Family

ID=44505842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180010922.5A Active CN102770849B (zh) 2010-02-26 2011-02-22 当应用基于用户的安全性时优化数据高速缓存

Country Status (6)

Country Link
US (2) US8375056B2 (zh)
EP (1) EP2539830A2 (zh)
JP (1) JP5695676B2 (zh)
CN (1) CN102770849B (zh)
TW (1) TWI519975B (zh)
WO (1) WO2011104237A2 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949103B2 (en) * 2006-06-20 2011-05-24 Vontoo, Llc System and method for providing voice messaging with dynamic content
US8938416B1 (en) 2012-01-13 2015-01-20 Amazon Technologies, Inc. Distributed storage of aggregated data
US9411874B2 (en) * 2012-06-14 2016-08-09 Melaleuca, Inc. Simplified interaction with complex database
US20140282035A1 (en) * 2013-03-16 2014-09-18 Vinay Mudinoor Murthy On-demand simultaneous synthetic aperture radar (sar) and ground moving target indication (gmti) using mobile devices
US10326734B2 (en) * 2013-07-15 2019-06-18 University Of Florida Research Foundation, Incorporated Adaptive identity rights management system for regulatory compliance and privacy protection
US9817638B2 (en) * 2013-12-27 2017-11-14 Symantec Corporation Systems and methods for injecting code into an application
US20150227630A1 (en) * 2014-02-13 2015-08-13 Microsoft Corporation Caching queries for dynamic webpages
US20150370882A1 (en) 2014-06-20 2015-12-24 Amazon Technologies, Inc. Use of dependency graphs to dynamically update n-dimensional cubes
US11868372B1 (en) 2014-06-20 2024-01-09 Amazon Technologies, Inc. Automated hierarchy detection for cloud-based analytics
US9882949B1 (en) 2014-06-20 2018-01-30 Amazon Technologies, Inc. Dynamic detection of data correlations based on realtime data
JP6410932B2 (ja) * 2014-06-20 2018-10-24 アマゾン テクノロジーズ インコーポレイテッド 組み込み可能なクラウド分析
US9621575B1 (en) * 2014-12-29 2017-04-11 A10 Networks, Inc. Context aware threat protection
US20160246721A1 (en) * 2015-02-19 2016-08-25 Qualcomm Incorporated Role based cache coherence bus traffic control
CN105930630A (zh) * 2015-09-15 2016-09-07 ***股份有限公司 一种数据分析方法及装置
CN108228649B (zh) * 2016-12-21 2021-08-24 伊姆西Ip控股有限责任公司 用于数据访问的方法和设备
US11048695B2 (en) * 2017-09-12 2021-06-29 Sap Se Context-aware data commenting system
US10725787B1 (en) * 2017-11-28 2020-07-28 Ascension Labs, Inc. Datapath graphs with operations performed using dimensions
JP7225554B2 (ja) * 2018-04-02 2023-02-21 富士通株式会社 情報処理装置、情報処理システムおよび情報処理プログラム
US11470084B2 (en) 2018-09-18 2022-10-11 Cyral Inc. Query analysis using a protective layer at the data source
US11477217B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Intruder detection for a network
US11663143B2 (en) 2019-11-26 2023-05-30 Oracle International Corporation Multi-state midtier dynamic cache replacement
US11625325B2 (en) * 2020-06-01 2023-04-11 Oracle International Corporation Partitioned mid-tier cache based on user type

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505788A (zh) * 2001-06-28 2004-06-16 �׹��Ĺ��ʹ�˾ 在不同数据库服务器之间划分一个数据库所有权以控制访问数据库
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的***和方法
CN1774901A (zh) * 2003-05-29 2006-05-17 甲骨文国际公司 便于安全启动的内容缓存的方法及设备
CN101052944A (zh) * 2004-03-29 2007-10-10 微软公司 用于关系数据库中存储数据的细化访问控制的***和方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US722130A (en) * 1902-10-16 1903-03-03 Donald Mcpherson Vaginal syringe.
US7228300B2 (en) 1998-10-05 2007-06-05 Oracle International Corporation Caching the results of security policy functions
US6279033B1 (en) * 1999-05-28 2001-08-21 Microstrategy, Inc. System and method for asynchronous control of report generation using a network interface
EP1222569B1 (en) * 1999-07-21 2003-08-06 Torben Bach Pedersen Method and systems for making olap hierarchies summarisable
US7007020B1 (en) * 2000-03-10 2006-02-28 Hewlett-Packard Development Company, L.P. Distributed OLAP-based association rule generation method and system
US7222130B1 (en) 2000-04-03 2007-05-22 Business Objects, S.A. Report then query capability for a multidimensional database model
US7249118B2 (en) * 2002-05-17 2007-07-24 Aleri, Inc. Database system and methods
US7499910B2 (en) * 2002-06-27 2009-03-03 Siebel Systems, Inc. Detecting and processing cache hits for queries with aggregates
US7051038B1 (en) * 2002-06-28 2006-05-23 Microsoft Corporation Method and system for a reporting information services architecture
JP2004264956A (ja) * 2003-02-28 2004-09-24 Kanazawa Inst Of Technology キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ
US6959362B2 (en) * 2003-05-07 2005-10-25 Microsoft Corporation Caching based on access rights in connection with a content management server system or the like
US20050262087A1 (en) * 2003-05-19 2005-11-24 Ju Wu Apparatus and method for maintaining row set security through a metadata interface
JP2005071085A (ja) * 2003-08-25 2005-03-17 Nec Corp 情報処理システム、情報処理装置および情報処理方法
JP2005196382A (ja) * 2004-01-06 2005-07-21 Nippon Telegr & Teleph Corp <Ntt> 情報管理システムによるデータ登録方法、データ参照方法、ならびに、情報管理システムにおけるマスタデータベースサーバ
US7613719B2 (en) * 2004-03-18 2009-11-03 Microsoft Corporation Rendering tables with natural language commands
US8606814B2 (en) * 2005-07-29 2013-12-10 Sap Ag Business intelligence OLAP provider model and architecture
US8060528B2 (en) * 2005-07-29 2011-11-15 Sap Ag Business intelligence OLAP consumer model and API
US8150816B2 (en) * 2005-12-29 2012-04-03 Nextlabs, Inc. Techniques of optimizing policies in an information management system
JP4519779B2 (ja) * 2006-01-25 2010-08-04 株式会社東芝 管理装置、管理装置のキャッシュ制御方法及び記録媒体並びに情報転送システムのキャッシュ制御方法
JP2007219619A (ja) * 2006-02-14 2007-08-30 Fuji Xerox Co Ltd 情報管理プログラムおよび装置並びに方法
US7506102B2 (en) * 2006-03-28 2009-03-17 Cisco Technology, Inc. Method and apparatus for local access authorization of cached resources
US7698285B2 (en) * 2006-11-09 2010-04-13 International Business Machines Corporation Compression of multidimensional datasets
US7693911B2 (en) * 2007-04-09 2010-04-06 Microsoft Corporation Uniform metadata retrieval
US8065484B2 (en) * 2007-07-19 2011-11-22 Oracle International Corporation Enhanced access to data available in a cache
US8032485B2 (en) * 2008-02-01 2011-10-04 American Express Travel Related Services Company, Inc. Rapid caching and data delivery system and method
EP2146292B8 (en) * 2008-07-18 2019-03-20 QlikTech International AB Method and apparatus for extracting information from a database

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505788A (zh) * 2001-06-28 2004-06-16 �׹��Ĺ��ʹ�˾ 在不同数据库服务器之间划分一个数据库所有权以控制访问数据库
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的***和方法
CN1774901A (zh) * 2003-05-29 2006-05-17 甲骨文国际公司 便于安全启动的内容缓存的方法及设备
CN101052944A (zh) * 2004-03-29 2007-10-10 微软公司 用于关系数据库中存储数据的细化访问控制的***和方法

Also Published As

Publication number Publication date
TW201205320A (en) 2012-02-01
TWI519975B (zh) 2016-02-01
US8375056B2 (en) 2013-02-12
WO2011104237A2 (en) 2011-09-01
JP2013520738A (ja) 2013-06-06
US8886673B2 (en) 2014-11-11
WO2011104237A3 (en) 2012-05-03
US20110213751A1 (en) 2011-09-01
US20130132677A1 (en) 2013-05-23
JP5695676B2 (ja) 2015-04-08
CN102770849A (zh) 2012-11-07
EP2539830A2 (en) 2013-01-02

Similar Documents

Publication Publication Date Title
CN102770849B (zh) 当应用基于用户的安全性时优化数据高速缓存
CA3025493C (en) Optimizing read and write operations in object schema-based application programming interfaces (apis)
US9767131B2 (en) Hierarchical tablespace space management
CN1713179B (zh) 在对象模型中的影响分析
EP2874077B1 (en) Stateless database cache
US7672966B2 (en) Adding extrinsic data columns to an existing database schema using a temporary column pool
CN113227998A (zh) 全面支持自主json文档对象(ajd)云服务的技术
US20180373767A1 (en) Database table conversion
CN109144994A (zh) 索引更新方法、***及相关装置
Chavan et al. Survey paper on big data
US20150317331A1 (en) Unified platform for application development
CN103678442A (zh) 基于用户数据访问模式的数据库表格式转换的方法和***
CN104160381A (zh) 多租户环境中租户特定数据集的管理
US11074267B2 (en) Staged approach to automatic data discovery and performance
KR100529661B1 (ko) 오브젝트 통합 관리 시스템
CN108140022B (zh) 数据查询方法和数据库***
US20140223100A1 (en) Range based collection cache
CN111708895A (zh) 一种知识图谱***的构建方法及装置
US20170220656A1 (en) Information Access System
CN105518672A (zh) 跨多个模型的数据检索
JP4079990B2 (ja) オブジェクト統合管理システムの生成方法
CN114341833A (zh) 在基表上减小temp大小
CN105518670A (zh) 用于模型查询的数据模型索引
CN110727672A (zh) 数据映射关系查询方法、装置、电子设备及可读介质
US20240119045A1 (en) Systems and Methods for Intelligent Database Report Generation

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