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();
