Updated Branches:
  refs/heads/develop b3d6d78f0 -> 27338784c

added new attribute to cache entries in ldcache to indicate how many triples 
have been cached - this is currently used to see if the cache entry really 
indicates a cached resource (i.e. more than 0 triples) but can also be useful 
metadata in other cases


Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/27338784
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/27338784
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/27338784

Branch: refs/heads/develop
Commit: 27338784cc74528bdda2e1b7f1696b69ce5a7c66
Parents: b3d6d78
Author: Sebastian Schaffert <[email protected]>
Authored: Thu May 23 14:22:53 2013 +0200
Committer: Sebastian Schaffert <[email protected]>
Committed: Thu May 23 14:22:53 2013 +0200

----------------------------------------------------------------------
 .../apache/marmotta/ldcache/model/CacheEntry.java  |   42 +++++++++++++++
 .../ldcache/backend/file/LDCachingFileBackend.java |   12 ++++-
 .../backend/file/util/FileBackendUtils.java        |    5 ++-
 .../backend/file/test/LDCacheBackendTest.java      |    2 +
 .../ldcache/backend/kiwi/LDCachingKiWiBackend.java |   18 ++++---
 .../LDCachingKiWiPersistenceConnection.java        |    3 +
 .../kiwi/persistence/h2/create_ldcache_tables.sql  |    1 +
 .../kiwi/persistence/h2/statements.properties      |   10 ++--
 .../persistence/mysql/create_ldcache_tables.sql    |    1 +
 .../kiwi/persistence/mysql/statements.properties   |   10 ++--
 .../persistence/pgsql/create_ldcache_tables.sql    |    1 +
 .../kiwi/persistence/pgsql/statements.properties   |   10 ++--
 .../backend/kiwi/test/LDCacheBackendTest.java      |    2 +
 .../backend/kiwi/test/LDCachePersistenceTest.java  |    4 ++
 .../apache/marmotta/ldcache/services/LDCache.java  |    5 ++-
 15 files changed, 99 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-api/src/main/java/org/apache/marmotta/ldcache/model/CacheEntry.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-api/src/main/java/org/apache/marmotta/ldcache/model/CacheEntry.java
 
b/libraries/ldcache/ldcache-api/src/main/java/org/apache/marmotta/ldcache/model/CacheEntry.java
index 61bef7a..4c7db25 100644
--- 
a/libraries/ldcache/ldcache-api/src/main/java/org/apache/marmotta/ldcache/model/CacheEntry.java
+++ 
b/libraries/ldcache/ldcache-api/src/main/java/org/apache/marmotta/ldcache/model/CacheEntry.java
@@ -52,41 +52,83 @@ public class CacheEntry {
     private Integer updateCount;
 
 
+    /**
+     * The number of triples that have been retrieved in the last cache 
refresh.
+     */
+    private Integer tripleCount;
+
 
     public CacheEntry() {
     }
 
 
+    /**
+     * The URI resource managed by this cache entry.
+     */
     public URI getResource() {
         return resource;
     }
 
+    /**
+     * The URI resource managed by this cache entry.
+     */
     public void setResource(URI resource) {
         this.resource = resource;
     }
 
+    /**
+     * The date when this resource has been retrieved the last time.
+     */
     public Date getLastRetrieved() {
         return lastRetrieved;
     }
 
+    /**
+     * The date when this resource has been retrieved the last time.
+     */
     public void setLastRetrieved(Date lastRetrieved) {
         this.lastRetrieved = new Date(lastRetrieved.getTime());
     }
 
+    /**
+     * The date when this resource needs to be retrieved again according to 
expiry configuration.
+     */
     public Date getExpiryDate() {
         return expiryDate;
     }
 
+    /**
+     * The date when this resource needs to be retrieved again according to 
expiry configuration.
+     */
     public void setExpiryDate(Date expiryDate) {
         this.expiryDate = new Date(expiryDate.getTime());
     }
 
+    /**
+     * The number of times this resource has already been updated.
+     */
     public Integer getUpdateCount() {
         return updateCount;
     }
 
+    /**
+     * The number of times this resource has already been updated.
+     */
     public void setUpdateCount(Integer updateCount) {
         this.updateCount = updateCount;
     }
 
+    /**
+     * The number of triples that have been retrieved in the last cache 
refresh.
+     */
+    public Integer getTripleCount() {
+        return tripleCount;
+    }
+
+    /**
+     * The number of triples that have been retrieved in the last cache 
refresh.
+     */
+    public void setTripleCount(Integer tripleCount) {
+        this.tripleCount = tripleCount;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/LDCachingFileBackend.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/LDCachingFileBackend.java
 
b/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/LDCachingFileBackend.java
index 396b0cd..bff143a 100644
--- 
a/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/LDCachingFileBackend.java
+++ 
b/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/LDCachingFileBackend.java
@@ -35,6 +35,7 @@ import 
org.apache.marmotta.ldcache.backend.file.repository.LDCachingFileReposito
 import org.apache.marmotta.ldcache.backend.file.util.FileBackendUtils;
 import org.apache.marmotta.ldcache.model.CacheEntry;
 import org.openrdf.model.ValueFactory;
+import org.openrdf.model.impl.ValueFactoryImpl;
 import org.openrdf.repository.Repository;
 import org.openrdf.repository.RepositoryException;
 import org.openrdf.repository.sail.SailRepository;
@@ -118,8 +119,15 @@ public class LDCachingFileBackend implements 
LDCachingBackend {
      */
     @Override
     public boolean isCached(String resource) throws RepositoryException {
-        File file = FileBackendUtils.getMetaFile(resource, storageDir);
-        return file.exists();
+        try {
+            final File dataFile = FileBackendUtils.getMetaFile(resource, 
storageDir);
+            if (!(dataFile.exists())) return false;
+            final CacheEntry ce = FileBackendUtils.readCacheEntry(dataFile, 
new ValueFactoryImpl());
+            //return ce != null && !FileBackendUtils.isExpired(ce) && 
ce.getTripleCount() > 0;
+            return ce != null && ce.getTripleCount() > 0;
+        } catch (IOException e) {
+            throw new RepositoryException(e);
+        }
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/util/FileBackendUtils.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/util/FileBackendUtils.java
 
b/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/util/FileBackendUtils.java
index ea90433..a24902c 100644
--- 
a/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/util/FileBackendUtils.java
+++ 
b/libraries/ldcache/ldcache-backend-file/src/main/java/org/apache/marmotta/ldcache/backend/file/util/FileBackendUtils.java
@@ -101,7 +101,8 @@ public class FileBackendUtils {
                                ce.setLastRetrieved(new 
Date(Long.parseLong(br.readLine().replaceFirst("#.*$", "").trim())));
                                ce.setExpiryDate(new 
Date(Long.parseLong(br.readLine().replaceFirst("#.*$", "").trim())));
                                
ce.setUpdateCount(Integer.parseInt(br.readLine().replaceFirst("#.*$", 
"").trim()));
-                               
+                
ce.setTripleCount(Integer.parseInt(br.readLine().replaceFirst("#.*$", 
"").trim()));
+
                                return ce;
                        } finally {
                                br.close();
@@ -120,6 +121,8 @@ public class FileBackendUtils {
                                ps.printf("%tQ # last retrieved: %<tF 
%<tT.%<tL%n", ce.getLastRetrieved());
                                ps.printf("%tQ # expires: %<tF %<tT.%<tL%n", 
ce.getExpiryDate());
                                ps.printf("%d # %<d updates%n", 
ce.getUpdateCount());
+                ps.printf("%d # %<d triples%n", ce.getTripleCount());
+                ps.flush();
                        } finally {
                                ps.close();
                        }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-file/src/test/java/org/apache/marmotta/ldcache/backend/file/test/LDCacheBackendTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-file/src/test/java/org/apache/marmotta/ldcache/backend/file/test/LDCacheBackendTest.java
 
b/libraries/ldcache/ldcache-backend-file/src/test/java/org/apache/marmotta/ldcache/backend/file/test/LDCacheBackendTest.java
index 9afdb4c..98f8bb4 100644
--- 
a/libraries/ldcache/ldcache-backend-file/src/test/java/org/apache/marmotta/ldcache/backend/file/test/LDCacheBackendTest.java
+++ 
b/libraries/ldcache/ldcache-backend-file/src/test/java/org/apache/marmotta/ldcache/backend/file/test/LDCacheBackendTest.java
@@ -160,6 +160,7 @@ public class LDCacheBackendTest {
             entry1.setLastRetrieved(new Date());
             entry1.setUpdateCount(1);
             entry1.setResource(subject1);
+            entry1.setTripleCount(1);
             con.addCacheEntry(subject1, entry1);
             con.commit();
 
@@ -174,6 +175,7 @@ public class LDCacheBackendTest {
             entry2.setLastRetrieved(new Date());
             entry2.setUpdateCount(1);
             entry2.setResource(subject2);
+            entry2.setTripleCount(1);
             con.addCacheEntry(subject2,entry2);
 
             con.commit();

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/LDCachingKiWiBackend.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/LDCachingKiWiBackend.java
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/LDCachingKiWiBackend.java
index 63ba51b..0d7870b 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/LDCachingKiWiBackend.java
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/LDCachingKiWiBackend.java
@@ -23,6 +23,7 @@ import org.apache.marmotta.kiwi.sail.KiWiStore;
 import org.apache.marmotta.ldcache.api.LDCachingBackend;
 import org.apache.marmotta.ldcache.api.LDCachingConnection;
 import 
org.apache.marmotta.ldcache.backend.kiwi.persistence.LDCachingKiWiPersistence;
+import 
org.apache.marmotta.ldcache.backend.kiwi.persistence.LDCachingKiWiPersistenceConnection;
 import 
org.apache.marmotta.ldcache.backend.kiwi.repository.LDCachingSailRepositoryConnection;
 import org.apache.marmotta.ldcache.backend.kiwi.sail.LDCachingKiWiSail;
 import 
org.apache.marmotta.ldcache.backend.kiwi.sail.LDCachingKiWiSailConnection;
@@ -186,14 +187,15 @@ public class LDCachingKiWiBackend implements 
LDCachingBackend {
     @Override
     public boolean isCached(String resource) throws RepositoryException {
         try {
-            final LDCachingKiWiSailConnection sailConnection = 
sail.getConnection();
-            sailConnection.begin();
-            boolean result = 
sailConnection.getCacheEntry(sailConnection.getValueFactory().createURI(resource))
 != null;
-            sailConnection.commit();
-            sailConnection.close();
-
-            return result;
-        } catch (SailException e) {
+            LDCachingKiWiPersistenceConnection con = 
persistence.getConnection();
+            try {
+                CacheEntry entry = con.getCacheEntry(resource);
+                return  entry != null && entry.getTripleCount() > 0;
+            } finally {
+                con.commit();
+                con.close();
+            }
+        } catch (SQLException e) {
             throw new RepositoryException(e);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/persistence/LDCachingKiWiPersistenceConnection.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/persistence/LDCachingKiWiPersistenceConnection.java
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/persistence/LDCachingKiWiPersistenceConnection.java
index aba5c2f..d0e8675 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/persistence/LDCachingKiWiPersistenceConnection.java
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/java/org/apache/marmotta/ldcache/backend/kiwi/persistence/LDCachingKiWiPersistenceConnection.java
@@ -85,6 +85,7 @@ public class LDCachingKiWiPersistenceConnection  {
         entry.setExpiryDate(new 
Date(row.getTimestamp("expires_at").getTime()));
         entry.setUpdateCount(row.getInt("update_count"));
         entry.setResource((URI) 
connection.loadNodeById(row.getLong("resource_id")));
+        entry.setTripleCount(row.getInt("triple_count"));
 
         entryIdCache.put(new Element(id,entry));
         entryResourceCache.put(new 
Element(entry.getResource().stringValue(),entry));
@@ -145,6 +146,7 @@ public class LDCachingKiWiPersistenceConnection  {
             kEntry.setLastRetrieved(entry.getLastRetrieved());
             kEntry.setUpdateCount(entry.getUpdateCount());
             kEntry.setResource(entry.getResource());
+            kEntry.setTripleCount(entry.getTripleCount());
         }
 
         if(! (entry.getResource() instanceof KiWiResource) || ((KiWiResource) 
entry.getResource()).getId() == null) {
@@ -159,6 +161,7 @@ public class LDCachingKiWiPersistenceConnection  {
         insertEntry.setTimestamp(3,new 
Timestamp(kEntry.getExpiryDate().getTime()));
         insertEntry.setLong(4,((KiWiNode)kEntry.getResource()).getId());
         insertEntry.setInt(5, kEntry.getUpdateCount());
+        insertEntry.setInt(6, kEntry.getTripleCount());
         insertEntry.executeUpdate();
 
         log.debug("persisted ld-cache entry with id {}", kEntry.getId());

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/create_ldcache_tables.sql
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/create_ldcache_tables.sql
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/create_ldcache_tables.sql
index 05a4b7c..08b2276 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/create_ldcache_tables.sql
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/create_ldcache_tables.sql
@@ -20,6 +20,7 @@ CREATE TABLE ldcache_entries (
   expires_at   timestamp  NOT NULL,
   resource_id  bigint     NOT NULL REFERENCES nodes(id),
   update_count int        NOT NULL DEFAULT 0,
+  triple_count int        NOT NULL DEFAULT 0,
   PRIMARY KEY(id)
 );
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/statements.properties
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/statements.properties
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/statements.properties
index 8abd8c1..e8af848 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/statements.properties
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/h2/statements.properties
@@ -19,13 +19,13 @@
 # get sequence numbers
 seq.ldcache           = SELECT nextval('seq_ldcache')
 
-load.entry_by_id      = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries WHERE 
id = ?
-load.entry_by_uri     = SELECT 
E.id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries E, 
nodes N WHERE e.resource_id = N.id AND N.ntype = 'uri' and N.svalue = ?
+load.entry_by_id      = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries WHERE id = ?
+load.entry_by_uri     = SELECT 
E.id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries E, nodes N WHERE e.resource_id = N.id AND N.ntype = 'uri' and 
N.svalue = ?
 
 # store ldcache entry information
-store.entry           = INSERT INTO ldcache_entries 
(id,retrieved_at,expires_at,resource_id,update_count) VALUES (?,?,?,?,?)
+store.entry           = INSERT INTO ldcache_entries 
(id,retrieved_at,expires_at,resource_id,update_count,triple_count) VALUES 
(?,?,?,?,?,?)
 delete.entry          = DELETE FROM ldcache_entries WHERE id = ?
 delete.entry_by_uri   = DELETE FROM ldcache_entries WHERE resource_id IN 
(SELECT id FROM nodes WHERE ntype='uri' AND svalue = ?)
 
-query.entries_expired = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries WHERE 
expires_at < now() ORDER BY retrieved_at ASC
-query.entries_all     = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries ORDER 
BY retrieved_at ASC
+query.entries_expired = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries WHERE expires_at < now() ORDER BY retrieved_at ASC
+query.entries_all     = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries ORDER BY retrieved_at ASC

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/create_ldcache_tables.sql
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/create_ldcache_tables.sql
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/create_ldcache_tables.sql
index c9d6e3b..b1717af 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/create_ldcache_tables.sql
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/create_ldcache_tables.sql
@@ -21,6 +21,7 @@ CREATE TABLE ldcache_entries (
   expires_at   timestamp  NOT NULL,
   resource_id  bigint     NOT NULL REFERENCES nodes(id),
   update_count int        NOT NULL DEFAULT 0,
+  triple_count int        NOT NULL DEFAULT 0,
   PRIMARY KEY(id)
 );
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/statements.properties
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/statements.properties
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/statements.properties
index 6a0ee54..06864e1 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/statements.properties
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/mysql/statements.properties
@@ -20,13 +20,13 @@
 seq.ldcache.prep         = UPDATE seq_ldcache SET id=LAST_INSERT_ID(id+1);
 seq.ldcache              = SELECT LAST_INSERT_ID();
 
-load.entry_by_id      = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries WHERE 
id = ?
-load.entry_by_uri     = SELECT 
E.id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries E, 
nodes N WHERE e.resource_id = N.id AND N.ntype = 'uri' and N.svalue = ?
+load.entry_by_id      = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries WHERE id = ?
+load.entry_by_uri     = SELECT 
E.id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries E, nodes N WHERE e.resource_id = N.id AND N.ntype = 'uri' and 
N.svalue = ?
 
 # store ldcache entry information
-store.entry           = INSERT INTO ldcache_entries 
(id,retrieved_at,expires_at,resource_id,update_count) VALUES (?,?,?,?,?)
+store.entry           = INSERT INTO ldcache_entries 
(id,retrieved_at,expires_at,resource_id,update_count,triple_count) VALUES 
(?,?,?,?,?,?)
 delete.entry          = DELETE FROM ldcache_entries WHERE id = ?
 delete.entry_by_uri   = DELETE FROM ldcache_entries WHERE resource_id IN 
(SELECT id FROM nodes WHERE ntype='uri' AND svalue = ?)
 
-query.entries_expired = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries WHERE 
expires_at < now() ORDER BY retrieved_at ASC
-query.entries_all     = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries ORDER 
BY retrieved_at ASC
+query.entries_expired = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries WHERE expires_at < now() ORDER BY retrieved_at ASC
+query.entries_all     = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries ORDER BY retrieved_at ASC

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_ldcache_tables.sql
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_ldcache_tables.sql
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_ldcache_tables.sql
index 05a4b7c..08b2276 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_ldcache_tables.sql
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/create_ldcache_tables.sql
@@ -20,6 +20,7 @@ CREATE TABLE ldcache_entries (
   expires_at   timestamp  NOT NULL,
   resource_id  bigint     NOT NULL REFERENCES nodes(id),
   update_count int        NOT NULL DEFAULT 0,
+  triple_count int        NOT NULL DEFAULT 0,
   PRIMARY KEY(id)
 );
 

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/statements.properties
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/statements.properties
 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/statements.properties
index 8abd8c1..e8af848 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/statements.properties
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/main/resources/org/apache/marmotta/kiwi/persistence/pgsql/statements.properties
@@ -19,13 +19,13 @@
 # get sequence numbers
 seq.ldcache           = SELECT nextval('seq_ldcache')
 
-load.entry_by_id      = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries WHERE 
id = ?
-load.entry_by_uri     = SELECT 
E.id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries E, 
nodes N WHERE e.resource_id = N.id AND N.ntype = 'uri' and N.svalue = ?
+load.entry_by_id      = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries WHERE id = ?
+load.entry_by_uri     = SELECT 
E.id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries E, nodes N WHERE e.resource_id = N.id AND N.ntype = 'uri' and 
N.svalue = ?
 
 # store ldcache entry information
-store.entry           = INSERT INTO ldcache_entries 
(id,retrieved_at,expires_at,resource_id,update_count) VALUES (?,?,?,?,?)
+store.entry           = INSERT INTO ldcache_entries 
(id,retrieved_at,expires_at,resource_id,update_count,triple_count) VALUES 
(?,?,?,?,?,?)
 delete.entry          = DELETE FROM ldcache_entries WHERE id = ?
 delete.entry_by_uri   = DELETE FROM ldcache_entries WHERE resource_id IN 
(SELECT id FROM nodes WHERE ntype='uri' AND svalue = ?)
 
-query.entries_expired = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries WHERE 
expires_at < now() ORDER BY retrieved_at ASC
-query.entries_all     = SELECT 
id,retrieved_at,expires_at,resource_id,update_count FROM ldcache_entries ORDER 
BY retrieved_at ASC
+query.entries_expired = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries WHERE expires_at < now() ORDER BY retrieved_at ASC
+query.entries_all     = SELECT 
id,retrieved_at,expires_at,resource_id,update_count,triple_count FROM 
ldcache_entries ORDER BY retrieved_at ASC

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCacheBackendTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCacheBackendTest.java
 
b/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCacheBackendTest.java
index f0c6af5..c176841 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCacheBackendTest.java
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCacheBackendTest.java
@@ -249,6 +249,7 @@ public class LDCacheBackendTest {
             entry1.setLastRetrieved(new Date());
             entry1.setUpdateCount(1);
             entry1.setResource(subject1);
+            entry1.setTripleCount(1);
             con.addCacheEntry(subject1, entry1);
             con.commit();
 
@@ -263,6 +264,7 @@ public class LDCacheBackendTest {
             entry2.setLastRetrieved(new Date());
             entry2.setUpdateCount(1);
             entry2.setResource(subject2);
+            entry2.setTripleCount(1);
             con.addCacheEntry(subject2,entry2);
 
             con.commit();

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCachePersistenceTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCachePersistenceTest.java
 
b/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCachePersistenceTest.java
index c25f166..27cf34c 100644
--- 
a/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCachePersistenceTest.java
+++ 
b/libraries/ldcache/ldcache-backend-kiwi/src/test/java/org/apache/marmotta/ldcache/backend/kiwi/test/LDCachePersistenceTest.java
@@ -193,6 +193,7 @@ public class LDCachePersistenceTest {
             entry1.setLastRetrieved(new Date());
             entry1.setUpdateCount(1);
             entry1.setResource(subject1);
+            entry1.setTripleCount(1);
             connection.storeCacheEntry(entry1);
 
             connection.commit();
@@ -205,6 +206,7 @@ public class LDCachePersistenceTest {
             entry2.setLastRetrieved(new Date());
             entry2.setUpdateCount(1);
             entry2.setResource(subject2);
+            entry2.setTripleCount(1);
             connection.storeCacheEntry(entry2);
 
             connection.commit();
@@ -252,6 +254,7 @@ public class LDCachePersistenceTest {
             entry1.setLastRetrieved(new Date());
             entry1.setUpdateCount(1);
             entry1.setResource(subject1);
+            entry1.setTripleCount(1);
             connection.storeCacheEntry(entry1);
 
             KiWiCacheEntry entry2 = new KiWiCacheEntry();
@@ -259,6 +262,7 @@ public class LDCachePersistenceTest {
             entry2.setLastRetrieved(new Date());
             entry2.setUpdateCount(1);
             entry2.setResource(subject2);
+            entry2.setTripleCount(1);
             connection.storeCacheEntry(entry2);
 
             connection.commit();

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/27338784/libraries/ldcache/ldcache-core/src/main/java/org/apache/marmotta/ldcache/services/LDCache.java
----------------------------------------------------------------------
diff --git 
a/libraries/ldcache/ldcache-core/src/main/java/org/apache/marmotta/ldcache/services/LDCache.java
 
b/libraries/ldcache/ldcache-core/src/main/java/org/apache/marmotta/ldcache/services/LDCache.java
index 8d78aa6..4c5a894 100644
--- 
a/libraries/ldcache/ldcache-core/src/main/java/org/apache/marmotta/ldcache/services/LDCache.java
+++ 
b/libraries/ldcache/ldcache-core/src/main/java/org/apache/marmotta/ldcache/services/LDCache.java
@@ -250,7 +250,7 @@ public class LDCache implements LDCachingService {
 
                         cacheConnection1.remove(subject, null, null);
 
-
+                        int count = 0;
                         RepositoryResult<Statement> triples = 
respConnection.getStatements(null,null,null,true);
                         while(triples.hasNext()) {
                             Statement triple = triples.next();
@@ -259,6 +259,7 @@ public class LDCache implements LDCachingService {
                             } catch (RuntimeException ex) {
                                 log.warn("not adding triple {}: an exception 
occurred ({})",triple,ex.getMessage());
                             }
+                            count++;
                         }
                         triples.close();
                         respConnection.close();
@@ -272,6 +273,7 @@ public class LDCache implements LDCachingService {
                         } else {
                             newEntry.setUpdateCount(1);
                         }
+                        newEntry.setTripleCount(count);
 
                         cacheConnection1.removeCacheEntry(resource);
                         cacheConnection1.addCacheEntry(resource, newEntry);
@@ -295,6 +297,7 @@ public class LDCache implements LDCachingService {
                 } else {
                     newEntry.setUpdateCount(1);
                 }
+                newEntry.setTripleCount(0);
 
                 LDCachingConnection cacheConnection2 = 
backend.getCacheConnection(resource.stringValue());
                 cacheConnection2.begin();

Reply via email to