From: <tho...@us...> - 2010-10-13 19:39:56
|
Revision: 3791 http://bigdata.svn.sourceforge.net/bigdata/?rev=3791&view=rev Author: thompsonbry Date: 2010-10-13 19:39:49 +0000 (Wed, 13 Oct 2010) Log Message: ----------- 1. Added toString() to DelegateIndexManager to report the DataService UUID in log messages. 2. Added putIfAbsent() pattern to FederatedQueryEngine's proxy cache. 3. Added some log messages to FederatedQueryEngine and FederatedRunningQuery. They are at trace and have been commmented out now that I have found the source problem. 3. Added some logging and a query optimization to Algorithm_NestedLocatorScan. 4. Modified Bundle to pass in the asBound predicate. 5. Bug fix to MapBindingSetsOverShards. This was the root cause of the failure with 2 data services. The code was using the predicate before the binding set had been applied to decide the shard against which the next join would occur. In fact, it needed to use the asBound version of the predicate for that purpose. Note: While this fixes the problem, we do not yet have a unit test which detects the error. 6. Moved the sort of the Bundles out of MapBindingSetsOverShards. This can be done by the individual algorithm implementations. 7. Moved rangeCheck() out of AbstractBTreeTupleCursor into BytesUtil so it can be reused by MapBindingSetsOverShards (it was used to optimize Algorithm_NestedLocatorScan by deciding when a predicate lies entirely within a given shard). 8. Restored shutdown of various things to BigdataFederationSparqlTest and SPARQLQueryTest. This issue was a red-herring. The actual problem was in MapBindingSetsOverShards. 9. Moved the RELAY_DELAY option into the properties NV[] (it was being set on the command line using -D but the code did not check System. getProperties() for a default so that value was being ignored). With this change set, I am getting 229 out of 230 tests to pass against two data services. "Basic - List 4" is the one test which is failing on repeat trials. Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/DelegateIndexManager.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedQueryEngine.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedRunningQuery.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Algorithm_NestedLocatorScan.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Bundle.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/MapBindingSetsOverShardsBuffer.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/AbstractBTreeTupleCursor.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/BytesUtil.java branches/QUADS_QUERY_BRANCH/bigdata/src/resources/logging/log4j.properties branches/QUADS_QUERY_BRANCH/bigdata-perf/lubm/build.properties branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataFederationSparqlTest.java branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/org/openrdf/query/parser/sparql/SPARQLQueryTest.java branches/QUADS_QUERY_BRANCH/src/resources/config/bigdataStandalone.config Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/DelegateIndexManager.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/DelegateIndexManager.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/DelegateIndexManager.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -129,4 +129,11 @@ } + public String toString() { + + return super.toString() + "{dataServiceUUID=" + + dataService.getServiceUUID() + "}"; + + } + } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedQueryEngine.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedQueryEngine.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedQueryEngine.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -540,8 +540,14 @@ */ protected IQueryPeer getQueryPeer(final UUID serviceUUID) { + if (serviceUUID == null) + throw new IllegalArgumentException(); + IQueryPeer proxy = proxyMap.get(serviceUUID); +// if(log.isTraceEnabled()) log.trace("serviceUUID=" + serviceUUID +// + (proxy != null ? "cached=" + proxy : " not cached.")); + if (proxy == null) { final IDataService dataService = getFederation().getDataService( @@ -556,8 +562,15 @@ throw new RuntimeException(e); } - proxyMap.put(serviceUUID, proxy); + IQueryPeer tmp = proxyMap.putIfAbsent(serviceUUID, proxy); + + if (tmp != null) { + proxy = tmp; + } +// if(log.isTraceEnabled()) log.trace("serviceUUID=" + serviceUUID + ", addedToCache=" +// + (tmp == null) + ", proxy=" + proxy); + } return proxy; Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedRunningQuery.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedRunningQuery.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedRunningQuery.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -347,14 +347,21 @@ */ queryPeer = getQueryEngine(); +// if(log.isTraceEnabled()) log.trace("Target is self: "+serviceUUID); + } else if (serviceUUID.equals(queryControllerUUID)) { // The target is the query controller. queryPeer = getQueryController(); - + +// if(log.isTraceEnabled()) log.trace("Target is controller: "+serviceUUID); + } else { // The target is some data service. + +// if(log.isTraceEnabled()) log.trace("Target is peer: "+serviceUUID); + queryPeer = getQueryEngine().getQueryPeer(serviceUUID); } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Algorithm_NestedLocatorScan.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Algorithm_NestedLocatorScan.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Algorithm_NestedLocatorScan.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -1,10 +1,12 @@ package com.bigdata.bop.fed.shards; +import java.util.Arrays; import java.util.Iterator; import org.apache.log4j.Logger; import com.bigdata.bop.IBindingSet; +import com.bigdata.btree.BytesUtil; import com.bigdata.mdi.IMetadataIndex; import com.bigdata.mdi.PartitionLocator; import com.bigdata.relation.accesspath.IBuffer; @@ -31,8 +33,48 @@ public void mapOverShards(final Bundle<F>[] bundles) { - for (Bundle<F> bundle : bundles) { + /* + * Sort the binding sets in the chunk by the fromKey associated with + * each asBound predicate. + */ + Arrays.sort(bundles); + // The most recently discovered locator. + PartitionLocator current = null; + +// // The list of binding sets which are bound for the current locator. +// List<IBindingSet> list = new LinkedList<IBindingSet>(); + + final Iterator<Bundle<F>> bitr = Arrays.asList(bundles).iterator(); + + while(bitr.hasNext()) { + + final Bundle<F> bundle = bitr.next(); + + if (current != null + && BytesUtil.rangeCheck(bundle.fromKey, current + .getLeftSeparatorKey(), current + .getRightSeparatorKey()) + && BytesUtil.rangeCheck(bundle.toKey, current + .getLeftSeparatorKey(), current + .getRightSeparatorKey())) { + + /* + * Optimization when the bundle fits inside of the last index + * partition scanned (this optimization is only possible when + * the asBound predicate will be mapped onto a single index + * partition, but this is a very common case since we try to + * choose selective indices for access paths). + */ + + final IBuffer<IBindingSet[]> sink = op.getBuffer(current); + + sink.add(new IBindingSet[] { bundle.bindingSet }); + + continue; + + } + /* * Locator scan for the index partitions for that predicate as * bound. @@ -42,11 +84,12 @@ while (itr.hasNext()) { - final PartitionLocator locator = itr.next(); + final PartitionLocator locator = current = itr.next(); if (log.isTraceEnabled()) - log.trace("adding bindingSet to buffer" + ": partitionId=" - + locator.getPartitionId() + "dataService=" + log.trace("adding bindingSet to buffer" + ": asBound=" + + bundle.asBound + ", partitionId=" + + locator.getPartitionId() + ", dataService=" + locator.getDataServiceUUID() + ", bindingSet=" + bundle.bindingSet); @@ -57,6 +100,7 @@ } } + } } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Bundle.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Bundle.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/Bundle.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -30,12 +30,12 @@ /** The toKey generated from that asBound predicate. */ final byte[] toKey; - public Bundle(final IKeyBuilder keyBuilder, final IPredicate<F> pred, + public Bundle(final IKeyBuilder keyBuilder, final IPredicate<F> asBound, final IKeyOrder<F> keyOrder, final IBindingSet bindingSet) { this.bindingSet = bindingSet; - this.asBound = pred.asBound(bindingSet); + this.asBound = asBound; this.keyOrder = keyOrder; Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/MapBindingSetsOverShardsBuffer.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/MapBindingSetsOverShardsBuffer.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/shards/MapBindingSetsOverShardsBuffer.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -292,27 +292,37 @@ @SuppressWarnings("unchecked") final Bundle<F>[] bundles = new Bundle[chunk.length]; - /* - * Create the asBound version of the predicate and the associated - * fromKey for each bindingSet in the chunk. - */ - for (int i = 0; i < chunk.length; i++) { + /* + * Create the asBound version of the predicate and the associated + * fromKey for each bindingSet in the chunk. + */ + for (int i = 0; i < chunk.length; i++) { - final IKeyOrder<F> keyOrder = relation.getKeyOrder(pred); + // an intermediate solution. + final IBindingSet bindingSet = chunk[i]; - final IKeyBuilder keyBuilder = relation.getIndex(keyOrder) - .getIndexMetadata().getKeyBuilder(); - - bundles[i] = new Bundle<F>(keyBuilder, pred, keyOrder, chunk[i]); - - } + // the asBound version of the predicate. + final IPredicate<F> asBound = pred.asBound(bindingSet); - /* - * Sort the binding sets in the chunk by the fromKey associated with - * each asBound predicate. - */ - Arrays.sort(bundles); + // the index which will be used for that asBound predicate. + final IKeyOrder<F> keyOrder = relation.getKeyOrder(asBound); + // the key builder associated with that index. + final IKeyBuilder keyBuilder = relation.getIndex(keyOrder) + .getIndexMetadata().getKeyBuilder(); + + // save the bundle for processing. + bundles[i] = new Bundle<F>(keyBuilder, asBound, keyOrder, + bindingSet); + + } + +// /* +// * Sort the binding sets in the chunk by the fromKey associated with +// * each asBound predicate. [Sort is moved into the implementation.] +// */ +// Arrays.sort(bundles); + /* * Map the bundles over the shards. */ Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/AbstractBTreeTupleCursor.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/AbstractBTreeTupleCursor.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/AbstractBTreeTupleCursor.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -254,50 +254,52 @@ */ final protected boolean rangeCheck(final byte[] key) { - if (fromKey == null && toKey == null) { - - // no range constraint. - return true; - - } - - if (fromKey != null) { - - if (BytesUtil.compareBytes(key, fromKey) < 0) { - - if (DEBUG) { - - log.debug("key=" + BytesUtil.toString(key) + " LT fromKey" - + BytesUtil.toString(fromKey)); - - } - - // key is LT then the optional inclusive lower bound. - return false; - - } - - } - - if (toKey != null) { - - if (BytesUtil.compareBytes(key, toKey) >= 0) { - - if (DEBUG) { - - log.debug("key=" + BytesUtil.toString(key) + " GTE toKey" - + BytesUtil.toString(toKey)); - - } - - // key is GTE the optional exclusive upper bound - return false; - - } - - } - - return true; + return BytesUtil.rangeCheck(key, fromKey, toKey); + +// if (fromKey == null && toKey == null) { +// +// // no range constraint. +// return true; +// +// } +// +// if (fromKey != null) { +// +// if (BytesUtil.compareBytes(key, fromKey) < 0) { +// +// if (DEBUG) { +// +// log.debug("key=" + BytesUtil.toString(key) + " LT fromKey" +// + BytesUtil.toString(fromKey)); +// +// } +// +// // key is LT then the optional inclusive lower bound. +// return false; +// +// } +// +// } +// +// if (toKey != null) { +// +// if (BytesUtil.compareBytes(key, toKey) >= 0) { +// +// if (DEBUG) { +// +// log.debug("key=" + BytesUtil.toString(key) + " GTE toKey" +// + BytesUtil.toString(toKey)); +// +// } +// +// // key is GTE the optional exclusive upper bound +// return false; +// +// } +// +// } +// +// return true; } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/BytesUtil.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/BytesUtil.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/btree/BytesUtil.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -740,6 +740,72 @@ } + /** + * Return <code>true</code> if the <i>key</i> lies inside of the optional + * half-open range constraint. + * + * @param key + * The key. + * @param fromKey + * The inclusive lower bound -or- <code>null</code> if there is + * no lower bound. + * @param toKey + * The exclusive upper bound -or- <code>null</code> if there is + * no upper bound. + * + * @return <code>true</code> unless the <i>key</i> is LT [fromKey] or GTE + * [toKey]. + */ + final static public boolean rangeCheck(final byte[] key, + final byte[] fromKey, final byte[] toKey) { + + if (fromKey == null && toKey == null) { + + // no range constraint. + return true; + + } + + if (fromKey != null) { + + if (BytesUtil.compareBytes(key, fromKey) < 0) { + + if (log.isDebugEnabled()) { + + log.debug("key=" + BytesUtil.toString(key) + " LT fromKey" + + BytesUtil.toString(fromKey)); + + } + + // key is LT then the optional inclusive lower bound. + return false; + + } + + } + + if (toKey != null) { + + if (BytesUtil.compareBytes(key, toKey) >= 0) { + + if (log.isDebugEnabled()) { + + log.debug("key=" + BytesUtil.toString(key) + " GTE toKey" + + BytesUtil.toString(toKey)); + + } + + // key is GTE the optional exclusive upper bound + return false; + + } + + } + + return true; + + } + /** * This method forces the load of the JNI library and tries to execute the * JNI methods. Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/resources/logging/log4j.properties =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/resources/logging/log4j.properties 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/resources/logging/log4j.properties 2010-10-13 19:39:49 UTC (rev 3791) @@ -89,7 +89,7 @@ #log4j.logger.com.bigdata.service=ALL -log4j.logger.com.bigdata.util.concurrent.Haltable=ALL +#log4j.logger.com.bigdata.util.concurrent.Haltable=ALL #log4j.logger.com.bigdata.bop=ALL #log4j.logger.com.bigdata.bop.join.PipelineJoin=ALL @@ -97,7 +97,7 @@ #log4j.logger.com.bigdata.bop.engine=ALL #log4j.logger.com.bigdata.bop.engine.QueryEngine=ALL #log4j.logger.com.bigdata.bop.engine.RunningQuery=ALL -log4j.logger.com.bigdata.bop.engine.RunState=INFO +#log4j.logger.com.bigdata.bop.engine.RunState=INFO #log4j.logger.com.bigdata.bop.engine.RunningQuery$ChunkTask=ALL #log4j.logger.com.bigdata.bop.fed.FederatedQueryEngine=ALL #log4j.logger.com.bigdata.bop.fed.FederatedRunningQuery=ALL Modified: branches/QUADS_QUERY_BRANCH/bigdata-perf/lubm/build.properties =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-perf/lubm/build.properties 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata-perf/lubm/build.properties 2010-10-13 19:39:49 UTC (rev 3791) @@ -48,9 +48,9 @@ # Laptop benchmark data directory. #lubm.baseDir=d:/bigdata-perf-analysis/lubm/U${lubm.univ} # Server benchmark directory. -#lubm.baseDir=/nas/data/lubm/U${lubm.univ} +lubm.baseDir=/nas/data/lubm/U${lubm.univ} # Windows Server 2008 benchmark data directory. -lubm.baseDir=c:/usr/local/data/lubm/lubm_${lubm.univ} +#lubm.baseDir=c:/usr/local/data/lubm/lubm_${lubm.univ} ## Where to put the XML results files. #bsbm.resultsDir=${bsbm.baseDir}/.. @@ -80,11 +80,11 @@ # The name of the file used for the journal. #lubm.journalFile=${lubm.baseDir}/bigdata-lubm.${journalMode}.jnl # Note: This is on the large volume. -#lubm.journalFile=/data/lubm/U${lubm.univ}/bigdata-lubm.${journalMode}.jnl +lubm.journalFile=/data/lubm/U${lubm.univ}/bigdata-lubm.${journalMode}.jnl # SSD. #lubm.journalFile=e:/data/lubm/U${lubm.univ}/bigdata-lubm.${journalMode}.jnl # SAS -lubm.journalFile=f:/data/lubm/U${lubm.univ}/bigdata-lubm.${journalMode}.jnl +#lubm.journalFile=f:/data/lubm/U${lubm.univ}/bigdata-lubm.${journalMode}.jnl # The database to test. lubm.configFile=${lubm.dir}/src/resources/config/config.kb.sparql Modified: branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataFederationSparqlTest.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataFederationSparqlTest.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataFederationSparqlTest.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -138,13 +138,13 @@ * test suite is done. Again, that should be Ok.) */ if (_ts != null) { -// _ts.destroy(); + _ts.destroy(); _ts = null; } -// if (_fed != null) { -// _fed.shutdownNow(); -// _fed = null; -// } + if (_fed != null) { + _fed.shutdownNow(); + _fed = null; + } } @Override protected Repository newRepository () @@ -188,7 +188,7 @@ return _fed ; } - private String getConfiguration () + static private String getConfiguration () throws Exception { String c = System.getProperty ( CONFIG_PROPERTY ) ; @@ -318,4 +318,62 @@ private ScaleOutTripleStore _ts = null ; private BigdataSail _sail = null; +// /** +// * Dumps the locators for an index of a relation. +// * +// * @param fed +// * @param namespace +// * The relation namespace. +// * @param timestamp +// * The timestamp of the view. +// * @param keyOrder +// * The index. +// */ +// private static void dumpMDI(AbstractScaleOutFederation<?> fed, +// final String namespace, final long timestamp, +// final IKeyOrder<?> keyOrder) { +// +// final String name = namespace + "." + keyOrder.getIndexName(); +// +// final Iterator<PartitionLocator> itr = fed +// .locatorScan(name, timestamp, new byte[] {}/* fromKey */, +// null/* toKey */, false/* reverseScan */); +// +// System.err.println("name=" + name + " @ " +// + TimestampUtility.toString(timestamp)); +// +// while (itr.hasNext()) { +// +// System.err.println(itr.next()); +// +// } +// +// } +// +// public static void main(String[] args) throws ConfigurationException, +// Exception { +// +// String namespace = "SPARQLTest_14e097f5-eba9-4ff8-a250-a5f9f19b9c66.spo"; +// +// long timestamp=1287001362979L; +// +// IKeyOrder<?> keyOrder = SPOKeyOrder.SPOC; +// +// JiniClient<Object> jc = new JiniClient<Object>( +// new String[] { getConfiguration() }); +// +// try { +// +// final JiniFederation<?> fed = jc.connect(); +// +// dumpMDI(fed, namespace, timestamp, keyOrder); +// +// } finally { +// +// jc.disconnect(true/* immediate */); +// +// } +// +// } + } Modified: branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/org/openrdf/query/parser/sparql/SPARQLQueryTest.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/org/openrdf/query/parser/sparql/SPARQLQueryTest.java 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/bigdata-sails/src/test/org/openrdf/query/parser/sparql/SPARQLQueryTest.java 2010-10-13 19:39:49 UTC (rev 3791) @@ -8,6 +8,7 @@ import info.aduna.io.IOUtil; import info.aduna.iteration.Iterations; import info.aduna.text.StringUtil; + import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -17,8 +18,10 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; + import junit.framework.TestCase; import junit.framework.TestSuite; + import org.openrdf.model.Resource; import org.openrdf.model.Statement; import org.openrdf.model.URI; @@ -61,8 +64,8 @@ import org.openrdf.sail.memory.MemoryStore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import com.bigdata.rdf.sail.BigdataSailQuery; -import com.bigdata.rdf.sail.BigdataSailRepository; public abstract class SPARQLQueryTest extends TestCase { @@ -295,7 +298,7 @@ } RepositoryConnection con = ((DatasetRepository)dataRep).getDelegate().getConnection(); - System.err.println(con.getClass()); +// System.err.println(con.getClass()); try { String queryString = readQueryString(); Query query = con.prepareQuery(QueryLanguage.SPARQL, queryString, queryFileURL); Modified: branches/QUADS_QUERY_BRANCH/src/resources/config/bigdataStandalone.config =================================================================== --- branches/QUADS_QUERY_BRANCH/src/resources/config/bigdataStandalone.config 2010-10-13 19:12:52 UTC (rev 3790) +++ branches/QUADS_QUERY_BRANCH/src/resources/config/bigdataStandalone.config 2010-10-13 19:39:49 UTC (rev 3791) @@ -303,8 +303,6 @@ "-Djava.security.policy="+bigdata.policy, "-Djava.util.logging.config.file="+bigdata.logging, "-Dcom.bigdata.counters.linux.sysstat.path=@SYSSTAT_HOME@", - // Turn off periodic performance counter reporting. - "-Dcom.bigdata.service.IBigdataClient.reportDelay=0", //bigdata.profilerAgent, }; @@ -368,6 +366,13 @@ */ new NV(IBigdataClient.Options.CLIENT_MAX_STALE_LOCATOR_RETRIES,"1000"), + /* + * Turn off periodic performance counter reporting to reduce the memory + * demand on the LBS (performance counters are used for moves on a multi- + * machine cluster and provide detailed reporting on the bigdata internals). + */ + new NV(IBigdataClient.Options.REPORT_DELAY,"0"), + }; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |