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

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

 2010-10-09 08:12:25 来源:WEB开发网   
核心提示: $JAVA_HOME/bin/java-Xms1024M-Xmx1024M-verbose:gc-classpath$TEST_CLASSPATHogdriver.ClientDriver-mMap-n500000-gUserGrid-nt10-r200-c$CATALOG_14.结果使用wri

$JAVA_HOME/bin/java -Xms1024M -Xmx1024M -verbose:gc -classpath 
$TEST_CLASSPATH ogdriver.ClientDriver -m Map -n 500000 -g UserGrid -nt 10 -r 
200 -c $CATALOG_1 

4.结果

使用write-behind特性能够显著提高性能。我们分别使用了write-through和write-behind技术运行示例代码,比较了各自的响应时间以及数据库的CPU占用率。插入到缓存中的数据与数据库中的记录相匹配,这就避免了缓存的准备时间,保证读取的响应时间一致,这样才能比较写的响应时间。列表3展示了write-through场景下的响应时间,读取数据花费了不到10ms,而写花费的时间达到了450——550ms。在执行过程中,网络跳转与磁盘I/O操作耗费了大多数时间。列表4展示了write-behind场景下的响应时间,在这种情况下所有的事务都被提交到网格中。从图表中可以看出,它所消耗的读和写的响应时间几乎相同,都消耗了2.5-5ms。这两个图表极为明显地说明,对于更新而言,write- through响应时间更长,而write-behind耗费的更新时间几乎与读取操作相同。如果添加更多的JVM,则能够增加缓存的容量,无需改变响应时间,数据库也不再成为瓶颈。

列表3:采用write-through缓存的响应时间图表

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

列表4:采用write-behind缓存的响应时间图表

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

数据库的CPU占用率图表展现了使用write-behind对后端加载的改善。列表5是一幅采用write-through产生的数据库CPU占用图。可以看见,在运行及时写入数据库的所有更新时,CPU的使用是连续的。使用时,CPU空闲状态的波动在4%到10-12%之间。采用write- through技术,后端加载保持了恒定的值。如果采用write-behind,在满足缓存的间隔时间内,后端的加载耗费了更低的CPU占用率,如列表 6所示。该图显示,当数据库较为空闲时,占用率为4%,在三分钟间隔时间结束,或者更新记录数达到峰值时,会批量地将更新写入到磁盘中,此时CPU占用率会在短时间内达到12-16%。write-behind的配置可以调整,以满足自己的运行环境,这其中包括写事务的比例,相同记录更新的频率,以及数据库的更新延迟。 

列表5:采用write-through缓存的数据库CPU占用率图表 

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

列表6:采用write-behind缓存的数据库CPU占用率图表

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

结论

本文重新审视了write-behind缓存技术,并展示了如何在WebSphere eXtreme Scale下实现这一特性。write-behind缓存功能减少了后端加载,降低了事务的响应时间,并将应用程序与后端失败隔离开。这些优势以及它配置的简单性,都使得write-behind缓存异常的强大。

上一页  1 2 3 4 5 6 

Tags:极端 事务 处理

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