WEB开发网
开发学院软件开发Java 极端事务处理模式:Write-behind缓存 阅读

极端事务处理模式:Write-behind缓存

 2010-10-09 08:12:25 来源:WEB开发网   
核心提示: 列表2:用例的实体关系@OneToMany(mappedBy="user",fetch=FetchType.EAGER,cascade={Cas-cadeType.ALL})privateSet<UserAccount>accounts=newHashSet<

列表2:用例的实体关系

@OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = { Cas-cadeType.ALL }) 
 
private Set<UserAccount> accounts = new HashSet<UserAccount>(); 
 
 
   
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = { Cas-cadeType.ALL }) 
 
private Set<UserTransaction> transactions = new HashSet<UserTransaction>(); 

1.生成数据库

示例代码包含了PopulateDB类,它能够加载某些用户数据到数据库中。DB2数据库的连接信息被定义在之前展示的 persistance.xml文件中。在persistence.xml中的持久单元名(persistence unit name)将用于创建JPA EntityManagerFactory。用户对象会被创建,然后被批量地持久化到数据库中。

2. 准备缓存

一旦数据库被加载,数据网格代理(data grid agents)就会预先加载缓存。记录被批量写入到缓存中,因此在客户端与服务器之间几乎没有产生通信。还可以使用多客户端(multiple clients)来加快准备时间。在准备缓存时,一些“热门”数据可以作为所有记录的子集,其余数据则可以采用延迟加载。预先加载缓存提高了缓存命中的几率,减少了从后端层中获取数据的需要。在这个例子中,匹配数据库记录的数据会被插入到缓存中,而不是从数据库中加载,从而加快了执行时间。

3.在网格上生成加载

示例代码包含一个客户端驱动器,模仿在网格上的操作,用以演示write-behind缓存功能如何提高性能。客户端包含多个选项调整加载行为。下面的命令使用了10个线程,以每个线程200个请求将500k的记录加载到“UseGrid”网格中。

上一页  1 2 3 4 5 6  下一页

Tags:极端 事务 处理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接