[hibernate-commits] [hibernate/hibernate-orm] a074d3: HHH-7640 Improve single node Infinispan 2LC perfor...

GitHub noreply at github.com
Thu Oct 18 12:05:50 EDT 2012


  Branch: refs/heads/master
  Home:   https://github.com/hibernate/hibernate-orm
  Commit: a074d3244da44bfdd8c2e86fe679a20367bebc87
      https://github.com/hibernate/hibernate-orm/commit/a074d3244da44bfdd8c2e86fe679a20367bebc87
  Author: Galder Zamarreño <galder at zamarreno.com>
  Date:   2012-10-18 (Thu, 18 Oct 2012)

  Changed paths:
    M .gitignore
    M hibernate-core/src/main/java/org/hibernate/cache/internal/StandardQueryCache.java
    M hibernate-core/src/main/java/org/hibernate/engine/internal/StatefulPersistenceContext.java
    M hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java
    M hibernate-infinispan/hibernate-infinispan.gradle
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/InfinispanRegionFactory.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/access/PutFromLoadValidator.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/access/TransactionalAccessDelegate.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/collection/CollectionRegionImpl.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/entity/EntityRegionImpl.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/impl/BaseGeneralDataRegion.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/impl/BaseRegion.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/impl/BaseTransactionalDataRegion.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/naturalid/NaturalIdRegionImpl.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/query/QueryResultsRegionImpl.java
    A hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/timestamp/ClusteredTimestampsRegionImpl.java
    M hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/timestamp/TimestampsRegionImpl.java
    R hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/AddressAdapter.java
    R hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/AddressAdapterImpl.java
    R hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/CacheAdapter.java
    R hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/CacheAdapterImpl.java
    R hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/CacheHelper.java
    A hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/Caches.java
    R hibernate-infinispan/src/main/java/org/hibernate/cache/infinispan/util/FlagAdapter.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/AbstractGeneralDataRegionTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/AbstractRegionImplTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/InfinispanRegionFactoryTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/NodeEnvironment.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/access/PutFromLoadValidatorUnitTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/collection/AbstractCollectionRegionAccessStrategyTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/collection/CollectionRegionImplTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/entity/AbstractEntityRegionAccessStrategyTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/entity/EntityRegionImplTestCase.java
    A hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/functional/Age.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/query/QueryRegionImplTestCase.java
    A hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/PutFromLoadStressTestCase.java
    A hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/SecondLevelCacheStressTestCase.java
    A hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/entities/Address.java
    A hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/entities/Family.java
    A hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/entities/Person.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/timestamp/TimestampsRegionImplTestCase.java
    M hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/tm/XaTransactionImpl.java
    M hibernate-infinispan/src/test/resources/log4j.properties
    A hibernate-infinispan/src/test/resources/stress-local-infinispan.xml

  Log Message:
  -----------
  HHH-7640 Improve single node Infinispan 2LC performance

* Use an Infinispan cache to maintain pending puts, which avoids
the need to control it's memory consumption in the critical path
of putFromLoad.
* This cache is shared by all regions, and it's configured with
aggressive expiration settings to avoid piling up pending put
operations.
* Added a 2LC stress test that tests behaivour and performance
of 2LC under multiple situations, such as entity inserts, updates,
find via PK, find via query and deletes.
* Some other minor performance enhancements, such as avoiding
classloader aware cache wrapper if using 2LC locally.
* Remove cache adapter to reduce construction of useless objects.
* Cache flagged caches in order to avoid recomputing decorated
caches all the time, which reduces memory consumption.
* Skip locking for timestamp updates and separate timestamp region
implementations for local vs clustered scenarios.





More information about the hibernate-commits mailing list