Updated Branches: refs/heads/develop 92205ec47 -> c5cf84e71
improvements for MARMOTTA-388 Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/c5cf84e7 Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/c5cf84e7 Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/c5cf84e7 Branch: refs/heads/develop Commit: c5cf84e711e952292fbb4110309f647aa4e8771a Parents: 92205ec Author: Sebastian Schaffert <[email protected]> Authored: Wed Dec 18 10:26:59 2013 +0100 Committer: Sebastian Schaffert <[email protected]> Committed: Wed Dec 18 10:26:59 2013 +0100 ---------------------------------------------------------------------- .../marmotta/kiwi/caching/KiWiCacheManager.java | 87 +++++++++++--------- .../marmotta/kiwi/config/KiWiConfiguration.java | 56 +++++++++++++ .../kiwi/persistence/KiWiPersistence.java | 24 ++++-- .../apache/marmotta/kiwi/sail/KiWiStore.java | 5 ++ .../backend/kiwi/KiWiStoreProvider.java | 34 ++++++-- .../main/resources/config-defaults.properties | 6 ++ .../resources/config-descriptions.properties | 10 +++ .../core/logging/CacheLoggingModule.java | 2 +- .../core/services/cache/CachingServiceImpl.java | 23 +++--- .../src/main/resources/jgroups-marmotta.xml | 2 +- 10 files changed, 187 insertions(+), 62 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/caching/KiWiCacheManager.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/caching/KiWiCacheManager.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/caching/KiWiCacheManager.java index b68d7a9..400fa75 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/caching/KiWiCacheManager.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/caching/KiWiCacheManager.java @@ -26,9 +26,9 @@ import org.infinispan.configuration.global.GlobalConfiguration; import org.infinispan.configuration.global.GlobalConfigurationBuilder; import org.infinispan.distribution.ch.SyncConsistentHashFactory; import org.infinispan.eviction.EvictionStrategy; +import org.infinispan.lifecycle.ComponentStatus; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; -import org.infinispan.remoting.transport.Address; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,21 +62,30 @@ public class KiWiCacheManager { // default configuration: distributed cache, 100000 entries, 300 seconds expiration, 60 seconds idle private Configuration defaultConfiguration; - private boolean clustered; + private boolean clustered, embedded; + private KiWiConfiguration kiWiConfiguration; + + /** + * Create a new cache manager with its own automatically created Infinispan instance. + * + * @param config + */ public KiWiCacheManager(KiWiConfiguration config) { this.clustered = config.isClustered(); + this.kiWiConfiguration = config; if(clustered) { globalConfiguration = new GlobalConfigurationBuilder() .transport() .defaultTransport() - .clusterName(config.getName()) + .clusterName(config.getClusterName()) .machineId("instance-" + config.getDatacenterId()) .addProperty("configurationFile", "jgroups-kiwi.xml") .globalJmxStatistics() .jmxDomain("org.apache.marmotta.kiwi") + .allowDuplicateDomains(true) .build(); @@ -101,6 +110,7 @@ public class KiWiCacheManager { globalConfiguration = new GlobalConfigurationBuilder() .globalJmxStatistics() .jmxDomain("org.apache.marmotta.kiwi") + .allowDuplicateDomains(true) .build(); defaultConfiguration = new ConfigurationBuilder() @@ -118,12 +128,29 @@ public class KiWiCacheManager { cacheManager = new DefaultCacheManager(globalConfiguration, defaultConfiguration, true); - if(log.isInfoEnabled()) { - log.info("Members in Apache Marmotta KiWi cache cluster:"); - for(Address a : cacheManager.getMembers()) { - log.info(" - {}",a); - } - } + + log.info("initialised cache manager ({})", globalConfiguration.isClustered() ? "cluster name: "+globalConfiguration.transport().clusterName() : "single host"); + + this.embedded = true; + } + + /** + * Create a cache manager from an existing Infinispan cache manager. + * + * @param cacheManager + * @param kiWiConfiguration + */ + public KiWiCacheManager(EmbeddedCacheManager cacheManager, KiWiConfiguration kiWiConfiguration) { + this.cacheManager = cacheManager; + this.globalConfiguration = cacheManager.getCacheManagerConfiguration(); + this.defaultConfiguration = cacheManager.getDefaultCacheConfiguration(); + this.kiWiConfiguration = kiWiConfiguration; + + this.clustered = kiWiConfiguration.isClustered(); + + log.info("initialised cache manager ({})", globalConfiguration.isClustered() ? "cluster name: "+globalConfiguration.transport().clusterName() : "single host"); + + this.embedded = false; } /** @@ -154,7 +181,7 @@ public class KiWiCacheManager { if(!cacheManager.cacheExists(TRIPLE_CACHE)) { Configuration tripleConfiguration = new ConfigurationBuilder().read(defaultConfiguration) .eviction() - .maxEntries(100000) + .maxEntries(kiWiConfiguration.getTripleCacheSize()) .expiration() .lifespan(60, TimeUnit.SECONDS) .maxIdle(30, TimeUnit.SECONDS) @@ -166,28 +193,6 @@ public class KiWiCacheManager { /** - * Return the triple id -> triple cache from the cache manager. This cache is used for speeding up the - * construction of query results. - * - * @return - */ - public Cache getQueryCache() { - if(!cacheManager.cacheExists(TRIPLE_CACHE)) { - Configuration tripleConfiguration = new ConfigurationBuilder().read(defaultConfiguration) - .eviction() - .maxEntries(100000) - .expiration() - .lifespan(5, TimeUnit.MINUTES) - .maxIdle(60, TimeUnit.SECONDS) - .build(); - cacheManager.defineConfiguration(TRIPLE_CACHE, tripleConfiguration); - } - return cacheManager.getCache(TRIPLE_CACHE); - } - - - - /** * Return the uri -> KiWiUriResource cache from the cache manager. This cache is used when constructing new * KiWiUriResources to avoid a database lookup. * @@ -197,7 +202,7 @@ public class KiWiCacheManager { if(!cacheManager.cacheExists(URI_CACHE)) { Configuration uriConfiguration = new ConfigurationBuilder().read(defaultConfiguration) .eviction() - .maxEntries(50000) + .maxEntries(kiWiConfiguration.getUriCacheSize()) .build(); cacheManager.defineConfiguration(URI_CACHE, uriConfiguration); } @@ -215,7 +220,7 @@ public class KiWiCacheManager { if(!cacheManager.cacheExists(BNODE_CACHE)) { Configuration bnodeConfiguration = new ConfigurationBuilder().read(defaultConfiguration) .eviction() - .maxEntries(5000) + .maxEntries(kiWiConfiguration.getBNodeCacheSize()) .build(); cacheManager.defineConfiguration(BNODE_CACHE, bnodeConfiguration); } @@ -233,7 +238,7 @@ public class KiWiCacheManager { if(!cacheManager.cacheExists(LITERAL_CACHE)) { Configuration literalConfiguration = new ConfigurationBuilder().read(defaultConfiguration) .eviction() - .maxEntries(10000) + .maxEntries(kiWiConfiguration.getLiteralCacheSize()) .build(); cacheManager.defineConfiguration(LITERAL_CACHE, literalConfiguration); } @@ -249,7 +254,7 @@ public class KiWiCacheManager { if(!cacheManager.cacheExists(NAMESPACE_URI_CACHE)) { Configuration nsuriConfiguration = new ConfigurationBuilder().read(defaultConfiguration) .eviction() - .maxEntries(1000) + .maxEntries(kiWiConfiguration.getNamespaceCacheSize()) .expiration() .lifespan(1, TimeUnit.HOURS) .build(); @@ -266,7 +271,7 @@ public class KiWiCacheManager { if(!cacheManager.cacheExists(NAMESPACE_PREFIX_CACHE)) { Configuration nsprefixConfiguration = new ConfigurationBuilder().read(defaultConfiguration) .eviction() - .maxEntries(1000) + .maxEntries(kiWiConfiguration.getNamespaceCacheSize()) .expiration() .lifespan(1, TimeUnit.HOURS) .build(); @@ -359,6 +364,12 @@ public class KiWiCacheManager { * Shutdown this cache manager instance. Will shutdown the underlying EHCache cache manager. */ public void shutdown() { - cacheManager.stop(); + if(embedded && cacheManager.getStatus() == ComponentStatus.RUNNING) { + log.warn("shutting down cache manager ..."); + if(cacheManager.getTransport() != null) { + cacheManager.getTransport().stop(); + } + cacheManager.stop(); + } } } http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/config/KiWiConfiguration.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/config/KiWiConfiguration.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/config/KiWiConfiguration.java index 0a06aa0..b94fc9b 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/config/KiWiConfiguration.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/config/KiWiConfiguration.java @@ -97,6 +97,10 @@ public class KiWiConfiguration { private int literalCacheSize = 100000; + private int tripleCacheSize = 100000; + + private int namespaceCacheSize = 500; + private int datacenterId = 0; @@ -108,6 +112,9 @@ public class KiWiConfiguration { private boolean clustered = false; + private String clusterName = "Marmotta"; + + public KiWiConfiguration(String name, String jdbcUrl, String dbUser, String dbPassword, KiWiDialect dialect) { this(name, jdbcUrl, dbUser, dbPassword, dialect, null, null); } @@ -312,6 +319,36 @@ public class KiWiConfiguration { this.uriCacheSize = uriCacheSize; } + + /** + * The maximum size of the triple cache used for looking up triples by id + * @return + */ + public int getTripleCacheSize() { + return tripleCacheSize; + } + + /** + * The maximum size of the triple cache used for looking up triples by id + */ + public void setTripleCacheSize(int tripleCacheSize) { + this.tripleCacheSize = tripleCacheSize; + } + + /** + * The maximum size of the namespace cache used for looking up namespaces by prefix and uri + */ + public int getNamespaceCacheSize() { + return namespaceCacheSize; + } + + /** + * The maximum size of the namespace cache used for looking up namespaces by prefix and uri + */ + public void setNamespaceCacheSize(int namespaceCacheSize) { + this.namespaceCacheSize = namespaceCacheSize; + } + /** * The datacenter ID of this server for generating unique database IDs. If not given, a random value will * be generated. @@ -362,4 +399,23 @@ public class KiWiConfiguration { public void setClustered(boolean clustered) { this.clustered = clustered; } + + + /** + * Return the name of the cluster. This name is e.g. used by the Infinispan cache to identify other cache members + * in the same cluster, + * + * @return + */ + public String getClusterName() { + return clusterName; + } + + /** + * Change the name of the cluster. This name is e.g. used by the Infinispan cache to identify other cache members + * in the same cluster, + */ + public void setClusterName(String clusterName) { + this.clusterName = clusterName; + } } http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiPersistence.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiPersistence.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiPersistence.java index aa70ad0..6ca027b 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiPersistence.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiPersistence.java @@ -25,6 +25,7 @@ import org.apache.marmotta.kiwi.persistence.util.ScriptRunner; import org.apache.marmotta.kiwi.sail.KiWiValueFactory; import org.apache.tomcat.jdbc.pool.DataSource; import org.apache.tomcat.jdbc.pool.PoolProperties; +import org.infinispan.manager.EmbeddedCacheManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,10 +79,11 @@ public class KiWiPersistence { */ private boolean maintenance; - private boolean droppedDatabase = false; - private boolean initialized = false; + // in case the cache manager comes from outside, it is passed over here + private EmbeddedCacheManager infinispan; + @Deprecated public KiWiPersistence(String name, String jdbcUrl, String db_user, String db_password, KiWiDialect dialect) { this(new KiWiConfiguration(name,jdbcUrl,db_user,db_password,dialect)); @@ -92,11 +94,18 @@ public class KiWiPersistence { this.maintenance = false; } + public KiWiPersistence(KiWiConfiguration configuration, EmbeddedCacheManager infinispan) { + this.configuration = configuration; + this.maintenance = false; + this.infinispan = infinispan; + } + + public void initialise() { // init JDBC connection pool initConnectionPool(); - // init EHCache caches + // init Infinispan caches initCachePool(); // init garbage collector thread @@ -128,7 +137,11 @@ public class KiWiPersistence { private void initCachePool() { - cacheManager = new KiWiCacheManager(configuration); + if(infinispan != null) { + cacheManager = new KiWiCacheManager(infinispan,configuration); + } else { + cacheManager = new KiWiCacheManager(configuration); + } } @@ -320,8 +333,6 @@ public class KiWiPersistence { } catch(SQLException ex) { log.error("SQL exception while acquiring database connection"); } - - droppedDatabase = true; } /** @@ -437,6 +448,7 @@ public class KiWiPersistence { public void shutdown() { + log.info("shutting down KiWi persistence ..."); initialized = false; idGenerator.shutdown(this); http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java index 899b941..ea5fb79 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java @@ -20,6 +20,7 @@ package org.apache.marmotta.kiwi.sail; import org.apache.marmotta.kiwi.config.KiWiConfiguration; import org.apache.marmotta.kiwi.persistence.KiWiDialect; import org.apache.marmotta.kiwi.persistence.KiWiPersistence; +import org.infinispan.manager.EmbeddedCacheManager; import org.openrdf.model.ValueFactory; import org.openrdf.sail.SailException; import org.openrdf.sail.helpers.NotifyingSailBase; @@ -97,6 +98,10 @@ public class KiWiStore extends NotifyingSailBase { this(new KiWiPersistence(configuration), configuration.getDefaultContext(), configuration.getInferredContext()); } + public KiWiStore(KiWiConfiguration configuration, EmbeddedCacheManager infinispan) { + this(new KiWiPersistence(configuration, infinispan), configuration.getDefaultContext(), configuration.getInferredContext()); + } + /** * Do store-specific operations to initialize the store. The default * implementation of this method does nothing. http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/platform/backends/marmotta-backend-kiwi/src/main/java/org/apache/marmotta/platform/backend/kiwi/KiWiStoreProvider.java ---------------------------------------------------------------------- diff --git a/platform/backends/marmotta-backend-kiwi/src/main/java/org/apache/marmotta/platform/backend/kiwi/KiWiStoreProvider.java b/platform/backends/marmotta-backend-kiwi/src/main/java/org/apache/marmotta/platform/backend/kiwi/KiWiStoreProvider.java index 8609c9d..8a8f7a3 100644 --- a/platform/backends/marmotta-backend-kiwi/src/main/java/org/apache/marmotta/platform/backend/kiwi/KiWiStoreProvider.java +++ b/platform/backends/marmotta-backend-kiwi/src/main/java/org/apache/marmotta/platform/backend/kiwi/KiWiStoreProvider.java @@ -30,6 +30,7 @@ import org.apache.marmotta.platform.core.api.config.ConfigurationService; import org.apache.marmotta.platform.core.api.triplestore.SesameService; import org.apache.marmotta.platform.core.api.triplestore.StoreProvider; import org.apache.marmotta.platform.core.events.ConfigurationChangedEvent; +import org.infinispan.manager.EmbeddedCacheManager; import org.openrdf.repository.sail.SailRepository; import org.openrdf.sail.NotifyingSail; import org.openrdf.sail.Sail; @@ -64,6 +65,12 @@ public class KiWiStoreProvider implements StoreProvider { public static final String FULLTEXT_ENABLED = "database.fulltext.enabled"; public static final String FULLTEXT_LANGUAGES = "database.fulltext.languages"; public static final String DEBUG_SLOWQUERIES = "database.debug.slowqueries"; + public static final String CLUSTERING_ENABLED = "clustering.enabled"; + public static final String CACHING_LITERAL_SIZE = "caching.literal.size"; + public static final String CACHING_BNODE_SIZE = "caching.bnode.size"; + public static final String CACHING_URI_SIZE = "caching.uri.size"; + public static final String CACHING_TRIPLE_SIZE = "caching.triple.size"; + public static final String CLUSTERING_NAME = "clustering.name"; @Inject private Logger log; @@ -75,6 +82,9 @@ public class KiWiStoreProvider implements StoreProvider { private SesameService sesameService; + @Inject + private EmbeddedCacheManager cacheManager; + /** * Create the store provided by this SailProvider * @@ -104,7 +114,7 @@ public class KiWiStoreProvider implements StoreProvider { String dbUser = configurationService.getStringConfiguration("database.user"); String dbPass = configurationService.getStringConfiguration("database.password"); - KiWiConfiguration configuration = new KiWiConfiguration(configurationService.getStringConfiguration("clustering.name", "Marmotta") + " KiWi", jdbcUrl, dbUser, dbPass, dialect, configurationService.getDefaultContext(), configurationService.getInferredContext()); + KiWiConfiguration configuration = new KiWiConfiguration(configurationService.getStringConfiguration(CLUSTERING_NAME, "Marmotta") + " KiWi", jdbcUrl, dbUser, dbPass, dialect, configurationService.getDefaultContext(), configurationService.getInferredContext()); configuration.setQueryLoggingEnabled(configurationService.getBooleanConfiguration(DEBUG_SLOWQUERIES, false)); configuration.setTripleBatchCommit(configurationService.getBooleanConfiguration("database.triples.batchcommit", true)); configuration.setTripleBatchSize(configurationService.getIntConfiguration("database.triples.batchsize", 10000)); @@ -112,12 +122,21 @@ public class KiWiStoreProvider implements StoreProvider { configuration.setDatacenterId(configurationService.getIntConfiguration(DATACENTER_ID,0)); configuration.setFulltextEnabled(configurationService.getBooleanConfiguration(FULLTEXT_ENABLED, true)); configuration.setFulltextLanguages(configurationService.getListConfiguration(FULLTEXT_LANGUAGES, ImmutableList.of("en"))); - configuration.setClustered(configurationService.getBooleanConfiguration("clustering.enabled", false)); + + configuration.setClustered(configurationService.getBooleanConfiguration(CLUSTERING_ENABLED, false)); + configuration.setClusterName(configurationService.getStringConfiguration(CLUSTERING_NAME, "Marmotta")); + + configuration.setLiteralCacheSize(configurationService.getIntConfiguration(CACHING_LITERAL_SIZE, 100000)); + configuration.setBNodeCacheSize(configurationService.getIntConfiguration(CACHING_BNODE_SIZE, 10000)); + configuration.setUriCacheSize(configurationService.getIntConfiguration(CACHING_URI_SIZE, 500000)); + configuration.setTripleCacheSize(configurationService.getIntConfiguration(CACHING_TRIPLE_SIZE, 100000)); + + if("native".equalsIgnoreCase(configurationService.getStringConfiguration(SPARQL_STRATEGY))) { - return new KiWiSparqlSail(new KiWiStore(configuration)); + return new KiWiSparqlSail(new KiWiStore(configuration, cacheManager)); } else { - return new KiWiStore(configuration); + return new KiWiStore(configuration, cacheManager); } } @@ -159,7 +178,12 @@ public class KiWiStoreProvider implements StoreProvider { e.containsChangedKey(DATACENTER_ID) || e.containsChangedKey(FULLTEXT_ENABLED) || e.containsChangedKey(FULLTEXT_LANGUAGES) || - e.containsChangedKey(DEBUG_SLOWQUERIES) + e.containsChangedKey(DEBUG_SLOWQUERIES) || + e.containsChangedKey(CLUSTERING_ENABLED) || + e.containsChangedKey(CACHING_LITERAL_SIZE) || + e.containsChangedKey(CACHING_TRIPLE_SIZE) || + e.containsChangedKey(CACHING_URI_SIZE) || + e.containsChangedKey(CACHING_BNODE_SIZE) ) { log.info("KiWi backend configuration changed, re-initialising triple store"); http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/platform/backends/marmotta-backend-kiwi/src/main/resources/config-defaults.properties ---------------------------------------------------------------------- diff --git a/platform/backends/marmotta-backend-kiwi/src/main/resources/config-defaults.properties b/platform/backends/marmotta-backend-kiwi/src/main/resources/config-defaults.properties index 6ee6eb6..bc5c02c 100644 --- a/platform/backends/marmotta-backend-kiwi/src/main/resources/config-defaults.properties +++ b/platform/backends/marmotta-backend-kiwi/src/main/resources/config-defaults.properties @@ -69,5 +69,11 @@ database.mysql.driver = com.mysql.jdbc.Driver database.mysql.url = jdbc:mysql://localhost:3306/lmf?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true +caching.literal.size = 100000 +caching.uri.size = 500000 +caching.bnode.size = 10000 +caching.triple.size = 100000 + + http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/platform/backends/marmotta-backend-kiwi/src/main/resources/config-descriptions.properties ---------------------------------------------------------------------- diff --git a/platform/backends/marmotta-backend-kiwi/src/main/resources/config-descriptions.properties b/platform/backends/marmotta-backend-kiwi/src/main/resources/config-descriptions.properties index 49c53a2..556f661 100644 --- a/platform/backends/marmotta-backend-kiwi/src/main/resources/config-descriptions.properties +++ b/platform/backends/marmotta-backend-kiwi/src/main/resources/config-descriptions.properties @@ -53,3 +53,13 @@ database.fulltext.enabled.type = java.lang.Boolean database.fulltext.languages.description = list of languages supported by fulltext search; a fulltext index will be created for each language (PostgreSQL only) database.fulltext.languages.type = java.util.List + + +caching.literal.size.description = size of literal lookup cache +caching.literal.size.type = java.lang.Integer(10|0|*) +caching.uri.size.description = size of URI resource lookup cache +caching.uri.size.type = java.lang.Integer(10|0|*) +caching.bnode.size.description = size of BNode lookup cache +caching.bnode.size.type = java.lang.Integer(10|0|*) +caching.triple.size.description = size of triple lookup cache +caching.triple.size.type = java.lang.Integer(10|0|*) http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/logging/CacheLoggingModule.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/logging/CacheLoggingModule.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/logging/CacheLoggingModule.java index af6709c..0a57c49 100644 --- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/logging/CacheLoggingModule.java +++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/logging/CacheLoggingModule.java @@ -24,7 +24,7 @@ public class CacheLoggingModule extends BaseLoggingModule { */ @Override public Level getDefaultLevel() { - return Level.WARN; + return Level.INFO; } /** http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java index fdb7288..9c30862 100644 --- a/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java +++ b/platform/marmotta-core/src/main/java/org/apache/marmotta/platform/core/services/cache/CachingServiceImpl.java @@ -29,9 +29,9 @@ import org.infinispan.configuration.global.GlobalConfiguration; import org.infinispan.configuration.global.GlobalConfigurationBuilder; import org.infinispan.distribution.ch.SyncConsistentHashFactory; import org.infinispan.eviction.EvictionStrategy; +import org.infinispan.lifecycle.ComponentStatus; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; -import org.infinispan.remoting.transport.Address; import org.slf4j.Logger; import javax.annotation.PostConstruct; @@ -78,16 +78,17 @@ public class CachingServiceImpl implements CachingService { public void initialize() { boolean clustered = configurationService.getBooleanConfiguration("clustering.enabled", false); - log.info("Apache Marmotta Caching Service starting up ({}) ...", clustered ? "clustering" : "single host" ); + log.info("Apache Marmotta Caching Service starting up ({}) ...", clustered ? "cluster name: " + configurationService.getStringConfiguration("clustering.name", "Marmotta") : "single host" ); if(clustered) { globalConfiguration = new GlobalConfigurationBuilder() .transport() .defaultTransport() - .clusterName(configurationService.getStringConfiguration("clustering.name", "Marmotta") + " Platform") + .clusterName(configurationService.getStringConfiguration("clustering.name", "Marmotta")) .machineId(configurationService.getServerName()) .addProperty("configurationFile", "jgroups-marmotta.xml") .globalJmxStatistics() .jmxDomain("org.apache.marmotta.platform") + .allowDuplicateDomains(true) .build(); @@ -103,7 +104,7 @@ public class CachingServiceImpl implements CachingService { .consistentHashFactory(new SyncConsistentHashFactory()) .eviction() .strategy(EvictionStrategy.LIRS) - .maxEntries(1000) + .maxEntries(10000) .expiration() .lifespan(5, TimeUnit.MINUTES) .maxIdle(1, TimeUnit.MINUTES) @@ -112,6 +113,7 @@ public class CachingServiceImpl implements CachingService { globalConfiguration = new GlobalConfigurationBuilder() .globalJmxStatistics() .jmxDomain("org.apache.marmotta.platform") + .allowDuplicateDomains(true) .build(); defaultConfiguration = new ConfigurationBuilder() @@ -130,12 +132,7 @@ public class CachingServiceImpl implements CachingService { cacheManager = new DefaultCacheManager(globalConfiguration, defaultConfiguration, true); - if(log.isInfoEnabled()) { - log.info("Members in Apache Marmotta cache cluster:"); - for(Address a : cacheManager.getMembers()) { - log.info(" - {}",a); - } - } + log.info("initialised cache manager ({})", globalConfiguration.isClustered() ? "cluster name: "+globalConfiguration.transport().clusterName() : "single host"); } /** @@ -215,7 +212,11 @@ public class CachingServiceImpl implements CachingService { @PreDestroy public void destroy() { log.info("Apache Marmotta Caching Service shutting down ..."); - cacheManager.stop(); + if(cacheManager.getStatus() == ComponentStatus.RUNNING) { + log.info("- shutting down Infinispan cache manager ..."); + cacheManager.stop(); + log.info(" ... success!"); + } log.info("Apache Marmotta Caching Service shut down successfully."); } } http://git-wip-us.apache.org/repos/asf/marmotta/blob/c5cf84e7/platform/marmotta-core/src/main/resources/jgroups-marmotta.xml ---------------------------------------------------------------------- diff --git a/platform/marmotta-core/src/main/resources/jgroups-marmotta.xml b/platform/marmotta-core/src/main/resources/jgroups-marmotta.xml index 8529c45..fb9b7d3 100644 --- a/platform/marmotta-core/src/main/resources/jgroups-marmotta.xml +++ b/platform/marmotta-core/src/main/resources/jgroups-marmotta.xml @@ -20,7 +20,7 @@ xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.4.xsd"> <UDP mcast_addr="${jgroups.udp.mcast_addr:228.6.7.8}" - mcast_port="${jgroups.udp.mcast_port:46656}" + mcast_port="${jgroups.udp.mcast_port:46655}" tos="8" ucast_recv_buf_size="20m" ucast_send_buf_size="640k"
