当前位置: 首页 > 专利查询>BEA系统公司专利>正文

用于事务缓存的系统和方法技术方案

技术编号:5068148 阅读:380 留言:0更新日期:2012-04-11 18:40
一种支持事务缓存服务的计算机实现的方法和系统包含:配置与一个或多个事务和一个或多个工作空间相关联的事务缓存;在事务装饰器中维持该一个或多个事务与该一个或多个工作空间之间的内部映射;获取具有一个或多个操作的事务;利用事务装饰器中的内部映射找到用于该事务的工作空间;以及向与该事务相关联的工作空间应用该事务的一个或多个操作。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及缓存服务领域,且尤其涉及分布式缓存。
技术介绍
缓存是指在软件系统中为获得更高的性能而临时存储记录的拷贝。缓存由条目池 (pool of entries)组成。每个条目具有数据(数据块),这些数据是一些后备存储器中数 据的拷贝。每个条目还具有标签,该标签指定在后备存储器中的条目为拷贝的数据的身份。 当缓存客户端(CPU、网络浏览器、操作系统)希望访问可推测在后备存储器中的数据时,它 首先检查缓存。如果可以找到具有与所需数据的标签匹配的标签的条目,则使用该条目中 的数据作为替代。这种情形已知为缓存命中。所以,例如,网络浏览器程序可以检查硬盘上 的本地缓存以查看它是否具有特定URL的网页内容的本地拷贝。在该示例中,URL是标签, 且网页内容是数据。导致缓存命中的访问百分比已知为缓存的命中率或命中比例。在备选 情形中,当查询缓存且发现不包含具有所需标签的数据时,已知为缓存缺失。在缺失处理中 从后备存储器获取的数据通常插入到缓存中,准备用于下一次访问。附图说明图1是根据本专利技术的一个实施例的缓存系统的示例性说明。图2是根据本专利技术的一个实施例的分层缓存的示例性说明。图3是根据本专利技术的一个实施例的分布式缓存的示例性框架的说明。图4是根据本专利技术的一个实施例的用于弱一致性复制缓存的缓存更新操作的示 例性说明。图5是根据本专利技术的一个实施例的用于同步弱一致性复制缓存的陈旧缓存条目 操作的示例性说明。图6是根据本专利技术的一个实施例的用于弱一致性复制缓存的针对节点关闭操作的缓存更新的示例性说明。图7是根据本专利技术的一个实施例的用于强一致性复制缓存的变异运算(mutation operation)序列的示例性说明。图8是根据本专利技术的一个实施例的用于强一致性复制缓存的附属操作序列的示 例性说明。图9是根据本专利技术的一个实施例的用于事务缓存的示例性框架的说明。图10是根据本专利技术的一个实施例的用于可变对象处理的示例性框架的说明。具体实施例方式通过在附图中举例而非限制的方式说明本专利技术,附图中相似的附图标记表示相似 的元件。应当注意,本公开中的“一”或“一个”或“一些”实施例并不一定表示相同的实施 例,且这些引用表示至少一个。缓存是指在软件系统中为获得更高的性能而临时存储记录的拷贝。可以通过减小 对数据的原始记录的访问次数实现性能提升,这可能涉及创建原始记录时的数据库访问或 计算密集的操作,或者它可以是对访问来说(在资源方面)昂贵的其他信息源。通过在一 个进程、多个进程以及可能跨在多个机器上分布的进程中在线程上共享这种缓存对象,也 可以实现性能提升。与之相连的是提供各种缓存特征——增强诸如事务、分区缓存的缓存 存取特征以及诸如复制的可用性特征。本专利技术的一个实施例是可以在Java应用中部署和使用的用于静态和动态Java对 象的缓存系统。尽管该缓存系统可以与比如J2EE容器中存在的特征相结合,本专利技术不强制 要求J2EE容器的存在以使用Java缓存系统。根据一个实施例,缓存是被缓存对象的命名容器。缓存系统或缓存空间具有一个 或多个这种容器。缓存可以从缓存系统重载一些属性。在一个示例中,缓存主要向用户呈 现 java. util.Map 接口。对象明确地布置在缓存(cache aside caches,旁路缓存)中或者在访问与缓存相 关的键时暗示地布置在缓存中(cache-through caches,贯穿缓存)。在一些情况中,缓存 的对象可以由特定键识别。缓存键是在缓存容器内用来引用缓存对象的键。键是重载针对对象定义的 hashCode ()和equals()方法的Java对象。它们还是用于支持查询(queries)和留存 (persistence)的可序列化和可比较接口。java. lang. String类型的对象被典型地使用。根据一个实施例,缓存键针对非本地的缓存对象是可序列化的。键的类可以重载 java. lang. Object类的hashCode ( ) ^P equals ()方法。基本类型也可以用作缓存键。图1是根据本专利技术的一个实施例的缓存系统的示例性说明。根据一个实施例,区域110a或110b是缓存内的容器。它可以提供缓存100中的 分层对象存储。区域110a和110b可以重载一些缓存属性(比如范围)。区域110a可以具 有子区域或缓存对象110c。根据一个实施例,为了实现复杂事件处理,一组缓存对象可以被分组。分组允许对 相关对象自动执行某些缓存行为,诸如缓存失效。缓存失效是由于对缓存对象的更新或从 缓存去除缓存对象而使得缓存对象失效的行为。例如,组对象的失效使得从属于该对象的所有对象都失效。类似地,在贯穿 缓存中,如果被缓存的对象不存在其它依赖性,则组用于使得所有相关缓存对象无效 (fault-in)。在另一示例中,组对象被限制为仅在容器缓存对象内具有依赖性。根据一个实施例,应用域无关缓存配置。在一个示例中,域无关缓存配置是配置分 布式缓存的集群的域无关方式。另外,具有一个域范围内分布的缓存也是有用的,其可以不 限制分布式缓存为集群。缓存服务还利用不同的安全措施。作为实现缓存的安全性的一个 步骤,修改API以基于角色限制对于缓存的访问是有用的。本专利技术的一个实施例可以利用 OpenJPA中的缓存实现方式。根据一个实施例,缓存管理器101是缓存服务的控制器。缓存服务通过具有动态 管理和支配设备的永久配置描述。初始化时,缓存管理器101创建配置后的缓存且初始化 它们。缓存管理器提供的生命周期服务可以类似于应用服务器中的服务器服务,但是它们 被独立地定义以避免对于这种应用服务器的依赖性。缓存管理器101提供配置、管理、支配和性能监控服务。缓存管理器101还可以为 比如许可和缓存会话的辅助服务提供支持。缓存管理器101的另一重要方面是作为一个整 体进行容量管理和实施缓存服务的各种标准属性。根据一个实施例,会话可以提供视图管理和隔离。在一个示例中,一直到会话结束 之前,在会话104内完成的对缓存对象的更新都并不传播。会话104还可以异常结束,意味 着没有做出对缓存的其他用户可见的会话语境内的更新。会话104本质上可以提供缓存更 新的批处理。除会话支持之外,缓存服务还提供事务支持以管理缓存中的对象。缓存事务通过 由事务缓存暴露的方法手动控制或者通过Java事务API (JTA)自动控制。在一个示例中, 事务105内做出的变化根据所配置的隔离等级被充分隔离。提交可以是原子的、一致的和 可持久的。回滚可以被充分支持且可以不影响缓存的完整性。根据一个实施例,缓存映射(Cache Map) 103是缓存的基本接口。作为示例,缓存 映射103是基于映射的接口。像监控和存储意识性这样的附加功能性可以添加到缓存映射 103。在一个示例中,在用户所关心的范围内,缓存可以仅是java.util. Map。该Map从 配置推导其属性。例如,如果该Map被配置成要被复制,则对该Map的所有更新被传播到集 群中的其他节点。可以支持所有映射操作。缓存的典型用法如下所示权利要求一种支持事务缓存服务的计算机实现的方法,包括配置与一个或多个事务和一个或多个工作空间相关的事务缓存;在事务装饰器中维持所述一个或多个事务与所述一个或多个工作空间之本文档来自技高网...

【技术保护点】
一种支持事务缓存服务的计算机实现的方法,包括:配置与一个或多个事务和一个或多个工作空间相关的事务缓存;在事务装饰器中维持所述一个或多个事务与所述一个或多个工作空间之间的内部映射;接收具有一个或多个操作的事务;利用所述事务装饰器中的内部映射找到用于该事务的工作空间;以及向与该事务相关联的工作空间应用该事务的所述一个或多个操作。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:N雷瓦那鲁
申请(专利权)人:BEA系统公司
类型:发明
国别省市:US[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1