[Registry-dev] svn commit r14851 -
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao
svn at wso2.org
svn at wso2.org
Sat Mar 15 10:34:46 PDT 2008
Author: glen
Date: Sat Mar 15 10:34:43 2008
New Revision: 14851
Log:
Use an in-memory cache of path -> id, since that relationship won't change and we do that query a lot.
Modified:
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
Modified: branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
==============================================================================
--- branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java (original)
+++ branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java Sat Mar 15 10:34:43 2008
@@ -30,10 +30,8 @@
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
+import java.sql.Date;
+import java.util.*;
public class VersionedResourceDAO {
@@ -624,8 +622,13 @@
return RegistryConstants.ACTIVE_STATE == count;
}
+ Map<String, Long> idCache = new HashMap<String, Long>();
public long getResourceID(String path, Connection conn) throws SQLException {
+ // Check for cache hit
+ Long cachedID = idCache.get(path);
+ if (cachedID != null) return cachedID;
+
String sql = "SELECT A.AID FROM ARTIFACTS A WHERE A.PATH=?";
PreparedStatement s = conn.prepareStatement(sql);
@@ -633,7 +636,9 @@
ResultSet result = s.executeQuery();
if (result.next()) {
- return result.getLong(DatabaseConstants.AID_FIELD);
+ final long id = result.getLong(DatabaseConstants.AID_FIELD);
+ idCache.put(path, id);
+ return id;
}
return -1;
More information about the Registry-dev
mailing list