程序员主编霍泰稳,找到庄表伟,要找个人写介绍Cache的文章。 庄表伟推荐了我。前几天讨论Cache,正好可以写个总结。 于是,我就写了一篇。由于错漏在所难免,先发出来,和大家一起讨论,求得指正。 ----------------- Cache Insight 前言 首先,介绍一下我(作者)自己使用Cache的背景,以便读者更清楚地了解我下面要讲述哪些内容。 我主要是一个Cache实现者,而不是使用者。为了给一些ORM(比如JPA实现)提供Cache支持,我需要包装其它的Open Source Cache,并考察它们的特性。 我对这些Open Source Cache的一些工作原理,了解 ...
关于Cache部分,写了一篇 http://forum.javaeye.com/viewtopic.php?t=21631 下面写开发JPA Cache 的感受。 firebody 是一个信仰坚定,水平很高的 TDDer。 很荣幸加入他的JPA团队。让我体验了TDD,集成测试。 对TDD, test,我的看法是这样,由于目前,测试远远没有达到应该重视的程度,现阶段无论怎么强调都是不过分的。 同样,对于已经TDD已经强调够了的人们来说,也应该考虑超越TDD,而不是满足于现状。 JPA是一个相当大的项目。firebody控制的相当好。TDD功不可没。 需求分析,问题分解,to do lis ...
1. Remote Cache Remote Cache 是对应于Local Cache来说的。 Key or Value 需要序列化,需要内部网络通信。 Remote Cache 可分为 中心Cache,和Cluster Cache。 Cluster Cache的一个要点是,只是remove的时候,传播 invalidate事件。 这样只需要在 update 的时候,进行传播。 好处是,读取的时候,比起中心cache,就少了一布内部网络通信。 坏处是,命中率比memcache低,因为memory是分开的。update多的时候,需要传播 remove/invalidate事件。 2. ...
分页 & QueryKey & 预取 数据库分页查询一般分为两步, (1)根据查询条件,count 记录总数 (2)根据当前页的数据范围(起始位置offset, 每页数据个数span),从符合查询条件的记录集 取出对应范围的数据。 一、根据范围取数据的方法 如果单纯用JDBC从ResultSet中取出一个指定范围(offset, span)的数据,可以采用这样的方法。 [code:1] ps = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ps.setM ...
数据库对象的缓存策略 前言 本文探讨Jive(曾经开源的Java论坛)和Hibernate(Java开源持久层)的数据库对象的缓存策略,并阐述作者本人的Lightor(Java开源持久层)采用的数据库对象缓存策略。 本文的探讨基于以前开源的Jive代码,Hibernate2.1.7源码,和作者本人的Lightor代码。 本文用ID (Identifier的缩写)来代表数据记录的关键字。 数据对象查询一般分为两种:条件查询,返回一个满足条件的数据对象列表; ID查询,返回ID对应的数据对象。 本文主要探讨“条件查询”和“ID查询”这两种情况的缓存策略。 本文只探讨一个JVM内的数据缓存策略,不 ...
buaawhl
搜索本博客
其他分类
存档
最新评论