[infinispan-commits] Infinispan SVN: r1433 - in trunk: cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary and 3 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue Feb 2 09:19:22 EST 2010


Author: manik.surtani at jboss.com
Date: 2010-02-02 09:19:21 -0500 (Tue, 02 Feb 2010)
New Revision: 1433

Modified:
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/DataManipulationHelper.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java
   trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java
   trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java
   trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
   trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
Log:
Improved JDBC cache store

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/DataManipulationHelper.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/DataManipulationHelper.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/DataManipulationHelper.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -118,16 +118,17 @@
    }
 
 
-   public final void toStreamSupport(ObjectOutput objectOutput, byte streamDelimiter) throws CacheLoaderException {
+   public final void toStreamSupport(ObjectOutput objectOutput, byte streamDelimiter, boolean filterExpired) throws CacheLoaderException {
       //now write our data
       Connection connection = null;
       PreparedStatement ps = null;
       ResultSet rs = null;
       try {
-         String sql = tableManipulation.getLoadAllRowsSql();
+         String sql = filterExpired ? tableManipulation.getLoadNonExpiredAllRowsSql() : tableManipulation.getLoadAllRowsSql();
          if (log.isTraceEnabled()) log.trace("Running sql '" + sql);
          connection = connectionFactory.getConnection();
          ps = connection.prepareStatement(sql);
+         if (filterExpired) ps.setLong(1, System.currentTimeMillis());
          rs = ps.executeQuery();
          rs.setFetchSize(tableManipulation.getFetchSize());
          while (rs.next()) {
@@ -147,14 +148,16 @@
       }
    }
 
-   public final Set<InternalCacheEntry> loadAllSupport() throws CacheLoaderException {
+   public final Set<InternalCacheEntry> loadAllSupport(boolean filterExpired) throws CacheLoaderException {
       Connection conn = null;
       PreparedStatement ps = null;
       ResultSet rs = null;
       try {
-         String sql = tableManipulation.getLoadAllRowsSql();
+         String sql = filterExpired ? tableManipulation.getLoadNonExpiredAllRowsSql() : tableManipulation.getLoadAllRowsSql();
+         if (log.isTraceEnabled()) log.trace("Running sql '" + sql);
          conn = connectionFactory.getConnection();
          ps = conn.prepareStatement(sql);
+         if (filterExpired) ps.setLong(1, System.currentTimeMillis());
          rs = ps.executeQuery();
          rs.setFetchSize(tableManipulation.getFetchSize());
          Set<InternalCacheEntry> result = new HashSet<InternalCacheEntry>();

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/TableManipulation.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -72,6 +72,7 @@
    private String selectRowSql;
    private String deleteRowSql;
    private String loadAllRowsSql;
+   private String loadAllNonExpiredRowsSql;
    private String deleteAllRows;
    private String selectExpiredRowsSql;
    private String deleteExpiredRowsSql;
@@ -293,6 +294,14 @@
       return deleteRowSql;
    }
 
+   public String getLoadNonExpiredAllRowsSql() {
+      if (loadAllNonExpiredRowsSql == null) {
+         loadAllNonExpiredRowsSql = "SELECT " + dataColumnName + "," + idColumnName + ", " + timestampColumnName + " FROM " + getTableName() + " WHERE " +
+               timestampColumnName + " > ? OR " + timestampColumnName + " < 0";
+      }
+      return loadAllNonExpiredRowsSql;
+   }
+
    public String getLoadAllRowsSql() {
       if (loadAllRowsSql == null) {
          loadAllRowsSql = "SELECT " + dataColumnName + "," + idColumnName + " FROM " + getTableName();
@@ -335,7 +344,7 @@
          if (tableNamePrefix == null || cacheName == null) {
             throw new IllegalStateException("Both tableNamePrefix and cacheName must be non null at this point!");
          }
-         tableName = tableNamePrefix + "_" + cacheName;
+         tableName = tableNamePrefix + "_" + cacheName.replace(".", "_");
       }
       return tableName;
    }

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/binary/JdbcBinaryCacheStore.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -216,7 +216,7 @@
    }
 
    public Set<InternalCacheEntry> loadAllLockSafe() throws CacheLoaderException {
-      return dmHelper.loadAllSupport();
+      return dmHelper.loadAllSupport(false);
    }
 
    protected void fromStreamLockSafe(ObjectInput objectInput) throws CacheLoaderException {
@@ -224,7 +224,7 @@
    }
 
    protected void toStreamLockSafe(ObjectOutput objectOutput) throws CacheLoaderException {
-      dmHelper.toStreamSupport(objectOutput, BINARY_STREAM_DELIMITER);
+      dmHelper.toStreamSupport(objectOutput, BINARY_STREAM_DELIMITER, false);
    }
 
    @Override

Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -204,7 +204,7 @@
 
    @Override
    protected void toStreamLockSafe(ObjectOutput objectOutput) throws CacheLoaderException {
-      dmHelper.toStreamSupport(objectOutput, STRING_STREAM_DELIMITER);
+      dmHelper.toStreamSupport(objectOutput, STRING_STREAM_DELIMITER, true);
    }
 
    @Override
@@ -214,7 +214,7 @@
 
    @Override
    protected Set<InternalCacheEntry> loadAllLockSafe() throws CacheLoaderException {
-      return dmHelper.loadAllSupport();
+      return dmHelper.loadAllSupport(true);
    }
 
    @Override

Modified: trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/core/src/main/java/org/infinispan/loaders/AbstractCacheLoader.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -15,5 +15,4 @@
    public boolean containsKey(Object key) throws CacheLoaderException {
       return load(key) != null;
    }
-
 }

Modified: trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -116,7 +116,12 @@
       if (trace) log.trace("store(" + ed + ")");
       if (ed == null) return;
       if (ed.isExpired()) {
-         if (trace) log.trace("Entry " + ed + " is expired!  Not doing anything.");
+         if (containsKey(ed.getKey())) {
+            if (trace) log.trace("Entry " + ed + " is expired!  Removing!");
+            remove(ed.getKey());
+         } else {
+            if (trace) log.trace("Entry " + ed + " is expired!  Not doing anything.");
+         }
          return;
       }
 

Modified: trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2010-02-02 13:48:43 UTC (rev 1432)
+++ trunk/core/src/main/java/org/infinispan/manager/DefaultCacheManager.java	2010-02-02 14:19:21 UTC (rev 1433)
@@ -107,7 +107,7 @@
 @SurvivesRestarts
 @MBean(objectName = DefaultCacheManager.OBJECT_NAME, description = "Component that acts as a manager, factory and container for caches in the system.")
 public class DefaultCacheManager implements CacheManager {
-   public static final String DEFAULT_CACHE_NAME = "org.infinispan.manager.DefaultCacheManager.DEFAULT_CACHE_NAME";
+   public static final String DEFAULT_CACHE_NAME = "___defaultcache";
    public static final String OBJECT_NAME = "CacheManager";
    private static final Log log = LogFactory.getLog(DefaultCacheManager.class);
    protected GlobalConfiguration globalConfiguration;



More information about the infinispan-commits mailing list