hibernate二级缓存ehcache的put原理

  • Post author:
  • Post category:其他


此文只对磁盘缓存方式进行展述

hibernate执行sql,将数据转化为映射实体类后会进行数据缓存,其中调用AbstractRowReader#performTwoPhaseLoad方法时,会循环数据集,调用TwoPhaseLoad.initializeEntity();该方法会调用ehcache的put方法进行数据缓存。

ehcache在put数据实例(数据实例已转化为Element实例对象),该对象到磁盘时(此时内存缓存已满,按照ehcache.xml中设定的策略,超过部分存储在磁盘),会判断当前disk store spool is full,如果已满,需进行50ms的sleep,降低生产线程放入的速度。

Cache.class

/**
     * Put an element in the cache.
     * <p/>
     * Resets the access statistics on the element, which would be the case if it has previously been
     * gotten from a cache, and is now being put back.
     * <p/>
     * Also notifies the CacheEventListener that:
     * <ul>
     * <li>the element was put, but only if the Element was actually put.
     * <li>if the element exists in the cache, that an update has occurred, even if the element would be expired
     * if it wa



版权声明:本文为baidu_41669919原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。