[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