From: <tho...@us...> - 2010-09-30 16:58:52
|
Revision: 3700 http://bigdata.svn.sourceforge.net/bigdata/?rev=3700&view=rev Author: thompsonbry Date: 2010-09-30 16:58:46 +0000 (Thu, 30 Sep 2010) Log Message: ----------- Modified the QueryEngine to have a concept of its RMI "proxy" and modified the FederatedQueryEngine to use a real RMI proxy for itself as the queryController field to be sent around with the query. Fixed build.xml. It was not staging out the ctc-striterators. Made R.KeyOrder Serializable. However, we still can not unit test the federated query engine because the test classes (R, KeyOrder) are not being packaged with the deployment.... Modified Paths: -------------- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/QueryEngine.java branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedQueryEngine.java branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/R.java branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/TestPredicateAccessPath.java branches/QUADS_QUERY_BRANCH/bigdata-jini/src/test/com/bigdata/bop/fed/jini/TestJiniFederatedQueryEngine.java branches/QUADS_QUERY_BRANCH/build.xml Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/QueryEngine.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/QueryEngine.java 2010-09-30 16:14:43 UTC (rev 3699) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/engine/QueryEngine.java 2010-09-30 16:58:46 UTC (rev 3700) @@ -271,6 +271,16 @@ } /** + * The RMI proxy for this {@link QueryEngine} when used as a query controller. + * The default implementation returns <i>this</i>. + */ + public IQueryClient getProxy() { + + return this; + + } + + /** * Return <code>true</code> iff running against an * {@link IBigdataFederation}. */ @@ -655,7 +665,7 @@ throw new IllegalArgumentException(); final RunningQuery runningQuery = newRunningQuery(this, queryId, - true/* controller */, this/* clientProxy */, query); + true/* controller */, getProxy()/*queryController*/, query); final long timeout = query.getProperty(BOp.Annotations.TIMEOUT, BOp.Annotations.DEFAULT_TIMEOUT); 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-09-30 16:14:43 UTC (rev 3699) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/fed/FederatedQueryEngine.java 2010-09-30 16:58:46 UTC (rev 3700) @@ -41,8 +41,8 @@ import org.apache.log4j.Logger; +import com.bigdata.bop.IBindingSet; import com.bigdata.bop.PipelineOp; -import com.bigdata.bop.IBindingSet; import com.bigdata.bop.engine.IChunkMessage; import com.bigdata.bop.engine.IQueryClient; import com.bigdata.bop.engine.IQueryDecl; @@ -55,6 +55,7 @@ import com.bigdata.service.IDataService; import com.bigdata.service.ManagedResourceService; import com.bigdata.service.ResourceService; +import com.bigdata.service.jini.JiniFederation; import com.bigdata.util.InnerCause; /** @@ -91,6 +92,11 @@ private final ManagedResourceService resourceService; /** + * The proxy for this query engine when used as a query controller. + */ + private final IQueryClient clientProxy; + + /** * A queue of {@link IChunkMessage}s which needs to have their data * materialized so an operator can consume those data on this node. */ @@ -126,7 +132,19 @@ } + /** + * Overridden to return an RMI proxy for this {@link FederatedQueryEngine}. + * <p> + * {@inheritDoc} + */ @Override + public IQueryClient getProxy() { + + return clientProxy; + + } + + @Override final public boolean isScaleOut() { return true; @@ -196,6 +214,9 @@ this.resourceService = resourceService; + // the proxy for this query engine when used as a query controller. + this.clientProxy = (IQueryClient) ((JiniFederation<?>)fed).getProxy(this, false/*enableDGC*/); + } /** @@ -475,7 +496,7 @@ final PipelineOp query) { return new FederatedRunningQuery(this, queryId, controller, - clientProxy, query); + this.clientProxy, query); } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/R.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/R.java 2010-09-30 16:14:43 UTC (rev 3699) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/R.java 2010-09-30 16:58:46 UTC (rev 3700) @@ -27,6 +27,7 @@ package com.bigdata.bop.ap; +import java.io.Serializable; import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; @@ -64,9 +65,11 @@ /** * Metadata about the index orders for this relation. */ - private static class KeyOrder extends AbstractKeyOrder<E> { + public static class KeyOrder extends AbstractKeyOrder<E> implements Serializable { - public Comparator<E> getComparator() { + private static final long serialVersionUID = 1L; + + public Comparator<E> getComparator() { return new EComparator(); } Modified: branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/TestPredicateAccessPath.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/TestPredicateAccessPath.java 2010-09-30 16:14:43 UTC (rev 3699) +++ branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/ap/TestPredicateAccessPath.java 2010-09-30 16:58:46 UTC (rev 3700) @@ -48,6 +48,7 @@ import com.bigdata.bop.engine.BOpStats; import com.bigdata.bop.engine.MockRunningQuery; import com.bigdata.btree.ITuple; +import com.bigdata.io.SerializerUtil; import com.bigdata.journal.BufferMode; import com.bigdata.journal.ITx; import com.bigdata.journal.Journal; @@ -164,6 +165,12 @@ } + public void test_keyOrderSerializable() { + + SerializerUtil.serialize(R.primaryKeyOrder); + + } + /** * Using a predicate with nothing bound, verify that we get the * right range count on the relation and that we read the correct elements Modified: branches/QUADS_QUERY_BRANCH/bigdata-jini/src/test/com/bigdata/bop/fed/jini/TestJiniFederatedQueryEngine.java =================================================================== --- branches/QUADS_QUERY_BRANCH/bigdata-jini/src/test/com/bigdata/bop/fed/jini/TestJiniFederatedQueryEngine.java 2010-09-30 16:14:43 UTC (rev 3699) +++ branches/QUADS_QUERY_BRANCH/bigdata-jini/src/test/com/bigdata/bop/fed/jini/TestJiniFederatedQueryEngine.java 2010-09-30 16:58:46 UTC (rev 3700) @@ -217,8 +217,8 @@ super.setUp(); -// dataService0 = fed.getDataService(dataServices[0]); -// dataService1 = fed.getDataService(dataServices[1]); + dataService0 = fed.getDataService(dataServices[0]); + dataService1 = fed.getDataService(dataServices[1]); // { // // // @todo need to wait for the dataService to be running. Modified: branches/QUADS_QUERY_BRANCH/build.xml =================================================================== --- branches/QUADS_QUERY_BRANCH/build.xml 2010-09-30 16:14:43 UTC (rev 3699) +++ branches/QUADS_QUERY_BRANCH/build.xml 2010-09-30 16:58:46 UTC (rev 3700) @@ -1124,6 +1124,9 @@ <copy toDir="${build.dir}/bigdata-sails/src"> <fileset dir="${bigdata.dir}/bigdata-sails/src" /> </copy> + <copy toDir="${build.dir}/ctc-striterators/src"> + <fileset dir="${bigdata.dir}/ctc-striterators/src" /> + </copy> <copy toDir="${build.dir}/lgpl-utils/src"> <fileset dir="${bigdata.dir}/lgpl-utils/src" /> </copy> @@ -1194,6 +1197,7 @@ <include name="bigdata-jini/src/**" /> <include name="bigdata-rdf/src/**" /> <include name="bigdata-sails/src/**" /> + <include name="ctc-striterators/src/**" /> <include name="lgpl-utils/src/**" /> <include name="bigdata/lib/**" /> <include name="bigdata-jini/lib/**" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |