From: <btm...@us...> - 2010-07-23 17:58:42
|
Revision: 3273 http://bigdata.svn.sourceforge.net/bigdata/?rev=3273&view=rev Author: btmurphy Date: 2010-07-23 17:58:30 +0000 (Fri, 23 Jul 2010) Log Message: ----------- merge -r3235:HEAD(3267) ~/bigdata/trunk ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/bigdata/src/java/com/bigdata/util/config/NicUtil.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/LookupStarter.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/config/lookup.config branches/bugfix-btm/bigdata-jini/src/resources/config/bigdataStandaloneTesting.config branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testReggie.config branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testStartJini.config branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestNamedGraphs.java branches/bugfix-btm/build.properties branches/bugfix-btm/build.xml branches/bugfix-btm/src/resources/config/bigdataCluster.config branches/bugfix-btm/src/resources/config/jini/reggie.config branches/bugfix-btm/src/resources/config/jini/startAll.config branches/bugfix-btm/src/resources/config/logging.properties branches/bugfix-btm/src/resources/config/standalone/bigdataStandalone.config Property Changed: ---------------- branches/bugfix-btm/ branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql/ branches/bugfix-btm/dsi-utils/ branches/bugfix-btm/src/resources/bin/config/ Property changes on: branches/bugfix-btm ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3235 + /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3269 Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/util/config/NicUtil.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/util/config/NicUtil.java 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/util/config/NicUtil.java 2010-07-23 17:58:30 UTC (rev 3273) @@ -505,6 +505,141 @@ } /** + * Special-purpose convenience method that returns a + * <code>String</code> value representing the ip address of + * the current node; where the value that is returned is + * determined according to following criteria: + * <p> + * <ul> + * <li> If a non-<code>null</code> value is input for the + * <code>systemPropertyName</code> parameter, then + * this is viewed as a declaration by the caller that + * that the system property with that given value + * should take precedence over all other means of + * determining the desired ip address. As such, this + * method determines if a system property having the + * given has indeed been set and, if it has, returns + * the ip address of the nic having that name; or + * <code>null</code> if there is no nic with the + * desired name installed on the node. + * <li> If a non-<code>null</code> value is input for the + * <code>systemPropertyName</code> parameter, but + * no system property with that name has been set, + * and <code>true</code> has been passed in for + * the <code>fallbackOk</code> parameter, then this + * method will return the IPV4 based address of the + * first reachable nic that is found on the node. + * Upon failing to find such an address, if the + * <code>loopbackOk</code> parameter is also + * <code>true</code>, then this method will return + * the <i>loop back</i> address of the node; otherwise + * <code>null</code> is returned. + * <li> If <code>null</code> is input for the + * <code>systemPropertyName</code> parameter, but + * a non-<code>null</code> value is input for the + * <code>defaultNic</code> parameter, then this + * method returns the ip address of the nic having + * that name; or <code>null</code> if there is no + * nic with the desired default name installed on the + * node. + * <li> If <code>null</code> is input for both the + * <code>systemPropertyName</code> parameter and the + * <code>defaultNic</code> parameter, and if the + * <code>fallbackOk</code> parameter is <code>true</code>, + * then this method will return the IPV4 based address + * of the first reachable nic that is found on the node. + * Upon failing to find such an address, if the + * <code>loopbackOk</code> parameter is also + * <code>true</code>, then this method will return + * the <i>loop back</i> address of the node; otherwise + * <code>null</code> is returned. + * </ul> + * <p> + * This method can be called from within a configuration + * as well as from within program control. + * + * @param systemPropertyName <code>String</code> value containing + * the name of a system property whose + * value is the network interface name + * whose ip address should be returned. + * May be <code>null</code>. + * + * @param defaultNic <code>String</code> value containing + * the name of the network interface + * whose ip address should be returned + * if <code>null</code> is input for the + * <code>systemPropertyName</code> parameter. + * + * @param fallbackOk if <code>true</code>, then if either + * no system property is set having the + * name referenced by the + * <code>systemPropertyName</code> parameter, + * or if <code>null</code> is input for both + * the <code>systemPropertyName</code> + * parameter and the <code>defaultNic</code> + * parameter, return the IPV4 based address + * of the first reachable network interface + * that can be found on the node. + * + * @param loopbackOk if <code>true</code>, and if <code>true</code> + * is also input for the <code>fallbackOk</code> + * parameter, then if this method attempts, + * but fails, to find a valid IPV4 fallback + * address, then the node's <i>loop back</i> + * address is returned. + * + * @return a <code>String</code> representing an ip address associated + * with the current node; where the value that is returned is + * determined according to the criteria described above. + */ + public static String getIpAddress(String systemPropertyName, + String defaultNic, + boolean fallbackOk, + boolean loopbackOk) + throws SocketException, IOException + { + if(systemPropertyName != null) {//system property takes precedence + String nicName = System.getProperty(systemPropertyName); + boolean propSet = true; + if(nicName == null) { + propSet = false; + } else { + // handle ant script case where the system property + // may not have been set on the command line, but + // was still set to "${<systemPropertyName>}" using + // ant <sysproperty> tag + String rawProp = "${" + systemPropertyName + "}"; + if( rawProp.equals(nicName) ) propSet = false; + } + if(propSet) { + return getIpAddress(nicName, 0, loopbackOk); + } else {//desired system property not set, try fallback + if(fallbackOk) { + return getDefaultIpv4Address(loopbackOk); + } else { + return null; + } + } + } else {//no system property name provided, try default nic + if(defaultNic != null) { + return getIpAddress(defaultNic, 0, loopbackOk); + } else {//no default nic provided, try fallback + if(fallbackOk) { + return getDefaultIpv4Address(loopbackOk); + } else { + return null; + } + } + } + } + + public static String getIpAddress() + throws SocketException, IOException + { + return getIpAddress(null, null, true, true); + } + + /** * Examines each address associated with each network interface * card (nic) installed on the current node, and returns the * <code>String</code> value of the first such address that is @@ -617,73 +752,6 @@ } /** - * Special-purpose convenience method that will return the - * value of the system property named <code>default.nic</code> - * if that property has been set on the current VM to any - * non-<code>null</code> value other than the value, - * <code>${default.nic}</code>; otherwise returns the value - * input for the <code>defaultVal</code> parameter. - * <p> - * This method can be called from within a configuration - * as well as from within program control. It is provided - * as a way to allow mechanisms that are not able to - * conditionally set system properties to always set the - * system property named <code>default.nic</code> to some - * value -- either valid or invalid -- depending on whether - * that property is set as a system property on the command - * line. - * <p> - * For example, the <code>java</code> ant task used to exec - * java based programs does not allow one to set a system - * property on that program's VM when that property is set - * on the command line used to execute ant, but leave that - * property un-set when ant's command line does not specify - * a value for that property. That is, although ant allows - * one to retrieve the value of a system property that is - * specified on ant's command line and substitute that value - * (using Java's '${}' token-substitution mechanism) into - * a system property set on the program's VM, ant does not - * allow one to leave that property un-set when the system - * property is not specified on ant's command line; the - * property must either always be set on the VM, or never - * set. If the ant script then is written to always set the - * system property on the exec'd program's VM to the - * value of the system property expected on ant's command - * line, then whenever that system property is not set on - * ant's command line, the value that is substituted into - * the system property when the program is exec-ed will be - * of the form, <code>${default.nic}</code>. If the program - * that is exec'd then attempts to call - * <code>System.getProperty("default.nic")</code>, that - * call will return the non-<code>null</code> value, - * <code>${default.nic}</code>; which is typically not - * what is desired. - * - * @param defaultVal <code>String</code> value that this method - * returns if the system property named - * <code>default.nic</code> is either not - * set or is equal to the value - * <code>${default.nic}</code>. - * - * @return a <code>String</code> value equal to the value of - * the system property named <code>${default.nic}</code> - * if that system property is set to any value except - * <code>null</code> or the value <code>${default.nic}</code>; - * otherwise, returns the value input for the - * <code>defaultVal</code> parameter. - */ - public static String getDefaultNic(String defaultVal) { - String defaultNic = System.getProperty("default.nic"); - if( ("${default.nic}").equals(defaultNic) ) defaultNic = null; - if(defaultNic == null) defaultNic = defaultVal; - return defaultNic; - } - - public static String getDefaultNic() { - return getDefaultNic(null); - } - - /** * Intended for use by scripts. */ public static void main(String[] args) { Modified: branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/LookupStarter.java =================================================================== --- branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/LookupStarter.java 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/LookupStarter.java 2010-07-23 17:58:30 UTC (rev 3273) @@ -74,10 +74,8 @@ private static String defaultGroup = null; static { try { - thisHost = - NicUtil.getIpAddress - ( NicUtil.getDefaultNic - ( NicUtil.getDefaultIpv4Address(true) ) ); + thisHost = NicUtil.getIpAddress + ("default.nic", null, true, true); defaultGroup = System.getProperty("bigdata.fedname", "bigdata.test.group-"+thisHost); Modified: branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/config/lookup.config =================================================================== --- branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/config/lookup.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/config/lookup.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -10,8 +10,7 @@ com.sun.jini.reggie { private static exportPort = 0;//randomly chosen port private static exportIpAddr = - NicUtil.getDefaultNic - ( NicUtil.getDefaultIpv4Address(true) ); + NicUtil.getIpAddress("default.nic", null, true, true); private static codebasePort = 23333;//value used if not set by system prop // Public configuration entries Modified: branches/bugfix-btm/bigdata-jini/src/resources/config/bigdataStandaloneTesting.config =================================================================== --- branches/bugfix-btm/bigdata-jini/src/resources/config/bigdataStandaloneTesting.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-jini/src/resources/config/bigdataStandaloneTesting.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -77,8 +77,7 @@ static serviceDir = ConfigMath.getAbsoluteFile(new File(fedname)); private static localIpAddr = - NicUtil.getDefaultNic - ( NicUtil.getDefaultIpv4Address(true) ); + NicUtil.getIpAddress("default.nic", null, true, true); /* * Example cluster configuration. Modified: branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testReggie.config =================================================================== --- branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testReggie.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testReggie.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -15,8 +15,7 @@ com.sun.jini.reggie { private static exportIpAddr = - NicUtil.getDefaultNic - ( NicUtil.getDefaultIpv4Address(true) ); + NicUtil.getIpAddress("default.nic", null, true, true); private static exportPort = Integer.parseInt("0"); private static serverILFactory = Modified: branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testStartJini.config =================================================================== --- branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testStartJini.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testStartJini.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -15,8 +15,7 @@ private static appHome = System.getProperty("app.home", ConfigMath.getAbsolutePath(new File(".")) ); private static codebaseHost = - NicUtil.getDefaultNic - ( NicUtil.getDefaultIpv4Address(true) ); + NicUtil.getIpAddress("default.nic", null, true, true); private static codebasePort = "23334"; private static defaultCodebaseRootDir = ConfigUtil.concat( new String[] { appHome, "${/}bigdata-jini${/}lib${/}jini${/}lib-dl" } ); Modified: branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config =================================================================== --- branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -34,8 +34,7 @@ private static appHome = System.getProperty("app.home", ConfigMath.getAbsolutePath(new File(".")) ); private static localIpAddr = - NicUtil.getDefaultNic - ( NicUtil.getDefaultIpv4Address(true) ); + NicUtil.getIpAddress("default.nic", null, true, true); /* A comma delimited list of the known zookeeper servers together * with their assigned "myid". Property changes on: branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql ___________________________________________________________________ Modified: svn:mergeinfo - /branches/fko/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql:3150-3194 /trunk/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql:2775-2877,2883-3010,3012-3235 + /branches/fko/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql:3150-3194 /trunk/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql:2775-2877,2883-3010,3012-3269 Modified: branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestNamedGraphs.java =================================================================== --- branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestNamedGraphs.java 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestNamedGraphs.java 2010-07-23 17:58:30 UTC (rev 3273) @@ -33,7 +33,9 @@ import org.apache.log4j.Logger; import org.openrdf.model.BNode; +import org.openrdf.model.Resource; import org.openrdf.model.URI; +import org.openrdf.model.ValueFactory; import org.openrdf.model.impl.BNodeImpl; import org.openrdf.model.impl.LiteralImpl; import org.openrdf.model.impl.URIImpl; @@ -50,6 +52,7 @@ import org.openrdf.query.impl.BindingImpl; import org.openrdf.repository.RepositoryException; import org.openrdf.sail.SailException; +import com.bigdata.rdf.store.BD; /** * Unit tests for named graphs. Specify @@ -1559,4 +1562,114 @@ } + public void testSearchQuery() throws Exception { + + final BigdataSail sail = getSail(); + sail.initialize(); + final BigdataSailRepository repo = new BigdataSailRepository(sail); + final BigdataSailRepositoryConnection cxn = (BigdataSailRepositoryConnection) repo + .getConnection(); + cxn.setAutoCommit(false); + + try { + + if (!sail.getDatabase().isQuads()) { + + log.warn("test requires quads."); + + return; + + } + + final ValueFactory vf = cxn.getValueFactory(); + + //create context + final Resource context1 = vf.createURI( "http://example.org" ); + + //add statement to context1 + cxn.add( vf.createStatement( + vf.createURI("http://example.org#Chris"), + RDFS.LABEL, + vf.createLiteral("Chris") ), + context1); + cxn.commit(); + + //add statement to default graph + cxn.add( vf.createStatement( + vf.createURI("http://example.org#Christian"), + RDFS.LABEL, + vf.createLiteral("Christian") ) ); + cxn.commit(); + + { + //when running this query, we correctly get bindings for both triples + final String query = + "select ?x ?y " + + "where { " + + " ?y <"+ BD.SEARCH+"> \"Chris\" . " + + " ?x <"+ RDFS.LABEL.stringValue() + "> ?y . " + + "}"; + + final TupleQuery tupleQuery = cxn.prepareTupleQuery( + QueryLanguage.SPARQL, query); + final TupleQueryResult result = tupleQuery.evaluate(); + +// int i = 1; +// while (result.hasNext()) { +// System.err.println(i++ + "#: " + result.next()); +// } + + final Collection<BindingSet> answer = new LinkedList<BindingSet>(); + answer.add(createBindingSet(// + new BindingImpl("x", vf.createURI("http://example.org#Christian")),// + new BindingImpl("y", vf.createLiteral("Christian"))// + )); + answer.add(createBindingSet(// + new BindingImpl("x", vf.createURI("http://example.org#Chris")),// + new BindingImpl("y", vf.createLiteral("Chris"))// + )); + + compare(result, answer); + + } + + { + //however, when running this query, we incorrectly get both results as it should only return bindings for the triple added to context 1. + String query = + "select ?x ?y " + + "where { " + + " graph <http://example.org> { " + + " ?y <"+ BD.SEARCH+"> \"Chris\" . " + + " ?x <"+ RDFS.LABEL.stringValue() + "> ?y ." + + " } . " + + "}"; + + final TupleQuery tupleQuery = cxn.prepareTupleQuery( + QueryLanguage.SPARQL, query); + final TupleQueryResult result = tupleQuery.evaluate(); + +// int i = 1; +// while (result.hasNext()) { +// System.err.println(i++ + "#: " + result.next()); +// } + + final Collection<BindingSet> answer = new LinkedList<BindingSet>(); + answer.add(createBindingSet(// + new BindingImpl("x", vf.createURI("http://example.org#Chris")),// + new BindingImpl("y", vf.createLiteral("Chris"))// + )); + + compare(result, answer); + + } + + } finally { + + cxn.close(); + sail.__tearDownUnitTest(); + + } + + } + } Modified: branches/bugfix-btm/build.properties =================================================================== --- branches/bugfix-btm/build.properties 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/build.properties 2010-07-23 17:58:30 UTC (rev 3273) @@ -131,6 +131,9 @@ # Where to write the log files. install.log.dir=${NAS}/log +# Where to write the deployment distribution. +install.dist.dir=${NAS}/dist + # The 'install-as' user (defaults to the user running the installer). # # @TODO ant lacks sufficient mechanisms to set the user (chown). Modified: branches/bugfix-btm/build.xml =================================================================== --- branches/bugfix-btm/build.xml 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/build.xml 2010-07-23 17:58:30 UTC (rev 3273) @@ -493,6 +493,7 @@ <mkdir dir="${install.lib.dir}" /> <mkdir dir="${install.bin.dir}" /> <mkdir dir="${install.log.dir}" /> +<mkdir dir="${install.dist.dir}" /> <!-- install configuration files. --> <copy toDir="${install.config.dir}"> <fileset dir="${bigdata.dir}/src/resources/config"> @@ -849,57 +850,39 @@ <!-- --> <!-- STANDALONE FEDERATION TARGETS --> - <!-- --> + <!-- (test/benchamarking) --> -<target name="standalone-setup" description="Setup properties used by the standalone federation and LUS start/stop."> +<target name="generateLookupStarterJar" unless="lookupStarterJarAvailable"> + <antcall target="testCompile" /> +</target> + +<target name="testLookupStarterJarAvailability"> + <property name="bigdata-test.lib" location="${bigdata.dir}/bigdata-test/lib" /> + <condition property="lookupStarterJarAvailable"> + <available file="${bigdata-test.lib}/lookupstarter.jar"/> + </condition> +</target> + +<target name="standalone-setup" depends="testLookupStarterJarAvailability,generateLookupStarterJar" description="Setup properties used by standalone federation and LUS start/stop."> <property name="app.home" location="${bigdata.dir}" /> <property name="test.codebase.port" value="23333"/> - <property name="test.codebase.dir" location="${bigdata.dir}/bigdata-jini/lib/jini/lib-dl" /> + <property name="test.codebase.dir" location="${bigdata.dir}/bigdata-jini/lib/jini/lib-dl"/> + <property name="dist.lib" location="${bigdata.dir}/bigdata-jini/lib/jini/lib" /> + <property name="dist.lib.dl" location="${bigdata.dir}/bigdata-jini/lib/jini/lib-dl" /> <property name="test.codebase" value="http://${this.hostname}:${test.codebase.port}/jsk-dl.jar"/> <property name="java.security.policy" value="${bigdata.dir}/policy.all"/> - <property name="log4j.configuration" value="${bigdata.dir}/src/resources/config/standalone/log4j.properties"/> + <property name="log4j.configuration" value="resources/logging/log4j.properties"/> <property name="java.net.preferIPv4Stack" value="true"/> <property name="bigdata.fedname" value="${standalone.fed}"/> </target> -<target name="standalone-startLookup" depends="jar,standalone-setup" description="Start the lookup service for the standalone federation."> - <java classname="com.bigdata.service.jini.util.LookupStarter" - fork="true" spawn="true"> - <classpath refid="runtime.classpath" /> - <sysproperty key="app.home" value="${app.home}"/> - <sysproperty key="jini.lib" value="${dist.lib}"/> - <sysproperty key="jini.lib.dl" value="${dist.lib.dl}"/> - <sysproperty key="java.security.policy" value="${java.security.policy}"/> - <sysproperty key="java.security.debug" value="off"/> - <sysproperty key="java.protocol.handler.pkgs" value="net.jini.url"/> - <sysproperty key="log4j.configuration" value="${log4j.configuration}"/> - <sysproperty key="codebase.port" value="${test.codebase.port}"/> - <sysproperty key="java.net.preferIPv4Stack" value="${java.net.preferIPv4Stack}"/> - <sysproperty key="bigdata.fedname" value="${bigdata.fedname}"/> - </java> -</target> - -<target name="standalone-stopLookup" depends="jar,standalone-setup" description="Stop the lookup service for the standalone federation."> - <java classname="com.bigdata.service.jini.util.LookupStarter" - failonerror="true" fork="true" logerror="true"> - <classpath refid="runtime.classpath" /> - <sysproperty key="app.home" value="${app.home}"/> - <sysproperty key="jini.lib" value="${dist.lib}"/> - <sysproperty key="jini.lib.dl" value="${dist.lib.dl}"/> - <sysproperty key="java.security.policy" value="${java.security.policy}"/> - <sysproperty key="log4j.configuration" value="${log4j.configuration}"/> - <sysproperty key="java.net.preferIPv4Stack" value="${java.net.preferIPv4Stack}"/> - <sysproperty key="bigdata.fedname" value="${bigdata.fedname}"/> - <arg value="-stop" /> - </java> -</target> - <!-- Note: You should 'nohup' this, e.g., "nohup ant standalone-start" to avoid taking down the ServicesManagerServer if you are disconnected from a terminal. --> <target name="standalone-start" depends="jar,standalone-setup" description="Start the standalone federation."> <!-- Start the lookup service. --> - <antcall target="standalone-startLookup" /> + <antcall target="startHttpd" /> + <antcall target="startLookup" /> <java classname="com.bigdata.jini.start.ServicesManagerServer" failonerror="true" fork="true" logerror="true"> <classpath refid="runtime.classpath" /> @@ -930,28 +913,26 @@ <arg value="src/resources/config/standalone/bigdataStandalone.config" /> </java> <!-- Then take down the lookup service as well. --> - <antcall target="standalone-stopLookup" /> + <antcall target="stopLookup" /> + <antcall target="stopHttpd" /> </target> -<!-- @todo Add target to stand up a SPARQL endpoint for a KB namespace. Could be - Sesame Server or bigdata REST API. --> - -<!-- Note: The source files must be "reasonable" for the bulk loader. Each file - will be fully parsed into memory before writing onto the database. Very - large source files must be split into smaller files. See the 'split' - command under unix, but be aware that it will not generate more than 576 - output files (24 x 24 = 576) and only 100 if you are using number suffixes. - For example, split an NT file into files of 200000 lines each: - - mkdir splits; cd splits - split -l 200000 ../dataset.nt dataset - - You will also have to fix up the file extensions. You can do this using - bash as follows: - - for file in *; do mv $file $file.nt; done - - --> +<target name="standalone-start-nano-server" depends="jar" description="Start a small http server fronting for a bigdata database instance."> + <java classname="com.bigdata.rdf.sail.bench.NanoSparqlServer" fork="true" failonerror="true"> + <arg line="${standalone.nanoServerPort} ${standalone.namespace} src/resources/config/standalone/bigdataStandalone.config" /> + <jvmarg line="-server"/> + <jvmarg line="-Xmx200M"/> + <classpath refid="runtime.classpath" /> + </java> +</target> + +<target name="standalone-stop-nano-server" depends="jar" description="Stop the small http server running at the configured port."> + <java classname="com.bigdata.rdf.sail.bench.NanoSparqlServer" fork="true" failonerror="true"> + <arg line="${standalone.nanoServerPort} -stop" /> + <classpath refid="runtime.classpath" /> + </java> +</target> + <target name="standalone-bulk-load" depends="jar" description="Bulk load RDF data into the standalone federation."> <java classname="com.bigdata.rdf.load.MappedRDFDataLoadMaster" failonerror="true" fork="true" logerror="true"> @@ -967,30 +948,14 @@ <!-- --> <!-- Per job parameters --> <!-- --> - <!-- The KB namespace ("kb" is a common default). --> - <jvmarg value="-Dbigdata.rdf.namespace=U10"/> + <!-- The namespace of the target KB. --> + <jvmarg value="-Dbigdata.rdf.namespace=${standalone.namespace}"/> <!-- The job name (same as the KB namespace is a common default). --> - <jvmarg value="-Dbigdata.rdf.job.name=bulk-load-kb"/> - <!-- The file or directory containing RDF data to be loaded. - - Possible interesting data: - - d:/bigdata-perf-analysis/lubm/U10 - d:/bigdata-perf-analysis/bsbm/bsbm_2785/dataset.nt - --> - <jvmarg value="-Dbigdata.rdf.data=d:/bigdata-perf-analysis/lubm/U10"/> - <!-- The file or directory containing zero or more RDF ontology files to be loaded. - - Note: If you do not want to load any "ontology" data you can point this at an - empty directory. "ontology" data is loaded once - when a new KB instance is - created. - - Possible interesting ontologies: - - bigdata-rdf/src/resources/data/lehigh/univ-bench.owl - d:/bigdata-perf-analysis/emptyDir - --> - <jvmarg value="-Dbigdata.rdf.ontology=bigdata-rdf/src/resources/data/lehigh/univ-bench.owl"/> + <jvmarg value="-Dbigdata.rdf.job.name=bulk-load-kb-${standalone-namespace}"/> + <!-- The file or directory containing zero or more files to be loaded first. --> + <jvmarg value="-Dbigdata.rdf.ontology=${standalone.bulkLoad.ontology}"/> + <!-- The file or directory containing RDF data to be loaded. --> + <jvmarg value="-Dbigdata.rdf.data=${standalone.bulkLoad.data}"/> <!-- The main configuration file. --> <arg value="src/resources/config/standalone/bigdataStandalone.config" /> </java> @@ -1082,10 +1047,9 @@ </java> </target> - <!-- --> - <!-- UNIT TESTS ONLY BELOW HERE --> - <!-- --> - + <!-- --> + <!-- STAGING --> + <!-- --> <target name="stage" description="stages resources (jar, config, policy, logging files) needed to package or execute the bigdata distribution." depends="jar"> @@ -1103,7 +1067,6 @@ <property name="dist.var.config" location="${dist.var}/config" /> <property name="dist.var.config.policy" location="${dist.var.config}/policy" /> <property name="dist.var.config.logging" location="${dist.var.config}/logging" /> - <property name="dist.var.config.zookeeper" location="${dist.var.config}/zookeeper" /> <property name="dist.var.config.jini" location="${dist.var.config}/jini" /> <delete dir="${dist.dir}" quiet="true"/> @@ -1116,7 +1079,6 @@ <mkdir dir="${dist.var.config}"/> <mkdir dir="${dist.var.config.policy}"/> <mkdir dir="${dist.var.config.logging}"/> - <mkdir dir="${dist.var.config.zookeeper}"/> <mkdir dir="${dist.var.config.jini}"/> <!-- Copy build.properties to the top-level config file --> @@ -1186,10 +1148,6 @@ <!-- Zookeeper library --> <copy file="${bigdata-zookeeper.lib}/zookeeper-3.2.1.jar" tofile="${dist.lib}/zookeeper.jar"/> -<!-- - <copy file="/home/brmurphy/zookeeper/cdd99c5/build/zookeeper-3.3.0.jar" - tofile="${dist.lib}/zookeeper.jar"/> ---> <!-- Jini library --> @@ -1249,8 +1207,6 @@ todir="${dist.bin.config}"/> <copy file="${src.resources}/bin/config/serviceStarter.config" todir="${dist.bin.config}"/> - <copy file="${src.resources}/bin/config/zookeeper.config" - todir="${dist.bin.config}"/> <!-- Stage security policy (config) files --> <copy file="${src.resources.config}/policy.all" @@ -1303,6 +1259,329 @@ todir="${dist.var.config.jini}"/> </target> + <!-- --> + <!-- RELEASE --> + <!-- --> + <target name="deploy-artifact" depends="clean, stage" + description="Create compressed tar file for deployment."> + <tar destfile="${bigdata.dir}/REL.${version}.tgz" + compression="gzip"> + + <tarfileset dir="${bigdata.dir}/dist"> + <include name="bigdata/**" /> + + <exclude name="bigdata/bin/pstart" /> + + </tarfileset> + + <!-- Add scripts separately, making them executable --> + + <tarfileset dir="${bigdata.dir}/dist" filemode="755"> + <include name="bigdata/bin/pstart" /> + + </tarfileset> + </tar> + </target> + + <target name="ant-install-prepare" depends="jar, bundle" + description="Stage all files (src, lib, config, etc.) needed for ant based install."> + <copy toDir="${build.dir}/bigdata/src"> + <fileset dir="${bigdata.dir}/bigdata/src" /> + </copy> + <copy toDir="${build.dir}/bigdata-jini/src"> + <fileset dir="${bigdata.dir}/bigdata-jini/src" /> + </copy> + <copy toDir="${build.dir}/bigdata-rdf/src"> + <fileset dir="${bigdata.dir}/bigdata-rdf/src" /> + </copy> + <copy toDir="${build.dir}/bigdata-sails/src"> + <fileset dir="${bigdata.dir}/bigdata-sails/src" /> + </copy> + <copy toDir="${build.dir}/lgpl-utils/src"> + <fileset dir="${bigdata.dir}/lgpl-utils/src" /> + </copy> + + <mkdir dir="${build.dir}/bigdata/lib" /> + <copy toDir="${build.dir}/bigdata/lib"> + <fileset dir="${bigdata.dir}/bigdata/lib" /> + </copy> + + <mkdir dir="${build.dir}/bigdata-jini/lib" /> + <copy toDir="${build.dir}/bigdata-jini/lib"> + <fileset dir="${bigdata.dir}/bigdata-jini/lib" /> + </copy> + <mkdir dir="${build.dir}/bigdata-rdf/lib" /> + <copy toDir="${build.dir}/bigdata-rdf/lib"> + <fileset dir="${bigdata.dir}/bigdata-rdf/lib" /> + </copy> + + <mkdir dir="${build.dir}/bigdata-sails/lib" /> + <copy toDir="${build.dir}/bigdata-sails/lib"> + <fileset dir="${bigdata.dir}/bigdata-sails/lib" /> + </copy> + + <mkdir dir="${build.dir}/src" /> + <mkdir dir="${build.dir}/src/resources" /> + <mkdir dir="${build.dir}/src/resources/config" /> + <copy toDir="${build.dir}/src/resources/config"> + <fileset dir="${bigdata.dir}/src/resources/config" /> + </copy> + + <mkdir dir="${build.dir}/src/resources/scripts" /> + <copy toDir="${build.dir}/src/resources/scripts"> + <fileset dir="${bigdata.dir}/src/resources/scripts" /> + </copy> + + <copy tofile="${build.dir}/build.properties" file="build.properties" /> + <copy tofile="${build.dir}/build.xml" file="build.xml" /> + <copy tofile="${build.dir}/LICENSE.txt" file="LICENSE.txt" /> + <copy tofile="${build.dir}/overview.html" file="overview.html" /> + <copy tofile="${build.dir}/README-JINI" file="README-JINI" /> + <copy toDir="${build.dir}/LEGAL" flatten="true"> + <fileset dir="${bigdata.dir}"> + <include name="**/LEGAL/*" /> + </fileset> + </copy> + </target> + + <target name="ant-install-artifact" depends="clean, ant-install-prepare, stage" + description="Create complete source tar file for ant based install."> + <mkdir dir="${release.dir}" /> + <tar destfile="${bigdata.dir}/DIST.${version}.tgz" compression="gzip"> + <tarfileset dir="${build.dir}" prefix="${version}"> + <include name="build.properties" /> + <include name="build.xml" /> + <include name="LICENSE.txt" /> + <include name="overview.html" /> + <include name="README-JINI" /> + <include name="LEGAL/*" /> + + <include name="bigdata/src/**" /> + <include name="bigdata-jini/src/**" /> + <include name="bigdata-rdf/src/**" /> + <include name="bigdata-sails/src/**" /> + <include name="lgpl-utils/src/**" /> + <include name="bigdata/lib/**" /> + <include name="bigdata-jini/lib/**" /> + <include name="bigdata-rdf/lib/**" /> + <include name="bigdata-sails/lib/**" /> + <include name="src/**" /> + <exclude name="classes/**" /> + <exclude name="${version}.jar" /> + <exclude name="lib/**" /> + <exclude name="docs/**" /> + + <exclude name="dist/bigdata/**" /> + + </tarfileset> + + <!-- Add dist files separately, minus scripts --> + + <tarfileset dir="${bigdata.dir}" prefix="${version}"> + <include name="dist/bigdata/**" /> + + <exclude name="dist/bigdata/bin/pstart" /> + </tarfileset> + + <!-- Add dist scripts separately, making them executable --> + + <tarfileset dir="${bigdata.dir}" prefix="${version}" filemode="755"> + <include name="dist/bigdata/bin/pstart" /> + </tarfileset> + </tar> + + <tar destfile="${bigdata.dir}/REL.${version}.tgz" + basedir="${bigdata.dir}/dist" + compression="gzip"> + </tar> + </target> + + <target name="ant-install" depends="jar, banner, bundle" description="Ant based install on a node."> + <mkdir dir="${NAS}" /> + <mkdir dir="${LAS}" /> + <chmod perm="ug+rw,o-rw"> + <fileset dir="${NAS}" /> + </chmod> + <chmod perm="ug+rw,o-rw"> + <fileset dir="${LAS}" /> + </chmod> + <mkdir dir="${install.config.dir}" /> + <mkdir dir="${install.doc.dir}" /> + <mkdir dir="${install.lib.dir}" /> + <mkdir dir="${install.bin.dir}" /> + <mkdir dir="${install.log.dir}" /> + <mkdir dir="${install.dist.dir}" /> + <copy toDir="${install.config.dir}"> + <fileset dir="${bigdata.dir}/src/resources/config" /> + </copy> + <copy toDir="${install.doc.dir}"> + <fileset dir="${bigdata.dir}"> + <include name="LICENSE.txt" /> + <include name="overview.html" /> + <include name="README-JINI" /> + <include name="bigdata/LEGAL/*" /> + <include name="bigdata-jini/LEGAL/*" /> + <include name="bigdata-rdf/LEGAL/*" /> + <include name="bigdata-sails/LEGAL/*" /> + </fileset> + </copy> + + <copy toDir="${install.lib.dir}"> + <fileset dir="${build.dir}/lib" /> + <fileset file="${build.dir}/${version}.jar" /> + </copy> + + <copy toDir="${install.bin.dir}"> + <fileset dir="src/resources/scripts" /> + </copy> + + <copy toDir="${install.dist.dir}"> + <fileset dir="${bigdata.dir}/dist"> + <include name="bigdata/**" /> + </fileset> + </copy> + + <!-- parameter substitution. --> + <property name="myclasspath" refid="install.classpath" /> + <replace dir="${install.bin.dir}" summary="true"> + <replacefilter token="@FED@" value="${FED}" /> + <replacefilter token="@NAS@" value="${NAS}" /> + <replacefilter token="@LAS@" value="${LAS}" /> + <replacefilter token="@JAVA_HOME@" value="${JAVA_HOME}" /> + <replacefilter token="@JINI_CLASS_SERVER_PORT@" value="${JINI_CLASS_SERVER_PORT}" /> + <replacefilter token="@LOAD_BALANCER_PORT@" value="${LOAD_BALANCER_PORT}" /> + <replacefilter token="@SYSSTAT_HOME@" value="${SYSSTAT_HOME}" /> + <replacefilter token="@USE_NIO@" value="${USE_NIO}" /> + <replacefilter token="@BIN_DIR@" value="${install.bin.dir}" /> + <replacefilter token="@LIB_DIR@" value="${install.lib.dir}" /> + <replacefilter token="@LOG_DIR@" value="${install.log.dir}" /> + <replacefilter token="@CONFIG_DIR@" value="${install.config.dir}" /> + <replacefilter token="@INSTALL_USER@" value="${install.user}" /> + <replacefilter token="@INSTALL_GROUP@" value="${install.group}" /> + <replacefilter token="@LOCK_FILE@" value="${LOCK_FILE}" /> + <replacefilter token="@BIGDATA_CONFIG@" value="${bigdata.config}" /> + <replacefilter token="@JINI_CONFIG@" value="${jini.config}" /> + <replacefilter token="@POLICY_FILE@" value="${policyFile}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_HOST@" value="${LOG4J_SOCKET_LOGGER_HOST}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_PORT@" value="${LOG4J_SOCKET_LOGGER_PORT}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_CONFIG@" value="${log4jServer.config}" /> + <replacefilter token="@LOG4J_DATE_PATTERN@" value="${LOG4J_DATE_PATTERN}" /> + <replacefilter token="@LOG4J_CONFIG@" value="${log4j.config}" /> + <replacefilter token="@LOGGING_CONFIG@" value="${logging.config}" /> + <replacefilter token="@ERROR_LOG@" value="${errorLog}" /> + <replacefilter token="@DETAIL_LOG@" value="${detailLog}" /> + <replacefilter token="@EVENT_LOG@" value="${eventLog}" /> + <replacefilter token="@RULE_LOG@" value="${ruleLog}" /> + <replacefilter token="@STATE_LOG@" value="${stateLog}" /> + <replacefilter token="@STATE_FILE@" value="${stateFile}" /> + <replacefilter token="@FORCE_KILL_ALL@" value="${forceKillAll}" /> + <replacefilter token="@NTP_MASTER@" value="${NTP_MASTER}" /> + <replacefilter token="@NTP_NETWORK@" value="${NTP_NETWORK}" /> + <replacefilter token="@NTP_NETMASK@" value="${NTP_NETMASK}" /> + <replacefilter token="@CLASSPATH@" value="${myclasspath}" /> + </replace> + + <replace dir="${install.config.dir}" summary="true"> + <replacefilter token="@FED@" value="${FED}" /> + <replacefilter token="@NAS@" value="${NAS}" /> + <replacefilter token="@LAS@" value="${LAS}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_HOST@" value="${LOG4J_SOCKET_LOGGER_HOST}" /> + <replacefilter token="@JAVA_HOME@" value="${JAVA_HOME}" /> + <replacefilter token="@JINI_CLASS_SERVER_PORT@" value="${JINI_CLASS_SERVER_PORT}" /> + <replacefilter token="@LOAD_BALANCER_PORT@" value="${LOAD_BALANCER_PORT}" /> + <replacefilter token="@SYSSTAT_HOME@" value="${SYSSTAT_HOME}" /> + <replacefilter token="@USE_NIO@" value="${USE_NIO}" /> + <replacefilter token="@BIN_DIR@" value="${install.bin.dir}" /> + <replacefilter token="@LIB_DIR@" value="${install.lib.dir}" /> + <replacefilter token="@LOG_DIR@" value="${install.log.dir}" /> + <replacefilter token="@CONFIG_DIR@" value="${install.config.dir}" /> + <replacefilter token="@INSTALL_USER@" value="${install.user}" /> + <replacefilter token="@INSTALL_GROUP@" value="${install.group}" /> + <replacefilter token="@LOCK_FILE@" value="${LOCK_FILE}" /> + <replacefilter token="@BIGDATA_CONFIG@" value="${bigdata.config}" /> + <replacefilter token="@JINI_CONFIG@" value="${jini.config}" /> + <replacefilter token="@POLICY_FILE@" value="${policyFile}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_HOST@" value="${LOG4J_SOCKET_LOGGER_HOST}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_PORT@" value="${LOG4J_SOCKET_LOGGER_PORT}" /> + <replacefilter token="@LOG4J_SOCKET_LOGGER_CONFIG@" value="${log4jServer.config}" /> + <replacefilter token="@LOG4J_DATE_PATTERN@" value="${LOG4J_DATE_PATTERN}" /> + <replacefilter token="@LOG4J_CONFIG@" value="${log4j.config}" /> + <replacefilter token="@LOGGING_CONFIG@" value="${logging.config}" /> + <replacefilter token="@ERROR_LOG@" value="${errorLog}" /> + <replacefilter token="@DETAIL_LOG@" value="${detailLog}" /> + <replacefilter token="@EVENT_LOG@" value="${eventLog}" /> + <replacefilter token="@RULE_LOG@" value="${ruleLog}" /> + <replacefilter token="@STATE_LOG@" value="${stateLog}" /> + <replacefilter token="@STATE_FILE@" value="${stateFile}" /> + <replacefilter token="@FORCE_KILL_ALL@" value="${forceKillAll}" /> + <replacefilter token="@NTP_MASTER@" value="${NTP_MASTER}" /> + <replacefilter token="@NTP_NETWORK@" value="${NTP_NETWORK}" /> + <replacefilter token="@NTP_NETMASK@" value="${NTP_NETMASK}" /> + <replacefilter token="@CLASSPATH@" value="${myclasspath}" /> + <!-- updates the configuration file to locate the lubm ontology. --> + <replacefilter token="@install.lubm.config.dir@" value="${install.lubm.config.dir}" /> + </replace> + + <!-- fix newlines (otherwise substitutions cause things to break). --> + <fixcrlf srcDir="${install.config.dir}" /> + <fixcrlf srcDir="${install.bin.dir}" /> + + <!-- set execute bit for scripts in this directory (must be the last step). --> + <chmod perm="u+x,g+rx,o-rwx"> + <fileset dir="${install.bin.dir}"> + <exclude name="README"/> + <exclude name="POST-INSTALL"/> + </fileset> + </chmod> + + <!-- Setup the status file which will be read by the bigdata script and + the log on which that script will write its output. This is used + if cron, or a similar process, will execute the script on a periodic + basis. The initial state is always 'status'. The initial stateLog + is always empty. The state file must be readable by the group, but + could be restricted to write by a specific user. The stateLog must be + read/write for the group. --> + +<echo file="${stateFile}">status</echo> +<echo file="${stateLog}"> +</echo> + + <chmod perm="g+rw,o-rw" file="${stateFile}" /> + <chmod perm="g+rw,o-rw" file="${stateLog}" /> + + <!-- Make sure that the entire shared directory structure is read/write for the group. --> + <chmod perm="g+rwx" type="both" dir="${NAS}" verbose="true"/> + +<!-- Make sure that it is all accessible to the install group (ant 1.6+ plus extension module required). + <chown file="${NAS}" type="both" owner="${install.user}.${install.group}" verbose="true"/> +--> + + <!-- Works for earlier versions of ant LT 1.6 which do not bundle "chown". --> + <apply executable="chown" description="set owner on NAS files" os="Linux"> + <arg value="-R"/> + <arg value="${install.user}.${install.group}"/> + <dirset dir="${NAS}"/> + </apply> + + <!-- @todo check the installed configuration file (after parameter substitution). --> + <!-- @todo also check the installed jini configuration files. --> + <java classname="com.bigdata.jini.util.CheckConfiguration" + failonerror="true" fork="true" logerror="true"> + <classpath refid="install.classpath" /> + <arg value="${bigdata.config}" /> + </java> + + <loadfile property="postInstallMessage" srcFile="${install.bin.dir}/POST-INSTALL" /> + +<echo> + +${postInstallMessage}</echo> + + </target> + + <!-- --> + <!-- UNIT TESTS --> + <!-- --> <target name="testCompile" description="compiles the test source and generates the appropriate jar files." depends="stage"> Property changes on: branches/bugfix-btm/dsi-utils ___________________________________________________________________ Modified: svn:mergeinfo - /branches/fko/dsi-utils:3150-3194 /trunk/dsi-utils:2775-2877,2883-3010,3012-3235 + /branches/fko/dsi-utils:3150-3194 /trunk/dsi-utils:2775-2877,2883-3010,3012-3269 Property changes on: branches/bugfix-btm/src/resources/bin/config ___________________________________________________________________ Modified: svn:mergeinfo - /branches/fko/src/resources/bin/config:3150-3194 /trunk/src/resources/bin/config:2775-2877,2883-3010,3012-3235 + /branches/fko/src/resources/bin/config:3150-3194 /trunk/src/resources/bin/config:2775-2877,2883-3010,3012-3269 Modified: branches/bugfix-btm/src/resources/config/bigdataCluster.config =================================================================== --- branches/bugfix-btm/src/resources/config/bigdataCluster.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/src/resources/config/bigdataCluster.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -378,6 +378,9 @@ "-Xmx400m", "-Djava.security.policy="+bigdata.policy, "-Djava.util.logging.config.file="+bigdata.logging, + "-Dlog4j.configuration="+bigdata.log4j, + "-Dlog4j.primary.configuration="+bigdata.log4j, + "-DinitialMemberGroups="+bigdata.fedname }; Modified: branches/bugfix-btm/src/resources/config/jini/reggie.config =================================================================== --- branches/bugfix-btm/src/resources/config/jini/reggie.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/src/resources/config/jini/reggie.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -1,3 +1,52 @@ + +import java.net.NetworkInterface; + +import com.sun.jini.config.ConfigUtil; +import net.jini.constraint.BasicMethodConstraints; +import net.jini.core.constraint.ConnectionRelativeTime; +import net.jini.core.constraint.InvocationConstraints; +import net.jini.jeri.BasicILFactory; +import net.jini.jeri.BasicJeriExporter; +import net.jini.jeri.tcp.TcpServerEndpoint; +import net.jini.core.discovery.LookupLocator; + +import com.bigdata.util.config.NicUtil; + com.sun.jini.reggie { - initialMemberGroups = new String[] { System.getProperty("user.name") + "InstallVerifyGroup" }; + + private static exportIpAddr = NicUtil.getIpAddress(null, null, true, true); + + private static exportPort = + Integer.parseInt( System.getProperty("exportPort", "0") ); + + private static serverILFactory = + new BasicILFactory( + new BasicMethodConstraints( + new InvocationConstraints( + new ConnectionRelativeTime(10000L), + null)), + null); + + serverExporter = new BasicJeriExporter(TcpServerEndpoint.getInstance(exportIpAddr,exportPort), + serverILFactory, + false, + true); + + initialMemberGroups = new String[] { System.getProperty("initialMemberGroups", System.getProperty("user.name")+"InstallVerifyGroup" ) }; + initialLookupGroups = initialMemberGroups; + initialLookupLocators = new LookupLocator[] { }; + + unicastDiscoveryHost = exportIpAddr; + multicastInterfaces = new NetworkInterface[] { + NicUtil.getNetworkInterface(exportIpAddr) + }; + + minMaxServiceLease = 60000L; } + +net.jini.discovery.LookupDiscovery { + multicastRequestHost = com.sun.jini.reggie.exportIpAddr; + multicastInterfaces = new NetworkInterface[] { + NicUtil.getNetworkInterface(com.sun.jini.reggie.exportIpAddr) + }; +} Modified: branches/bugfix-btm/src/resources/config/jini/startAll.config =================================================================== --- branches/bugfix-btm/src/resources/config/jini/startAll.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/src/resources/config/jini/startAll.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -19,11 +19,6 @@ browser: A visualization tool for exploring Jini(TM) Network Technology communities. reggie: Provides implementations of ServiceRegistrar. - fiddler: Provides the server side of an implementation of the lookup discovery service. - mahalo: Provides implementations of the TransactionManager service. - mercury: Provides implementations of the EventMailbox service. - norm: Provides implementations of LeaseRenewalService. -outrigger: Provides implementation of a JavaSpaces(TM) technology-enabled service. */ com.sun.jini.start { @@ -63,41 +58,6 @@ policyFile, libDir+"reggie.jar", "com.sun.jini.reggie.TransientRegistrarImpl", - new String[] { configDir+"reggie.config" }), - - new NonActivatableServiceDescriptor( - "http://" + host + ":" + port + "/fiddler-dl.jar" + jskdl, - policyFile, - libDir+"fiddler.jar", - "com.sun.jini.fiddler.TransientFiddlerImpl", - new String[] { configDir+"fiddler.config" }), - - new NonActivatableServiceDescriptor( - "http://" + host + ":" + port + "/mahalo-dl.jar" + jskdl, - policyFile, - libDir+"mahalo.jar", - "com.sun.jini.mahalo.TransientMahaloImpl", - new String[] { configDir+"mahalo.config" }), - - new NonActivatableServiceDescriptor( - "http://" + host + ":" + port + "/mercury-dl.jar" + jskdl, - policyFile, - libDir+"mercury.jar", - "com.sun.jini.mercury.TransientMercuryImpl", - new String[] { configDir+"mercury.config" }), - - new NonActivatableServiceDescriptor( - "http://" + host + ":" + port + "/norm-dl.jar" + jskdl, - policyFile, - libDir+"norm.jar", - "com.sun.jini.norm.TransientNormServerImpl", - new String[] { configDir+"norm.config" }), - - new NonActivatableServiceDescriptor( - "http://" + host + ":" + port + "/outrigger-dl.jar" + jskdl, - policyFile, - libDir+"outrigger.jar", - "com.sun.jini.outrigger.TransientOutriggerImpl", - new String[] { configDir+"outrigger.config" }) + new String[] { configDir+"reggie.config" }) }; } Modified: branches/bugfix-btm/src/resources/config/logging.properties =================================================================== --- branches/bugfix-btm/src/resources/config/logging.properties 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/src/resources/config/logging.properties 2010-07-23 17:58:30 UTC (rev 3273) @@ -40,7 +40,7 @@ java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Limit the message that are printed on the console to INFO and above. -java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.level = FINEST java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter @@ -51,11 +51,18 @@ # For example, set the com.xyz.foo logger to only log SEVERE # messages: -com.xyz.foo.level = SEVERE +# com.xyz.foo.level = SEVERE # This turns off the annoying stack trace when we probe to determine # whether or not jini is already running on a specific host (unicast # discovery). Of course, it could also hide other things so you may # want to comment this out. -net.jini.discovery.LookupLocatorDiscovery = WARN +net.jini.discovery.LookupLocatorDiscovery.level = WARNING + +#com.sun.jini.start.level = FINEST +#com.sun.jini.reggie.level = FINEST +#net.jini.discovery.level = FINEST +#net.jini.config.level = FINEST +#net.jini.lookup.JoinManager.level = FINEST +#net.jini.lookup.ServiceDiscoveryManager.level = FINEST Modified: branches/bugfix-btm/src/resources/config/standalone/bigdataStandalone.config =================================================================== --- branches/bugfix-btm/src/resources/config/standalone/bigdataStandalone.config 2010-07-23 17:36:38 UTC (rev 3272) +++ branches/bugfix-btm/src/resources/config/standalone/bigdataStandalone.config 2010-07-23 17:58:30 UTC (rev 3273) @@ -30,6 +30,7 @@ // imports for various options. import com.bigdata.btree.IndexMetadata; +import com.bigdata.btree.keys.KeyBuilder; import com.bigdata.rdf.sail.BigdataSail; import com.bigdata.rdf.spo.SPORelation; import co... [truncated message content] |
From: <btm...@us...> - 2010-07-29 14:00:47
|
Revision: 3341 http://bigdata.svn.sourceforge.net/bigdata/?rev=3341&view=rev Author: btmurphy Date: 2010-07-29 14:00:32 +0000 (Thu, 29 Jul 2010) Log Message: ----------- merge -r:3267:HEAD(3339) ~/trunk/bigdata ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/.classpath branches/bugfix-btm/bigdata/src/architecture/mergePriority.xls branches/bugfix-btm/bigdata/src/java/com/bigdata/LRUNexus.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/AbstractBTree.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BloomFilterFactory.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/Checkpoint.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/DefaultTupleSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexMetadata.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegment.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentStore.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/NOPTupleSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/NodeSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/isolation/IsolatedFusedView.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/IKeyBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/proc/AbstractKeyArrayIndexProcedure.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/view/FusedView.java branches/bugfix-btm/bigdata/src/java/com/bigdata/counters/AbstractStatisticsCollector.java branches/bugfix-btm/bigdata/src/java/com/bigdata/io/DirectBufferPool.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractBufferStrategy.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractJournal.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/BufferMode.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/CommitRecordIndex.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/FileMetadata.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/Name2Addr.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/Options.java branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/IndexPartitionCause.java branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/MetadataIndex.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/IRelation.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/accesspath/SameVariableConstraint.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/locator/DefaultResourceLocator.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/IPredicate.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/Rule.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/Var.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/eval/DefaultRuleTaskFactory.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/eval/RuleState.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/eval/pipeline/JoinTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/eval/pipeline/LocalJoinTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/JournalIndex.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/MoveTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/StoreManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/ViewMetadata.java branches/bugfix-btm/bigdata/src/java/com/bigdata/search/ReadIndexTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/AbstractEmbeddedLoadBalancerService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/AbstractService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/CommitTimeIndex.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/ILoadBalancerService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/LoadBalancerService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/ndx/RawDataServiceTupleIterator.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/proxy/RemoteAsynchronousIteratorImpl.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/proxy/RemoteChunk.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/AbstractAtomicRowReadOrWrite.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/SparseRowStore.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/TPSTupleSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/striterator/IKeyOrder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/util/config/NicUtil.java branches/bugfix-btm/bigdata/src/resources/logging/log4j.properties branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractBTreeTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractIndexSegmentTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestAll_IndexSegment.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBigdataMap.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentBuilderWithLargeTrees.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentBuilderWithSmallTree.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestLeafSplitShortestSeparatorKey.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/keys/AbstractUnicodeKeyBuilderTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/keys/TestKeyBuilder.java branches/bugfix-btm/bigdata/src/test/com/bigdata/counters/httpd/TestCounterSetHTTPDServer.java branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestAll.java branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestRootBlockView.java branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/accesspath/TestSameVariableConstraint.java branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/rule/AbstractRuleTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/rule/TestRule.java branches/bugfix-btm/bigdata/src/test/com/bigdata/search/TestAll.java branches/bugfix-btm/bigdata/src/test/com/bigdata/search/TestSearchRestartSafe.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestResourceService.java branches/bugfix-btm/bigdata/src/test/com/bigdata/sparse/TestAll.java branches/bugfix-btm/bigdata/src/test/com/bigdata/test/ExperimentDriver.java branches/bugfix-btm/bigdata/src/test/com/bigdata/util/concurrent/TestAll.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/AbstractServicesManagerService.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/ServicesManagerServer.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/config/JiniServiceConfiguration.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/config/MaxClientServicesPerHostConstraint.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/config/MaxDataServicesPerHostConstraint.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/config/ZookeeperServerConfiguration.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/process/JiniCoreServicesProcessHelper.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/jini/start/process/ZookeeperProcessHelper.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/AbstractServer.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/LoadBalancerServer.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/benchmark/ThroughputMaster.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/BroadcastSighup.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/LookupStarter.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/config/lookup.config branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/zookeeper/ZooHelper.java branches/bugfix-btm/bigdata-jini/src/resources/config/bigdataStandaloneTesting.config branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/config/TestZookeeperServerEntry.java branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testReggie.config branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/jini/start/testStartJini.config branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/service/jini/AbstractServerTestCase.java branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/zookeeper/testzoo.config branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/axioms/Axioms.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/axioms/BaseAxioms.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainOwlSameAsIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainOwlSameAsPropertiesIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainOwlSameAsPropertiesPIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainOwlSameAsPropertiesPOIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainOwlSameAsPropertiesSPIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainOwlSameAsPropertiesSPOIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainTypeResourceIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/FullyBufferedJustificationIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/Justification.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/OwlSameAsPropertiesExpandingIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/RdfTypeRdfsResourceFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/SPOAssertionBuffer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/inf/TruthMaintenance.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/BigdataRDFFullTextIndex.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/ITermIndexCodes.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Id2TermTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Id2TermWriteProc.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/KVOTermIdComparator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconKeyBuilder.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/ReverseIndexWriterTask.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Term2IdTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Term2IdWriteProc.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Term2IdWriteTask.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/TermIdEncoder.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/load/VerifyStatementBuffer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/IMagicTuple.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/IRISUtils.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicAccessPath.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicIndexWriteProc.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicKeyOrder.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicPredicate.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicRelation.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicTuple.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/magic/MagicTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BNodeContextFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataBNodeImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataLiteralImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataResourceImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataStatementImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataURIImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValue.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueFactoryImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueIdComparator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/StatementEnum.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/TermIdComparator2.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rio/AsynchronousStatementBufferFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rio/NQuadsParser.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rio/StatementBuffer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/AbstractRuleDistinctTermScan.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/AbstractRuleFastClosure_11_13.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/AbstractRuleFastClosure_3_5_6_7_9.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/AbstractRuleFastClosure_5_6_7_9.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/BackchainAccessPath.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/DoNotAddFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/FastClosure.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/MatchRule.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/RDFJoinNexus.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/RuleFastClosure3.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/DefaultGraphSolutionExpander.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/DistinctMultiTermAdvancer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/DistinctSPOIterator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/DistinctTermAdvancer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/ExplicitSPOFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/ISPO.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/InGraphBinarySearchFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/InGraphHashSetFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/InferredSPOFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/JustificationRemover.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/JustificationTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/NamedGraphSolutionExpander.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/NoAxiomFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/OSPComparator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/POSComparator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPO.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOAccessPath.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOComparator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOIndexWriteProc.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOKeyOrder.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOPredicate.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPORelation.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOSortKeyBuilder.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOStarJoin.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataSolutionResolverator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIteratorImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataValueIteratorImpl.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/IRawTripleStore.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/ITripleStore.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/ScaleOutTripleStore.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/TripleStoreUtility.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/vocab/BaseVocabulary.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/vocab/Vocabulary.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/axioms/TestAxioms.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestAddTerms.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestComparators.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestCompletionScan.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestFullTextIndex.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestId2TermTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestTerm2IdTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestVocabulary.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/magic/TestIRIS.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/magic/TestMagicKeyOrderStrategy.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/magic/TestMagicStore.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/metrics/TestMetrics.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/model/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rio/TestRDFXMLInterchangeWithStatementIdentifiers.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestBackchainOwlSameAsPropertiesIterator.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestBackchainTypeResourceIterator.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestDatabaseAtOnceClosure.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestDistinctTermScan.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestJustifications.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestOptionals.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestOwlSameAsPropertiesExpandingIterator.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestRuleExpansion.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestRuleFastClosure_11_13.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestRuleFastClosure_3_5_6_7_9.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestSlice.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestTruthMaintenance.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestDefaultGraphAccessPath.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPO.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOAccessPath.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOKeyCoders.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOKeyOrder.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOPredicate.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPORelation.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOStarJoin.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOValueCoders.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/AbstractDistributedTripleStoreTestCase.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/AbstractEmbeddedTripleStoreTestCase.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/AbstractServerTestCase.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/AbstractTestCase.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestBulkFilter.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestLocalTripleStoreTransactionSemantics.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestRestartSafe.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestStatementIdentifiers.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestTripleStore.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestTripleStoreBasics.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataConstructIterator.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStatistics.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl2.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSail.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSailHelper.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSailRepository.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSailRepositoryConnection.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/FreeTextSearchExpander.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/HitConvertor.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/NanoSparqlClient.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/NanoSparqlServer.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestAll.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailEvaluationStrategyImpl.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestJoinScope.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestNamedGraphs.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestProvenanceQuery.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestQuery.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestSetBinding.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataSparqlTest.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataSparqlTest2.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/stress/LoadClosureAndQueryTest.java branches/bugfix-btm/bigdata-sails/src/test/org/openrdf/query/parser/sparql/SPARQLQueryTest.java branches/bugfix-btm/build.properties branches/bugfix-btm/build.xml branches/bugfix-btm/src/resources/bin/pstart branches/bugfix-btm/src/resources/config/bigdataCluster.config branches/bugfix-btm/src/resources/config/bigdataCluster16.config branches/bugfix-btm/src/resources/config/jini/reggie.config branches/bugfix-btm/src/resources/config/standalone/bigdataStandalone.config branches/bugfix-btm/src/resources/scripts/archiveRun.sh branches/bugfix-btm/src/resources/scripts/bigdata branches/bugfix-btm/src/resources/scripts/extractCounters.sh Added Paths: ----------- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentMultiBlockIterator.java branches/bugfix-btm/bigdata/src/releases/RELEASE_0_83_0.txt branches/bugfix-btm/bigdata/src/releases/RELEASE_0_83_1.txt branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentMultiBlockIterators.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/attr/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/attr/ServiceInfo.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/DiscoveryTool.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/disco.config branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/logging.properties branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/util/Util.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/util/config/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/util/config/ConfigDeployUtil.java branches/bugfix-btm/bigdata-perf/bsbm/ branches/bugfix-btm/bigdata-perf/bsbm/RWStore.properties branches/bugfix-btm/bigdata-perf/bsbm/WORMStore.properties branches/bugfix-btm/bigdata-perf/bsbm/build.properties branches/bugfix-btm/bigdata-perf/bsbm/build.xml branches/bugfix-btm/bigdata-perf/bsbm/lib/ branches/bugfix-btm/bigdata-perf/bsbm/lib/jdom.jar branches/bugfix-btm/bigdata-perf/bsbm/lib/log4j-1.2.12.jar branches/bugfix-btm/bigdata-perf/bsbm/lib/ssj.jar branches/bugfix-btm/bigdata-perf/bsbm/src/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/DateGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/Generator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/NormalDistGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/NormalDistRangeGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/ParetoDistGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/RandomBucket.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/TextGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/ValueGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/BSBMResource.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Offer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Person.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Producer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Product.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/ProductFeature.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/ProductType.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/RatingSite.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Review.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Vendor.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/Qualification.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/QualificationDefaultValues.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/QueryResult.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/NTriples.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/ObjectBundle.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/SQLSerializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/Serializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/TriG.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/Turtle.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/VirtSerializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/XMLSerializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/AbstractParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ClientManager.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ClientThread.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/CompiledQuery.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/CompiledQueryMix.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/LocalSPARQLParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/NetQuery.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/PreCalcParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/Query.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/QueryMix.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/SPARQLConnection.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/SQLConnection.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/SQLParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ServerConnection.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/TestDriver.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/TestDriverDefaultValues.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/tools/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/tools/ResultTransform.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/BSBM.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/DC.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/FOAF.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/ISO3166.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/RDF.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/RDFS.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/REV.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/XSD.java branches/bugfix-btm/bigdata-perf/bsbm/src/resources/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/givennames.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/ignoreQueries.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query1.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query10.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query10desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query10valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query11.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query11desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query11valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query12.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query12desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query12valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query1desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query1valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query2.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query2desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query2valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query3.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query3desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query3valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4-original.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4-rewritten.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query5.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query5desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query5valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query6.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query6desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query6valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query7.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query7desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query7valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query8.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query8desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query8valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query9-original.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query9.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query9desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query9valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/querymix.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/titlewords.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/logging/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/logging/log4j.properties branches/bugfix-btm/bigdata-perf/bsbm/src/test/ branches/bugfix-btm/bigdata-perf/bsbm/src/test/benchmark/ branches/bugfix-btm/bigdata-perf/bsbm/src/test/benchmark/bigdata/ branches/bugfix-btm/bigdata-perf/bsbm/src/test/benchmark/bigdata/TestBSBM.java branches/bugfix-btm/bigdata-perf/lubm/ branches/bugfix-btm/bigdata-perf/lubm/LEGAL/ branches/bugfix-btm/bigdata-perf/lubm/LEGAL/LICENSE.txt branches/bugfix-btm/bigdata-perf/lubm/README.txt branches/bugfix-btm/bigdata-perf/lubm/RWStore.properties branches/bugfix-btm/bigdata-perf/lubm/WORMStore.properties branches/bugfix-btm/bigdata-perf/lubm/build.properties branches/bugfix-btm/bigdata-perf/lubm/build.xml branches/bugfix-btm/bigdata-perf/lubm/lib/ branches/bugfix-btm/bigdata-perf/lubm/src/ branches/bugfix-btm/bigdata-perf/lubm/src/java/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/CompressEnum.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/DamlWriter.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/Generator.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/OwlWriter.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/RdfWriter.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/Writer.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/uba/readme.txt branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/ConfigParser.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/KbConfigParser.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/KbSpecification.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/QueryConfigParser.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/QuerySpecification.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/QueryTestResult.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/RepositoryCreator.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/Test.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/api/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/api/Atom.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/api/Query.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/api/QueryResult.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/api/Repository.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/api/RepositoryFactory.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/bigdata/ branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/bigdata/SparqlRepository.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/bigdata/SparqlRepositoryFactory.java branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/config.kb.example.dldb branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/config.kb.example.sesame branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/config.query.example.dldb branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/config.query.example.sesame branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/ubt/readme.txt branches/bugfix-btm/bigdata-perf/lubm/src/java/edu/lehigh/swat/bench/univ-bench.owl branches/bugfix-btm/bigdata-perf/lubm/src/resources/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/answers (U1)/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/answers (U1)/answers_query14.txt branches/bugfix-btm/bigdata-perf/lubm/src/resources/answers (U1)/answers_query6.txt branches/bugfix-btm/bigdata-perf/lubm/src/resources/answers (U1)/answers_query8.txt branches/bugfix-btm/bigdata-perf/lubm/src/resources/answers (U1)/reference query answers.url branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.kb.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query1.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query10.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query14.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query2.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query3.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query4.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query6.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query8-9.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query8.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query9.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.queryJDS.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query_fastOnly.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/config.query_slowOnly.sparql branches/bugfix-btm/bigdata-perf/lubm/src/resources/config/univ-bench.owl branches/bugfix-btm/bigdata-perf/lubm/src/resources/logging/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/logging/log4j.properties branches/bugfix-btm/bigdata-perf/lubm/src/resources/scripts/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/scripts/lubmClientGen.sh branches/bugfix-btm/bigdata-perf/lubm/src/resources/scripts/lubmGen.sh branches/bugfix-btm/bigdata-perf/lubm/src/resources/scripts/lubmMaster.sh branches/bugfix-btm/bigdata-perf/lubm/src/resources/scripts/lubmQuery.sh branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/ branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractBNodeIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractInlineIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/AbstractLiteralIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/DTE.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/DTEFlags.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/DefaultExtensionFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/DummyIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/ExtensionIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IDatatypeURIResolver.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IExtension.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IExtensionFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/ILexiconConfiguration.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/NullIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/NumericBNodeIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/TermId.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/UUIDBNodeIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/UUIDLiteralIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/VTE.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSD.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDBooleanIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDByteIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDDecimalIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDDoubleIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDFloatIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDIntIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDIntegerIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDLongIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDShortIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/ branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/AbstractInlineConstraint.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InlineEQ.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InlineGE.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InlineGT.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InlineLE.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InlineLT.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/InlineNE.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/package.html branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/ITermIVFilter.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/model/TermIVComparator.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/relation/ branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/relation/rule/ branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/relation/rule/BindingSetSortKeyBuilder.java branches/bugfix-btm/bigdata-rdf/src/samples/ branches/bugfix-btm/bigdata-rdf/src/samples/com/ branches/bugfix-btm/bigdata-rdf/src/samples/com/bigdata/ branches/bugfix-btm/bigdata-rdf/src/samples/com/bigdata/rdf/ branches/bugfix-btm/bigdata-rdf/src/samples/com/bigdata/rdf/internal/ branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/ branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/BlobOverflowHandler.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/ColorsEnumExtension.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/EpochExtension.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/ITermIdCodes.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/LegacyTermIdUtility.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/SampleExtensionFactory.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestIVCompare.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestLongLiterals.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/ branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/constraints/TestInlineConstraints.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestInlining.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/magic/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/model/TestFactory.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/relation/ branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/relation/rule/ branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestLocalTripleStoreWithoutInlining.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoinsWithoutInlining.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithSidsWithoutInlining.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestInlineValues.java branches/bugfix-btm/src/resources/bin/disco-tool branches/bugfix-btm/src/resources/scripts/broadcast_sighup Removed Paths: ------------- branches/bugfix-btm/bigdata/src/architecture/scale-out-perf.txt branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/AddressSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IAddressSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/ISplitHandler.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/PackedAddressSerializer.java branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/ReadOnlyMetadataIndexView.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/BindingSetSortKeyBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/DefaultSplitHandler.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/LocalDataServiceClient.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/LocalDataServiceFederation.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/ndx/DataServiceIndex.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestLDS.java branches/bugfix-btm/bigdata/src/test/com/bigdata/util/concurrent/ParallelismLimitedExecutorService.java branches/bugfix-btm/bigdata/src/test/com/bigdata/util/concurrent/TestParallelismLimitedExecutorService.java branches/bugfix-btm/bigdata-bsbm/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/attr/ServiceInfo.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/DiscoveryTool.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/disco.config branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/logging.properties branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/util/config/ConfigDeployUtil.java branches/bugfix-btm/bigdata-lubm/ branches/bugfix-btm/bigdata-perf/bsbm/RWStore.properties branches/bugfix-btm/bigdata-perf/bsbm/WORMStore.properties branches/bugfix-btm/bigdata-perf/bsbm/build.properties branches/bugfix-btm/bigdata-perf/bsbm/build.xml branches/bugfix-btm/bigdata-perf/bsbm/lib/ branches/bugfix-btm/bigdata-perf/bsbm/lib/jdom.jar branches/bugfix-btm/bigdata-perf/bsbm/lib/log4j-1.2.12.jar branches/bugfix-btm/bigdata-perf/bsbm/lib/ssj.jar branches/bugfix-btm/bigdata-perf/bsbm/src/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/DateGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/Generator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/NormalDistGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/NormalDistRangeGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/ParetoDistGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/RandomBucket.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/TextGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/generator/ValueGenerator.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/BSBMResource.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Offer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Person.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Producer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Product.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/ProductFeature.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/ProductType.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/RatingSite.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Review.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/model/Vendor.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/Qualification.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/QualificationDefaultValues.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/qualification/QueryResult.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/NTriples.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/ObjectBundle.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/SQLSerializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/Serializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/TriG.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/Turtle.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/VirtSerializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/serializer/XMLSerializer.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/AbstractParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ClientManager.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ClientThread.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/CompiledQuery.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/CompiledQueryMix.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/LocalSPARQLParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/NetQuery.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/PreCalcParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/Query.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/QueryMix.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/SPARQLConnection.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/SQLConnection.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/SQLParameterPool.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/ServerConnection.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/TestDriver.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/testdriver/TestDriverDefaultValues.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/tools/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/tools/ResultTransform.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/ branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/BSBM.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/DC.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/FOAF.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/ISO3166.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/RDF.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/RDFS.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/REV.java branches/bugfix-btm/bigdata-perf/bsbm/src/java/benchmark/vocabulary/XSD.java branches/bugfix-btm/bigdata-perf/bsbm/src/resources/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/givennames.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/ignoreQueries.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/ branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query1.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query10.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query10desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query10valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query11.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query11desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query11valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query12.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query12desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query12valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query1desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query1valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query2.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query2desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query2valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query3.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query3desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query3valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4-original.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4-rewritten.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query4valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query5.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query5desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query5valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query6.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query6desc.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query6valid.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query7.txt branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query7des... [truncated message content] |
From: <btm...@us...> - 2010-07-29 19:29:26
|
Revision: 3359 http://bigdata.svn.sourceforge.net/bigdata/?rev=3359&view=rev Author: btmurphy Date: 2010-07-29 19:29:18 +0000 (Thu, 29 Jul 2010) Log Message: ----------- merge -r:3339:HEAD(3358) ~/trunk/bigdata ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegment.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentMultiBlockIterator.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/Options.java branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/LocalPartitionMetadata.java branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/CompactingMergeTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/IncrementalBuildTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/JoinIndexPartitionTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/MoveTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/OverflowManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitIndexPartitionTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitUtility.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/StoreManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/MetadataService.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexPartitionFencePosts.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentMultiBlockIterators.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/AbstractResourceManagerTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestBuildTask.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestBuildTask2.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestMergeTask.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestOverflow.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestResourceManagerBootstrap.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestSegSplitter.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/disco.config branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/DumpFederation.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/TermIdEncoder.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl2.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuads.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoins.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoinsWithoutInlining.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithSids.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithSidsWithoutInlining.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithoutSids.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestDescribe.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestOptionals.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestUnions.java branches/bugfix-btm/build.properties branches/bugfix-btm/src/resources/bin/config/browser.config branches/bugfix-btm/src/resources/bin/config/reggie.config branches/bugfix-btm/src/resources/bin/config/serviceStarter.config branches/bugfix-btm/src/resources/bin/config/zookeeper.config branches/bugfix-btm/src/resources/bin/disco-tool branches/bugfix-btm/src/resources/bin/pstart branches/bugfix-btm/src/resources/config/jini/reggie.config Added Paths: ----------- branches/bugfix-btm/bigdata/src/releases/RELEASE_0_83_2.txt branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestOrderBy.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestSids.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/sids.rdf branches/bugfix-btm/lgpl-utils/LEGAL/lgpl-utils-license.txt Removed Paths: ------------- branches/bugfix-btm/dsi-utils/LEGAL/LICENSE.txt branches/bugfix-btm/lgpl-utils/LEGAL/LICENSE.txt Property Changed: ---------------- branches/bugfix-btm/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-perf/btc/src/ branches/bugfix-btm/bigdata-perf/lubm/lib/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/ branches/bugfix-btm/bigdata-perf/uniprot/src/ branches/bugfix-btm/dsi-utils/src/java/ branches/bugfix-btm/dsi-utils/src/test/ Property changes on: branches/bugfix-btm ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3339 + /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3358 Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -1339,8 +1339,8 @@ oldPmd.getLeftSeparatorKey(), // oldPmd.getRightSeparatorKey(),// newResources,// - oldPmd.getIndexPartitionCause(),// - "" // history is deprecated. + oldPmd.getIndexPartitionCause()// +// "" // history is deprecated. ); // update the local partition metadata on our cloned IndexMetadata. Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegment.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegment.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegment.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -623,7 +623,7 @@ * * @throws IllegalArgumentException * if the <i>key</i> is <code>null</code>. - * @throws RUntimeException + * @throws RuntimeException * if the key does not lie within the optional key-range * constraints for an index partition. */ Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -1227,9 +1227,9 @@ pmd.getLeftSeparatorKey(),// pmd.getRightSeparatorKey(),// null, // No resource metadata for indexSegment. - pmd.getIndexPartitionCause(), - pmd.getHistory()+ - "build("+pmd.getPartitionId()+",compactingMerge="+compactingMerge+") " + pmd.getIndexPartitionCause() +// ,pmd.getHistory()+ +// "build("+pmd.getPartitionId()+",compactingMerge="+compactingMerge+") " ) ); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentMultiBlockIterator.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentMultiBlockIterator.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexSegmentMultiBlockIterator.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -151,6 +151,16 @@ */ private int blockLength = 0; + /* + * Counters + */ + + /** The #of leaves read so far. */ + private long leafReadCount = 0; + + /** The #of blocks read so far. */ + private long blockReadCount = 0; + /** * * @param seg @@ -209,11 +219,25 @@ : seg.findLeafAddr(toKey)); if (pool.getBufferCapacity() < store.getCheckpoint().maxNodeOrLeafLength) { + /* - * Leaves are invariably larger than nodes. If the buffers in the - * pool are too small to hold the largest record in the index - * segment then you can not use this iterator. + * If the buffers in the pool are too small to hold the largest + * record in the index segment then you can not use this iterator. + * + * Note: We presume that the largest record is therefore a leaf. In + * practice this will nearly always be true as nodes have relatively + * little metadata per tuple while leaves store the value associated + * with the tuple. + * + * Note: AbstractBTree checks for this condition before choosing + * this iterator. */ + + throw new UnsupportedOperationException( + "Record is larger than buffer: maxNodeOrLeafLength=" + + store.getCheckpoint().maxNodeOrLeafLength + + ", bufferCapacity=" + pool.getBufferCapacity()); + } if (firstLeafAddr == 0L) { @@ -345,7 +369,7 @@ throw new IllegalStateException(); if (currentLeaf == null) { if (log.isTraceEnabled()) - log.trace("Reading first leaf"); + log.trace("Reading initial leaf"); // acquire the buffer from the pool. acquireBuffer(); // Read the first block. @@ -355,6 +379,12 @@ // Return the first leaf. return leaf; } + if (currentLeaf.identity == lastLeafAddr) { + // No more leaves. + if (log.isTraceEnabled()) + log.trace("No more leaves (end of key range)"); + return null; + } /* * We need to return the next leaf. We get the address of the next leaf * from the nextAddr field of the current leaf. @@ -363,7 +393,7 @@ if (nextLeafAddr == 0L) { // No more leaves. if (log.isTraceEnabled()) - log.trace("No more leaves"); + log.trace("No more leaves (end of segment)"); return null; } /* @@ -411,20 +441,25 @@ throw new IllegalArgumentException(); // offset into the buffer. - final int toff = (int)(offset - blockOffset); + final int offsetWithinBuffer = (int)(offset - blockOffset); - if (log.isTraceEnabled()) - log.trace("addr=" + addr + "(" + store.toString(addr) - + "), blockOffset=" + blockOffset+" toff="+toff); - // read only view of the leaf in the buffer. final ByteBuffer tmp = buffer.asReadOnlyBuffer(); - tmp.limit(toff + nbytes); - tmp.position(toff); + tmp.limit(offsetWithinBuffer + nbytes); + tmp.position(offsetWithinBuffer); // decode byte[] as ILeafData. final ILeafData data = (ILeafData) seg.nodeSer.decode(tmp); - + + leafReadCount++; + + if (log.isTraceEnabled()) + log + .trace("read leaf: leafReadCount=" + leafReadCount + + ", addr=" + addr + "(" + store.toString(addr) + + "), blockOffset=" + blockOffset + + " offsetWithinBuffer=" + offsetWithinBuffer); + // return as Leaf. return new ImmutableLeaf(seg, addr, data); @@ -470,6 +505,14 @@ // the #of bytes that we will actually read. final int nbytes = (int) Math.min(lastOffset - startOffset, b .capacity()); + if(log.isTraceEnabled()) + log.trace("leafAddr=" + store.toString(leafAddr) + ", startOffset=" + + startOffset + ", lastOffset=" + lastOffset + ", nbytes=" + + nbytes); + if (nbytes == 0) { + throw new AssertionError("nbytes=0 : leafAddr" + + store.toString(leafAddr) + " : " + this); + } // set the position to zero. b.position(0); // set the limit to the #of bytes to be read. @@ -483,9 +526,29 @@ // update the offset/length in the store for the in memory block blockOffset = startOffset; blockLength = nbytes; + blockReadCount++; if (log.isTraceEnabled()) - log.trace("leafAddr=" + leafAddr + ", blockOffset=" + blockOffset - + ", blockLength=" + blockLength); + log.trace("read block: blockReadCount=" + blockReadCount + + ", leafAddr=" + store.toString(leafAddr) + + ", blockOffset=" + blockOffset + ", blockLength=" + + blockLength); } + public String toString() { + return super.toString() + // + "{file=" + store.getFile() + // + ",checkpoint="+store.getCheckpoint()+// + ",fromKey="+BytesUtil.toString(fromKey)+// + ",toKey="+BytesUtil.toString(toKey)+// + ",firstLeafAddr=" + store.toString(firstLeafAddr) + // + ",lastLeafAddr=" + store.toString(lastLeafAddr) + // + ",currentLeaf=" + (currentLeaf!=null?store.toString(currentLeaf.identity):"N/A") + // + ",blockOffset="+blockOffset+// + ",blockLength="+blockLength+// + ",bufferCapacity="+pool.getBufferCapacity()+// + ",leafReadCount="+leafReadCount+// + ",blockReadCount="+blockReadCount+// + "}"; + } + } Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -470,6 +470,24 @@ } } + + /** + * Need to override commit to ensure the writeCache is flushed prior to + * writing the root block. + * + * For the DiskOnlyStrategy flushing the writeCache also ensures the backing + * file is created if the file is temporary. + * + * Note that the internal call to flush the writeCache must be synchronized + * or concurrent writers to the cache will cause problems. + */ + public void commit() { + if (writeCache != null) { + synchronized(this) { + flushWriteCache(); + } + } + } /** * Writes the {@link #writeCache} through to the disk and its position is Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/Options.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/Options.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/Options.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -402,28 +402,23 @@ String FORCE_ON_COMMIT = AbstractJournal.class.getName()+".forceOnCommit"; /** - * This boolean option causes application data to be forced to stable - * storage <em>before</em> we update the root blocks. This option seeks to - * guarantee that the application data is stable on the disk before the - * atomic commit. Some operating systems and/or file systems may otherwise - * choose an ordered write or otherwise process the writes in a different - * order. This could have the consequence that the root blocks are laid down - * on the disk before the application data. In this situation a hard failure - * during the write could result in the loss of application data since the - * updated root blocks represent the atomic commit point but not all - * application data was successfully made stable on disk. + * This boolean option may be used to request that application data are + * forced to stable storage <em>before</em> we update the root blocks + * (default {@value #DEFAULT_DOUBLE_SYNC}). This is accomplished by invoking + * {@link FileChannel#force(boolean)} before root blocks are updated as part + * of the atomic commit protocol in an attempt to guard against operating + * systems and/or file systems which may otherwise reorders writes with the + * consequence that the root blocks are laid down on the disk before the + * application data. In this situation a hard failure during the root block + * write could result in the loss of application data since the updated root + * blocks represent the atomic commit point but not all application data was + * successfully made stable on disk. However, note that there are often + * multiple cache layers in use by the operating system, the disk + * controller, and the disk. Therefore durability is thus best achieved + * through a mixture of methods, which can include battery powered hardware + * write cache and/or replication. * - * @deprecated This option does NOT provide a sufficient guarantee when a - * write cache is in use by the operating system or the disk if - * the layered write caches return before all data is safely on - * disk (or in a battery powered cache). In order to protect - * against this you MUST disable the write cache layers in the - * operating system and the disk drive such that - * {@link FileChannel#force(boolean)} will not return until the - * data are in fact on stable storage. If you disable the OS and - * disk write cache then you do NOT need to specify this option - * since writes will be ordered and all data will be on disk - * before we update the commit blocks. + * @see #DEFAULT_DOUBLE_SYNC */ String DOUBLE_SYNC = AbstractJournal.class.getName()+".doubleSync"; Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/LocalPartitionMetadata.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/LocalPartitionMetadata.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/LocalPartitionMetadata.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -41,7 +41,6 @@ import com.bigdata.btree.IndexSegmentStore; import com.bigdata.journal.Journal; import com.bigdata.service.DataService; -import com.bigdata.service.Event; /** * An immutable object providing metadata about a local index partition, @@ -80,6 +79,9 @@ /** * * @see #getSourcePartitionId() + * + * @deprecated MoveTask manages without this field (it was required by the + * previous MOVE implementation). */ private int sourcePartitionId; @@ -111,53 +113,53 @@ */ private IndexPartitionCause cause; - /** - * A history of operations giving rise to the current partition metadata. - * E.g., register(timestamp), copyOnOverflow(timestamp), split(timestamp), - * join(partitionId,partitionId,timestamp), etc. This is truncated when - * serialized to keep it from growing without bound. - * - * @deprecated See {@link #getHistory()} - */ - private String history; +// /** +// * A history of operations giving rise to the current partition metadata. +// * E.g., register(timestamp), copyOnOverflow(timestamp), split(timestamp), +// * join(partitionId,partitionId,timestamp), etc. This is truncated when +// * serialized to keep it from growing without bound. +// * +// * @deprecated See {@link #getHistory()} +// */ +// private String history; +// +// /** +// * If the history string exceeds {@link #MAX_HISTORY_LENGTH} characters then +// * truncates it to the last {@link #MAX_HISTORY_LENGTH}-3 characters, +// * prepends "...", and returns the result. Otherwise returns the entire +// * history string. +// * +// * @deprecated See {@link #history} +// */ +// protected String getTruncatedHistory() { +// +// if (MAX_HISTORY_LENGTH == 0) +// return ""; +// +// String history = this.history; +// +// if(history.length() > MAX_HISTORY_LENGTH) { +// +// /* +// * Truncate the history. +// */ +// +// final int len = history.length(); +// +// final int fromIndex = len - (MAX_HISTORY_LENGTH - 3); +// +// assert fromIndex > 0 : "len=" + len + ", fromIndex=" + fromIndex +// + ", maxHistoryLength=" + MAX_HISTORY_LENGTH; +// +// history = "..." + history.substring(fromIndex, len); +// +// } +// +// return history; +// +// } /** - * If the history string exceeds {@link #MAX_HISTORY_LENGTH} characters then - * truncates it to the last {@link #MAX_HISTORY_LENGTH}-3 characters, - * prepends "...", and returns the result. Otherwise returns the entire - * history string. - * - * @deprecated See {@link #history} - */ - protected String getTruncatedHistory() { - - if (MAX_HISTORY_LENGTH == 0) - return ""; - - String history = this.history; - - if(history.length() > MAX_HISTORY_LENGTH) { - - /* - * Truncate the history. - */ - - final int len = history.length(); - - final int fromIndex = len - (MAX_HISTORY_LENGTH - 3); - - assert fromIndex > 0 : "len=" + len + ", fromIndex=" + fromIndex - + ", maxHistoryLength=" + MAX_HISTORY_LENGTH; - - history = "..." + history.substring(fromIndex, len); - - } - - return history; - - } - - /** * De-serialization constructor. */ public LocalPartitionMetadata() { @@ -199,21 +201,21 @@ * the remote {@link DataService} will fill it in on arrival. * @param cause * The underlying cause for the creation of the index partition. - * @param history - * A human interpretable history of the index partition. The - * history is a series of whitespace delimited records each of - * more or less the form <code>foo(x,y,z)</code>. The history - * gets truncated when the {@link LocalPartitionMetadata} is - * serialized in order to prevent it from growing without bound. */ +// * @param history +// * A human interpretable history of the index partition. The +// * history is a series of whitespace delimited records each of +// * more or less the form <code>foo(x,y,z)</code>. The history +// * gets truncated when the {@link LocalPartitionMetadata} is +// * serialized in order to prevent it from growing without bound. public LocalPartitionMetadata(// final int partitionId,// final int sourcePartitionId,// final byte[] leftSeparatorKey,// final byte[] rightSeparatorKey,// final IResourceMetadata[] resources,// - final IndexPartitionCause cause, - final String history + final IndexPartitionCause cause +// final String history ) { /* @@ -232,7 +234,7 @@ this.cause = cause; - this.history = history; +// this.history = history; /* * Test arguments. @@ -440,23 +442,23 @@ } - /** - * A history of the changes to the index partition. - * - * @deprecated I've essentially disabled the history (it is always empty - * when it is persisted). I found it nearly impossible to read. - * There are much saner ways to track what is going on in the - * federation. An analysis of the {@link Event} log is much more - * useful. If nothing else, you could examine the index - * partition in the metadata index by scanning the commit points - * and reading its state in each commit and reporting all state - * changes. - */ - final public String getHistory() { - - return history; - - } +// /** +// * A history of the changes to the index partition. +// * +// * @deprecated I've essentially disabled the history (it is always empty +// * when it is persisted). I found it nearly impossible to read. +// * There are much saner ways to track what is going on in the +// * federation. An analysis of the {@link Event} log is much more +// * useful. If nothing else, you could examine the index +// * partition in the metadata index by scanning the commit points +// * and reading its state in each commit and reporting all state +// * changes. +// */ +// final public String getHistory() { +// +// return history; +// +// } final public int hashCode() { @@ -466,7 +468,7 @@ } // Note: used by assertEquals in the test cases. - public boolean equals(Object o) { + public boolean equals(final Object o) { if (this == o) return true; @@ -520,7 +522,7 @@ ", rightSeparator="+BytesUtil.toString(rightSeparatorKey)+ ", resourceMetadata="+Arrays.toString(resources)+ ", cause="+cause+ - ", history="+history+ +// ", history="+history+ "}" ; @@ -537,6 +539,17 @@ * but that field is only serialized for a journal. */ private static final transient short VERSION1 = 0x1; + + /** + * This version serializes the {@link #partitionId} as 32-bits clean and + * gets rid of the <code>history</code> field. + */ + private static final transient short VERSION2 = 0x2; + + /** + * The current version. + */ + private static final transient short VERSION = VERSION2; public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { @@ -546,13 +559,18 @@ switch (version) { case VERSION0: case VERSION1: + case VERSION2: break; default: throw new IOException("Unknown version: " + version); } - - partitionId = (int) LongPacker.unpackLong(in); + if (version < VERSION2) { + partitionId = (int) LongPacker.unpackLong(in); + } else { + partitionId = in.readInt(); + } + sourcePartitionId = in.readInt(); // MAY be -1. final int nresources = ShortPacker.unpackShort(in); @@ -579,7 +597,9 @@ cause = (IndexPartitionCause)in.readObject(); - history = in.readUTF(); + if (version < VERSION2) { + /* history = */in.readUTF(); + } resources = nresources>0 ? new IResourceMetadata[nresources] : null; @@ -613,9 +633,13 @@ public void writeExternal(final ObjectOutput out) throws IOException { - ShortPacker.packShort(out, VERSION1); + ShortPacker.packShort(out, VERSION); - LongPacker.packLong(out, partitionId); + if (VERSION < VERSION2) { + LongPacker.packLong(out, partitionId); + } else { + out.writeInt(partitionId); + } out.writeInt(sourcePartitionId); // MAY be -1. @@ -640,7 +664,9 @@ out.writeObject(cause); - out.writeUTF(getTruncatedHistory()); + if (VERSION < VERSION2) { + out.writeUTF("");// getTruncatedHistory() + } /* * Note: we serialize using the IResourceMetadata interface so that we Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -224,19 +224,36 @@ } + /** + * The original version. + */ private static final transient short VERSION0 = 0x0; + + /** + * The {@link #partitionId} is now 32-bits clean. + */ + private static final transient short VERSION1 = 0x0; + /** + * The current version. + */ + private static final transient short VERSION = VERSION1; + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { final short version = ShortPacker.unpackShort(in); - if (version != VERSION0) { - + if (version != VERSION0 && version != VERSION1) { + throw new IOException("Unknown version: "+version); } - partitionId = (int)LongPacker.unpackLong(in); + if (version < VERSION1) { + partitionId = (int) LongPacker.unpackLong(in); + } else { + partitionId = in.readInt(); + } dataServiceUUID = new UUID(in.readLong()/*MSB*/,in.readLong()/*LSB*/); @@ -264,9 +281,13 @@ public void writeExternal(ObjectOutput out) throws IOException { - ShortPacker.packShort(out, VERSION0); + ShortPacker.packShort(out, VERSION); - LongPacker.packLong(out, partitionId); + if (VERSION < VERSION1) { + LongPacker.packLong(out, partitionId); + } else { + out.writeInt(partitionId); + } out.writeLong(dataServiceUUID.getMostSignificantBits()); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/CompactingMergeTask.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/CompactingMergeTask.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/CompactingMergeTask.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -1178,21 +1178,22 @@ currentpmd.getLeftSeparatorKey(),// currentpmd.getRightSeparatorKey(),// newResources, // - currentpmd.getIndexPartitionCause(), - currentpmd.getHistory() - + OverflowActionEnum.Merge// - + "(lastCommitTime=" - + segmentMetadata.getCreateTime()// - + ",btreeEntryCount=" - + btree.getEntryCount()// - + ",segmentEntryCount=" - + buildResult.builder.getCheckpoint().nentries// - + ",segment=" - + segmentMetadata.getUUID()// - + ",counter=" - + btree.getCounter().get()// - + ",oldResources=" - + Arrays.toString(currentResources) + ") ")); + currentpmd.getIndexPartitionCause() +// currentpmd.getHistory() +// + OverflowActionEnum.Merge// +// + "(lastCommitTime=" +// + segmentMetadata.getCreateTime()// +// + ",btreeEntryCount=" +// + btree.getEntryCount()// +// + ",segmentEntryCount=" +// + buildResult.builder.getCheckpoint().nentries// +// + ",segment=" +// + segmentMetadata.getUUID()// +// + ",counter=" +// + btree.getCounter().get()// +// + ",oldResources=" +// + Arrays.toString(currentResources) + ") " + )); // update the metadata associated with the btree btree.setIndexMetadata(indexMetadata); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/IncrementalBuildTask.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/IncrementalBuildTask.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/IncrementalBuildTask.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -552,21 +552,22 @@ currentpmd.getLeftSeparatorKey(),// currentpmd.getRightSeparatorKey(),// newResources, // - currentpmd.getIndexPartitionCause(), - currentpmd.getHistory() - + OverflowActionEnum.Build// - + "(lastCommitTime=" - + segmentMetadata.getCreateTime()// - + ",segment=" - + segmentMetadata.getUUID()// - + ",#buildSources=" - + buildResult.sourceCount// - + ",merge=" - + buildResult.compactingMerge// - + ",counter=" - + btree.getCounter().get()// - + ",oldResources=" - + Arrays.toString(currentResources) + ") ")); + currentpmd.getIndexPartitionCause() +// , currentpmd.getHistory() +// + OverflowActionEnum.Build// +// + "(lastCommitTime=" +// + segmentMetadata.getCreateTime()// +// + ",segment=" +// + segmentMetadata.getUUID()// +// + ",#buildSources=" +// + buildResult.sourceCount// +// + ",merge=" +// + buildResult.compactingMerge// +// + ",counter=" +// + btree.getCounter().get()// +// + ",oldResources=" +// + Arrays.toString(currentResources) + ") " + )); // update the metadata associated with the btree btree.setIndexMetadata(indexMetadata); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/JoinIndexPartitionTask.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/JoinIndexPartitionTask.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/JoinIndexPartitionTask.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -289,9 +289,10 @@ // Note: the live journal. getJournal().getResourceMetadata() // },// - IndexPartitionCause.join(resourceManager), - // new history line. - summary+" ")); + IndexPartitionCause.join(resourceManager) +// // new history line. +// , summary+" " + )); /* * Set the updated index metadata on the btree (required for it Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/MoveTask.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/MoveTask.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/MoveTask.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -1367,9 +1367,10 @@ // Historical writes from the source DS. historySegmentMetadata// }, - IndexPartitionCause.move(resourceManager), - // history line. - oldpmd.getHistory() + summary + " ")); + IndexPartitionCause.move(resourceManager) +// // history line. +// ,oldpmd.getHistory() + summary + " " + )); /* * Create the BTree to aborb writes for the target index Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/OverflowManager.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/OverflowManager.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/OverflowManager.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -2486,16 +2486,18 @@ oldpmd.getLeftSeparatorKey(),// oldpmd.getRightSeparatorKey(),// newResources, // - oldpmd.getIndexPartitionCause(), oldpmd - .getHistory() - + OverflowActionEnum.Copy - + "(lastCommitTime=" - + lastCommitTime - + ",entryCount=" - + entryCount - + ",counter=" - + oldBTree.getCounter().get() - + ") ")); + oldpmd.getIndexPartitionCause()// +// , oldpmd +// .getHistory() +// + OverflowActionEnum.Copy +// + "(lastCommitTime=" +// + lastCommitTime +// + ",entryCount=" +// + entryCount +// + ",counter=" +// + oldBTree.getCounter().get() +// + ") " + )); } else { @@ -2535,15 +2537,17 @@ oldpmd.getLeftSeparatorKey(),// oldpmd.getRightSeparatorKey(),// newResources, // - oldpmd.getIndexPartitionCause(), oldpmd - .getHistory() - + "overflow(lastCommitTime=" - + lastCommitTime - + ",entryCount=" - + entryCount - + ",counter=" - + oldBTree.getCounter().get() - + ") ")); + oldpmd.getIndexPartitionCause()// +// , oldpmd +// .getHistory() +// + "overflow(lastCommitTime=" +// + lastCommitTime +// + ",entryCount=" +// + entryCount +// + ",counter=" +// + oldBTree.getCounter().get() +// + ") " + )); } Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitIndexPartitionTask.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitIndexPartitionTask.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitIndexPartitionTask.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -844,12 +844,12 @@ resourceManager.getLiveJournal() .getResourceMetadata(), splitResult.buildResults[i].segmentMetadata }, - IndexPartitionCause.split(resourceManager), - /* - * Note: history is record of the split. - */ - pmd.getHistory() + summary + " ")// - ); + IndexPartitionCause.split(resourceManager) +// /* +// * Note: history is record of the split. +// */ +// , pmd.getHistory() + summary + " "// + )); /* * create new btree. Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitUtility.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitUtility.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/SplitUtility.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -400,11 +400,12 @@ /* * Note: cause will be set by the atomic update task. */ - null,// - oldpmd.getHistory() - + "chooseTailSplitPoint(oldPartitionId=" - + oldpmd.getPartitionId() + ",nsplits=" + 2 - + ",newPartitionId=" + partitionId + ") "); + null// +// , oldpmd.getHistory() +// + "chooseTailSplitPoint(oldPartitionId=" +// + oldpmd.getPartitionId() + ",nsplits=" + 2 +// + ",newPartitionId=" + partitionId + ") " + ); final int fromIndex = 0; @@ -437,11 +438,12 @@ * Note: Cause will be set by the atomic update for the * split task. */ - null,// - oldpmd.getHistory() - + "chooseTailSplitPoint(oldPartitionId=" - + oldpmd.getPartitionId() + ",nsplits=" + 2 - + ",newPartitionId=" + partitionId + ") "); + null// +// , oldpmd.getHistory() +// + "chooseTailSplitPoint(oldPartitionId=" +// + oldpmd.getPartitionId() + ",nsplits=" + 2 +// + ",newPartitionId=" + partitionId + ") " + ); /* * Note: The index of the last tuple in the btree will be the @@ -1050,11 +1052,12 @@ /* * Note: cause will be set by the atomic update task. */ - null,// - oldpmd.getHistory() - + "chooseSplitPoint(oldPartitionId=" - + oldpmd.getPartitionId() + ",nsplits=" + N - + ",newPartitionId=" + partitionId + ") "); + null // +// , oldpmd.getHistory() +// + "chooseSplitPoint(oldPartitionId=" +// + oldpmd.getPartitionId() + ",nsplits=" + N +// + ",newPartitionId=" + partitionId + ") " + ); final Split split = new Split(newpmd, fromIndex, toIndex); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/StoreManager.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/StoreManager.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/StoreManager.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -2603,14 +2603,15 @@ getResourceMetadata() // }, // cause - IndexPartitionCause.register(resourceManager), - /* - * Note: Retains whatever history given by the - * caller. - */ - pmd.getHistory() + "register(name=" + name - + ",partitionId=" - + pmd.getPartitionId() + ") ")); + IndexPartitionCause.register(resourceManager) +// /* +// * Note: Retains whatever history given by the +// * caller. +// */ +// , pmd.getHistory() + "register(name=" + name +// + ",partitionId=" +// + pmd.getPartitionId() + ") " + )); } else { Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/service/MetadataService.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/service/MetadataService.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/service/MetadataService.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -1123,11 +1123,11 @@ * service. */ null, // [resources] Signal to the RegisterIndexTask. - null, // [cause] Signal to RegisterIndexTask - /* - * History. - */ - "createScaleOutIndex(name="+scaleOutIndexName+") " + null // [cause] Signal to RegisterIndexTask +// /* +// * History. +// */ +// ,"createScaleOutIndex(name="+scaleOutIndexName+") " )); dataServices[i].registerIndex(DataService Copied: branches/bugfix-btm/bigdata/src/releases/RELEASE_0_83_2.txt (from rev 3351, trunk/bigdata/src/releases/RELEASE_0_83_2.txt) =================================================================== --- branches/bugfix-btm/bigdata/src/releases/RELEASE_0_83_2.txt (rev 0) +++ branches/bugfix-btm/bigdata/src/releases/RELEASE_0_83_2.txt 2010-07-29 19:29:18 UTC (rev 3359) @@ -0,0 +1,65 @@ +This is a bigdata (R) snapshot release. This release is capable of loading 1B +triples in under one hour on a 15 node cluster and has been used to load up to +13B triples on the same cluster. JDK 1.6 is required. + +See [1] for instructions on installing bigdata(R), [2] for the javadoc and [3] +and [4] for news, questions, and the latest developments. For more information +about SYSTAP, LLC and bigdata, see [5]. + +Please note that we recommend checking out the code from SVN using the tag for +this release. The code will build automatically under eclipse. You can also +build the code using the ant script. The cluster installer requires the use of +the ant script. You can checkout this release from the following URL: + + https://bigdata.svn.sourceforge.net/svnroot/bigdata/branches/BIGDATA_RELEASE_0_83_2 + +New features: + +- This release provides a bug fix for issue#118. Upgrade to this release is + advised. See https://sourceforge.net/apps/trac/bigdata/ticket/118 for details. + +- Inlining XSD numerics, xsd:boolean, or custom datatype extensions + into the statement indices. Inlining provides a smaller footprint + and faster queries for data using XSD numeric datatypes. In order + to introduce inlining we were forced to make a change in the + physical schema for the RDF database which breaks binary + compatibility for existing stores. The recommended migration path + is to export the data and import it into a new bigdata instance. + +- Refactor of the dynamic sharding mechanism for higher performance. + +- The SparseRowStore has been modified to make Unicode primary keys + decodable by representing Unicode primary keys using UTF8 rather + than Unicode sort keys. This change also allows the SparseRowStore + to work with the JDK collator option which embeds nul bytes into + Unicode sort keys. This change breaks binary compatibility, but + there is an option for historical compatibility. + +The roadmap for the next releases include: + +- Query optimizations; + +- Support for high-volume analytic query workloads and SPARQL aggregations; + +- High availability for the journal and the cluster; + +- Simplified deployment, configuration, and administration for clusters. + +For more information, please see the following links: + +[1] http://bigdata.wiki.sourceforge.net/GettingStarted +[2] http://www.bigdata.com/bigdata/docs/api/ +[3] http://sourceforge.net/projects/bigdata/ +[4] http://www.bigdata.com/blog +[5] http://www.systap.com/bigdata.htm + +About bigdata: + +Bigdata\xAE is a horizontally-scaled, general purpose storage and computing fabric +for ordered data (B+Trees), designed to operate on either a single server or a +cluster of commodity hardware. Bigdata\xAE uses dynamically partitioned key-range +shards in order to remove any realistic scaling limits - in principle, bigdata\xAE +may be deployed on 10s, 100s, or even thousands of machines and new capacity may +be added incrementally without requiring the full reload of all data. The bigdata\xAE +RDF database supports RDFS and OWL Lite reasoning, high-level query (SPARQL), +and datum level provenance. Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexPartitionFencePosts.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexPartitionFencePosts.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexPartitionFencePosts.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -78,8 +78,8 @@ new byte[]{}, // leftSeparator null, // rightSeparator null, // no resource descriptions. - null, // no cause. - "" // history + null // no cause. +// , "" // history )); BTree ndx = BTree.create(new SimpleMemoryRawStore(),metadata); Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentMultiBlockIterators.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentMultiBlockIterators.java 2010-07-29 19:18:51 UTC (rev 3358) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentMultiBlockIterators.java 2010-07-29 19:29:18 UTC (rev 3359) @@ -28,6 +28,7 @@ package com.bigdata.btree; import java.io.File; +import java.util.Random; import java.util.UUID; import com.bigdata.btree.IndexSegmentBuilder.BuildEnum; @@ -271,6 +272,8 @@ // verify that the iterator is exhausted. assertFalse(itr.hasNext()); + doRandomScanTest(btree, seg, 10/* ntests */); + } finally { seg.getStore().destroy(); @@ -280,6 +283,43 @@ } /** + * Unit test builds an empty index segment and then verifies the behavior of + * the {@link IndexSegmentMultiBlockIterator}. + * + * @throws Exception + */ + public void test_emptyIndexSegment() throws Exception { + + final BTree btree = BTree.createTransient(new IndexMetadata(UUID + .randomUUID())); + + final IndexSegmentBuilder builder = TestIndexSegmentBuilderWithLargeTrees + .doBuildIndexSegment(getName(), btree, 32/* m */, + BuildEnum.TwoPass, bufferNodes); + + final IndexSegment seg = new IndexSegmentStore(builder.outFile) + .loadIndexSegment(); + + try { + + final IndexSegmentMultiBlockIterator<?> itr = new IndexSegmentMultiBlockIterator( + seg, DirectBufferPool.INSTANCE_10M, null/* fromKey */, + null/* toKey */, IRangeQuery.DEFAULT); + + assertFalse(itr.hasNext()); + + // verify the data. + testMultiBlockIterator(btree, seg); + + } finally { + + seg.getStore().destroy(); + + } + + } + + /** * Test build around an {@link IndexSegment} having a default branching * factor and a bunch of leaves totally more than 1M in size on the disk. */ @@ -288,8 +328,13 @@ final BTree btree = BTree.createTransient(new IndexMetadata(UUID .randomUUID())); - for (int i = 0; i < 1000000; i++) { + final int LIMIT = 1000000; + + // populate the index. + for (int i = 0; i < LIMIT; i++) { + btree.insert(i, i); + } final IndexSegmentBuilder builder = TestIndexSegmentBuilderWithLargeTrees @@ -336,6 +381,9 @@ // verify the data. testMultiBlockIterator(btree, seg); + + // random iterator scan tests. + doRandomScanTest(btree, seg, 100/* ntests */); } finally { @@ -345,4 +393,112 @@ } + /** + * Do a bunch of random iterator scans. Each scan will start at a random key + * and run to a random key. + * + * @param groundTruth + * The ground truth B+Tree. + * @param actual + * The index segment built from that B+Tree. + * @param ntests + * The #of scans to run. + */ + private void doRandomScanTest(final BTree groundTruth, + final IndexSegment actual, final int ntests) { + + final Random r = new Random(); + + final int n = groundTruth.getEntryCount(); + + // point query beyond the last tuple in the index segment. + { + + final int fromIndex = n - 1; + + final byte[] fromKey = groundTruth.keyAt(fromIndex); + + final byte[] toKey = BytesUtil.successor(fromKey.clone()); + + final ITupleIterator<?> expectedItr = groundTruth + .rangeIterator(fromKey, toKey, 0/* capacity */, + IRangeQuery.DEFAULT, null/* filter */); + + final IndexSegmentMultiBlockIterator<?> actualItr = new IndexSegmentMultiBlockIterator( + actual, DirectBufferPool.INSTANCE_10M, fromKey, toKey, + IRangeQuery.DEFAULT); + + assertSameEntryIterator(expectedItr, actualItr); + + } + + // random point queries. + for (int i = 0; i < ntests; i++) { + + final int fromIndex = r.nextInt(n); + + final byte[] fromKey = groundTruth.keyAt(fromIndex); + + final byte[] toKey = BytesUtil.successor(fromKey.clone()); + + final ITupleIterator<?> expectedItr = groundTruth + .rangeIterator(fromKey, toKey, 0/* capacity */, + IRangeQuery.DEFAULT, null/* filter */); + + final IndexSegmentMultiBlockIterator<?> actualItr = new IndexSegmentMultiBlockIterator( + actual, DirectBufferPool.INSTANCE_10M, fromKey, toKey, + IRangeQuery.DEFAULT); + + assertSameEntryIterator(expectedItr, actualItr); + + } + + // random range queries with small range of spanned keys (0 to 10). + for (int i = 0; i < ntests; i++) { + + final int fromIndex = r.nextInt(n); + + final byte[] fromKey = groundTruth.keyAt(fromIndex); + + final byte[] toKey = groundTruth.keyAt(Math.min(fromIndex + + r.nextInt(10), n - 1)); + + final ITupleIterator<?> expectedItr = groundTruth + .rangeIterator(fromKey, toKey, 0/* capacity */, + IRangeQuery.DEFAULT, null/* filter */); + + final IndexSegmentMultiBlockIterator<?> actualItr = new IndexSegmentMultiBlockIterator( + actual, DirectBufferPool.INSTANCE_10M, fromKey, toKey, + IRangeQuery.DEFAULT); + + assertSameEntryIterator(expectedItr, actualItr); + + } + + // random range queries with random #of spanned keys. + for (int i = 0; i < ntests; i++) { + + final int fromIndex = r.nextInt(n); + + final int toIndex = fromIndex + r.nextInt(n - fromIndex + 1); + + final byte[] fromKey = groundTruth.keyAt(fromIndex); + + final byte[] toKey = toIndex >= n ? null : groundTruth + .keyAt(toIndex); + + final ITupleIterator<?> expectedItr = groundTruth + .rangeIterator(fromKey, toKey, 0/* capacity */, + IRangeQuery.DEFAULT, null/* filter */); + + final IndexSegmentMultiBlockIterator<?> actualItr = new IndexSegmentMultiBlockIterator( + actual, DirectBufferPool.INSTANCE_10M, f... [truncated message content] |
From: <btm...@us...> - 2010-07-30 13:51:44
|
Revision: 3371 http://bigdata.svn.sourceforge.net/bigdata/?rev=3371&view=rev Author: btmurphy Date: 2010-07-30 13:51:36 +0000 (Fri, 30 Jul 2010) Log Message: ----------- merge -r:3358:HEAD(3370) ~/bigdata/trunk ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BlobOverflowHandler.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/cache/HardReferenceGlobalLRU.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/KeyDecoder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/SparseRowStore.java branches/bugfix-btm/bigdata/src/test/com/bigdata/cache/TestAll.java branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestConcurrentJournal.java branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestJournalBasics.java branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/locator/TestDefaultResourceLocator.java branches/bugfix-btm/bigdata/src/test/com/bigdata/search/TestKeyBuilder.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestBasicIndexStuff.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestDistributedTransactionService.java branches/bugfix-btm/bigdata/src/test/com/bigdata/sparse/TestKeyEncodeDecode.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithSids.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithSidsWithoutInlining.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataConnectionTest.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataSparqlTest.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataStoreTest.java Removed Paths: ------------- branches/bugfix-btm/CVSROOT/ branches/bugfix-btm/bigdata-master-pom/ Property Changed: ---------------- branches/bugfix-btm/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-perf/btc/src/ branches/bugfix-btm/bigdata-perf/lubm/lib/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/ branches/bugfix-btm/bigdata-perf/uniprot/src/ branches/bugfix-btm/dsi-utils/src/java/ branches/bugfix-btm/dsi-utils/src/test/ Property changes on: branches/bugfix-btm ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3358 + /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3370 Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BlobOverflowHandler.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BlobOverflowHandler.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BlobOverflowHandler.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -6,8 +6,10 @@ import com.bigdata.btree.IOverflowHandler; import com.bigdata.btree.ITuple; +import com.bigdata.btree.keys.IKeyBuilder; import com.bigdata.btree.keys.KeyBuilder; import com.bigdata.io.DataOutputBuffer; +import com.bigdata.rawstore.Bytes; import com.bigdata.rawstore.IBlock; import com.bigdata.rawstore.IRawStore; @@ -33,7 +35,7 @@ } - DataOutputBuffer buf; + private transient DataOutputBuffer buf; public void close() { @@ -62,6 +64,8 @@ } + final IKeyBuilder keyBuilder = new KeyBuilder(Bytes.SIZEOF_LONG); + if (addr == 0L) { /* @@ -69,7 +73,7 @@ * their address. */ - return KeyBuilder.asSortKey(0L); + return keyBuilder.append(0L).getKey(); } @@ -143,7 +147,7 @@ } // the address of the block on the target store. - return KeyBuilder.asSortKey(addr2); + return keyBuilder.append(addr2).getKey(); } Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -1081,17 +1081,25 @@ * Note: This method is thread-safe. * <p> * Note: Strings are Unicode safe for the default locale. See - * {@link Locale#getDefault()}. If you require a specific local or - * different locals at different times or for different indices then you - * MUST provision and apply your own {@link KeyBuilder}. + * {@link Locale#getDefault()}. If you require a specific local or different + * locals at different times or for different indices then you MUST + * provision and apply your own {@link KeyBuilder}. * * @param val * An application key. * - * @return The unsigned byte[] equivilent of that key. This will be - * <code>null</code> iff the <i>key</i> is <code>null</code>. - * If the <i>key</i> is a byte[], then the byte[] itself will be - * returned. + * @return The unsigned byte[] equivalent of that key. This will be + * <code>null</code> iff the <i>key</i> is <code>null</code>. If the + * <i>key</i> is a byte[], then the byte[] itself will be returned. + * + * @deprecated This method circumvents explicit configuration of the + * {@link KeyBuilder} and is used nearly exclusively by unit + * tests. While explicit configuration is not required for keys + * which do not include Unicode sort key components, this method + * also relies on a single global {@link KeyBuilder} instance + * protected by a lock. That lock is therefore a bottleneck. The + * correct practice is to use thread-local or per task + * {@link IKeyBuilder}s to avoid lock contention. */ @SuppressWarnings("unchecked") public static final byte[] asSortKey(Object val) { Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/cache/HardReferenceGlobalLRU.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/cache/HardReferenceGlobalLRU.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/cache/HardReferenceGlobalLRU.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -57,7 +57,8 @@ * iterator. When compared to the {@link HardReferenceGlobalLRURecycler}, this * implementation has approximately 10% higher throughput. * - * @version $Id$ + * @version $Id: HardReferenceGlobalLRU.java 2799 2010-05-11 21:04:43Z + * thompsonbry $ * @author <a href="mailto:tho...@us...">Bryan Thompson * </a> * @param <K> @@ -69,6 +70,8 @@ * {@link IDataRecordAccess} since we can not measure the bytesInMemory * for those objects and hence the LRU eviction policy will not account * for their memory footprint? + * + * @deprecated This implementation is not used. */ public class HardReferenceGlobalLRU<K, V> implements IHardReferenceGlobalLRU<K, V> { Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/KeyDecoder.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/KeyDecoder.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/KeyDecoder.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -73,6 +73,9 @@ * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * @version $Id$ + * + * @todo The key is now 100% decodable. The package should be updated to take + * advantage of that. */ public class KeyDecoder { @@ -157,6 +160,22 @@ return a; } + + /** + * Return the schema name. + * + * @throws UnsupportedOperationException + * unless {@link SparseRowStore#schemaNameUnicodeClean} is + * <code>true</code>. + */ + public String getSchemaName() { + + if(!SparseRowStore.schemaNameUnicodeClean) + throw new UnsupportedOperationException(); + + return new String(getSchemaBytes()); + + } /** * The decoded {@link KeyType} for the primary key. @@ -485,10 +504,17 @@ */ public String toString() { - return "KeyDecoder{primaryKeyType=" + primaryKeyType + ",col=" + col - + ",timestamp=" + timestamp + ",key=" + BytesUtil.toString(key) + return "KeyDecoder{" + + (SparseRowStore.schemaNameUnicodeClean ? "schema=" + + getSchemaName() + "," : "")// + + "primaryKeyType="+ primaryKeyType// + + (SparseRowStore.primaryKeyUnicodeClean ? ",primaryKey=" + + getPrimaryKey() : "")// + + ",col=" + col // + + ",timestamp=" + timestamp // + + ",key=" + BytesUtil.toString(key) // + "}"; } - + } Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -128,14 +128,22 @@ if (schemaBytes == null) { - /* - * One time encoding of the schema name as a Unicode sort key. - */ - - schemaBytes = KeyBuilder.asSortKey(name); + if (SparseRowStore.schemaNameUnicodeClean) { + /* + * One time encoding of the schema name as UTF8. + */ + try { + schemaBytes = name.getBytes(SparseRowStore.UTF8); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } else { + /* + * One time encoding of the schema name as a Unicode sort key. + */ + schemaBytes = KeyBuilder.asSortKey(name); + } -// schemaBytes = KeyBuilder.newInstance().append(name).append("\0").getKey(); - } return schemaBytes; Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/SparseRowStore.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/SparseRowStore.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/SparseRowStore.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -1048,11 +1048,35 @@ * * @author <a href="mailto:tho...@us...">Bryan * Thompson</a> - * @version $Id$ */ public interface Options { /** + * The schema name was originally written using a Unicode sort key. + * However, the JDK can generate Unicode sort keys with embedded nuls + * which in turn will break the logic to detect the end of the schema + * name in the key. In order to accommodate this behavior, the schema + * name is now encoded as UTF8 which also has the advantage that we can + * decode the schema name. Standard prefix compression on the B+Tree + * should make up for the larger representation of the schema name in + * the B+Tree. + * <p> + * This change was introduced on 7/29/2010 in the trunk. When this + * property is <code>true</code> it breaks compatibility with earlier + * revisions of the {@link SparseRowStore}. This flag may be set to + * <code>false</code> for backward compatibility. + * + * @see #DEFAULT_SCHEMA_NAME_UNICODE_CLEAN + */ + String SCHEMA_NAME_UNICODE_CLEAN = Schema.class.getName() + + ".schemaName.unicodeClean"; + + /** + * @see https://sourceforge.net/apps/trac/bigdata/ticket/107 + */ + String DEFAULT_SCHEMA_NAME_UNICODE_CLEAN = "false"; + + /** * The primary key was originally written using a Unicode sort key. * However, the JDK generates Unicode sort keys with embedded nuls and * that broke the logic to detect the end of the Unicode primary keys. @@ -1083,6 +1107,17 @@ * This is a global option since it was always <code>false</code> for * historical stores. * + * @see Options#SCHEMA_NAME_UNICODE_CLEAN + */ + final static transient boolean schemaNameUnicodeClean = Boolean + .valueOf(System.getProperty( + SparseRowStore.Options.SCHEMA_NAME_UNICODE_CLEAN, + SparseRowStore.Options.DEFAULT_SCHEMA_NAME_UNICODE_CLEAN)); + + /** + * This is a global option since it was always <code>false</code> for + * historical stores. + * * @see Options#PRIMARY_KEY_UNICODE_CLEAN */ final static transient boolean primaryKeyUnicodeClean = Boolean Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/cache/TestAll.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/cache/TestAll.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/cache/TestAll.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -76,7 +76,8 @@ suite.addTestSuite(TestStoreAndAddressLRUCache.class); - suite.addTestSuite(TestHardReferenceGlobalLRU.class); + // Note: This implementation is not used. +// suite.addTestSuite(TestHardReferenceGlobalLRU.class); suite.addTestSuite(TestHardReferenceGlobalLRURecycler.class); Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestConcurrentJournal.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestConcurrentJournal.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestConcurrentJournal.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -971,190 +971,193 @@ } - /** - * Test verifies that an {@link ITx#UNISOLATED} task failure does not cause - * concurrent writers to abort. The test also verifies that the - * {@link Checkpoint} record for the named index is NOT updated since none - * of the tasks write anything on the index. - * - * @todo The assumptions for this test may have been invalidated by the - * recent (4/29) changes to the group commit and task commit protocol - * and this test might need to be reworked or rewritten. + /* + * @todo revisit this unit test. It's semantics appear to have aged. */ - public void test_writeService001() throws Exception { - - final Journal journal = new Journal(getProperties()); +// /** +// * Test verifies that an {@link ITx#UNISOLATED} task failure does not cause +// * concurrent writers to abort. The test also verifies that the +// * {@link Checkpoint} record for the named index is NOT updated since none +// * of the tasks write anything on the index. +// * +// * @todo The assumptions for this test may have been invalidated by the +// * recent (4/29) changes to the group commit and task commit protocol +// * and this test might need to be reworked or rewritten. +// */ +// public void test_writeService001() throws Exception { +// +// final Journal journal = new Journal(getProperties()); +// +// try { +// +// final String name = "test"; +// +// // Note: checkpoint for the newly registered index. +// final long checkpointAddr0; +// { +// +// journal.registerIndex(name,new IndexMetadata(name,UUID.randomUUID())); +// +// journal.commit(); +// +// checkpointAddr0 = journal.getIndex(name).getCheckpoint() +// .getCheckpointAddr(); +// +// } +// +// // the list of tasks to be run. +// final List<AbstractTask<Object>> tasks = new LinkedList<AbstractTask<Object>>(); +// +// // NOP +// tasks.add(new AbstractTask(journal, ITx.UNISOLATED, name) { +// protected String getTaskName() { +// return "a"; +// } +// protected Object doTask() throws Exception { +// assertEquals(checkpointAddr0, ((BTree) getIndex(name)) +// .getCheckpoint().getCheckpointAddr()); +// return null; +// } +// }); +// +// // throws exception. +// tasks.add(new AbstractTask(journal, ITx.UNISOLATED, name) { +// protected String getTaskName() { +// return "b"; +// } +// protected Object doTask() throws Exception { +// assertEquals(checkpointAddr0, ((BTree) getIndex(name)) +// .getCheckpoint().getCheckpointAddr()); +// throw new ForcedAbortException(); +// } +// }); +// +// // NOP +// tasks.add(new AbstractTask(journal, ITx.UNISOLATED, name) { +// protected String getTaskName() { +// return "c"; +// } +// protected Object doTask() throws Exception { +// assertEquals(checkpointAddr0, ((BTree) getIndex(name)) +// .getCheckpoint().getCheckpointAddr()); +// return null; +// } +// }); +// +// // the commit counter before we submit the tasks. +// final long commitCounter0 = journal.getRootBlockView() +// .getCommitCounter(); +// +// // the write service on which the tasks execute. +// final WriteExecutorService writeService = journal +// .getConcurrencyManager().getWriteService(); +// +// // the group commit count before we submit the tasks. +// final long groupCommitCount0 = writeService.getGroupCommitCount(); +// +// // the abort count before we submit the tasks. +// final long abortCount0 = writeService.getAbortCount(); +// +// // the #of failed tasks before we submit the tasks. +// final long failedTaskCount0 = writeService.getTaskFailedCount(); +// +// // the #of successfully tasks before we submit the tasks. +// final long successTaskCount0 = writeService.getTaskSuccessCount(); +// +// // the #of successfully committed tasks before we submit the tasks. +// final long committedTaskCount0 = writeService.getTaskCommittedCount(); +// +// // submit the tasks and await their completion. +// final List<Future<Object>> futures = journal.invokeAll( tasks ); +// +// /* +// * verify the #of commits on the journal is unchanged since nothing +// * is written by any of these tasks. +// * +// * The expectation is that the tasks that succeed make it into the +// * same commit group while the task that throws an exception does +// * not cause the commit group to be aborted. +// * +// * Note: The tasks will make it into the same commit group iff the +// * first task that completes is willing to wait for the others to +// * join the commit group. +// * +// * Note: The tasks have a dependency on the same resource so they +// * will be serialized (executed in a strict sequence). +// */ +// assertEquals("commitCounter", commitCounter0, journal +// .getRootBlockView().getCommitCounter()); +// +// // however, a group commit SHOULD have been performed. +// assertEquals("groupCommitCount", groupCommitCount0 + 1, writeService +// .getGroupCommitCount()); +// +// // NO aborts should have been performed. +// assertEquals("aboutCount", abortCount0, writeService.getAbortCount()); +// +// // ONE(1) tasks SHOULD have failed. +// assertEquals("failedTaskCount", failedTaskCount0 + 1, writeService. +// getTaskFailedCount()); +// +// // TWO(2) tasks SHOULD have succeeded. +// assertEquals("successTaskCount", successTaskCount0 + 2, writeService +// .getTaskSuccessCount()); +// +// // TWO(2) successfull tasks SHOULD have been committed. +// assertEquals("committedTaskCount", committedTaskCount0 + 2, writeService +// .getTaskCommittedCount()); +// +// assertEquals( 3, futures.size()); +// +// // tasks[0] +// { +// +// Future f = futures.get(0); +// +// assertTrue(f.isDone()); +// +// f.get(); // No exception expected. +// +// } +// +// // tasks[2] +// { +// +// Future f = futures.get(2); +// +// assertTrue(f.isDone()); +// +// f.get(); // No exception expected. +// +// } +// +// // tasks[1] +// { +// +// Future f = futures.get(1); +// +// assertTrue(f.isDone()); +// +// try { +// f.get(); +// fail("Expecting exception"); +// } catch(ExecutionException ex) { +// assertTrue(InnerCause.isInnerCause(ex, ForcedAbortException.class)); +// } +// +// } +// +// assertEquals(checkpointAddr0, journal.getIndex(name) +// .getCheckpoint().getCheckpointAddr()); +// +// } finally { +// +// journal.destroy(); +// +// } +// +// } - try { - - final String name = "test"; - - // Note: checkpoint for the newly registered index. - final long checkpointAddr0; - { - - journal.registerIndex(name,new IndexMetadata(name,UUID.randomUUID())); - - journal.commit(); - - checkpointAddr0 = journal.getIndex(name).getCheckpoint() - .getCheckpointAddr(); - - } - - // the list of tasks to be run. - final List<AbstractTask<Object>> tasks = new LinkedList<AbstractTask<Object>>(); - - // NOP - tasks.add(new AbstractTask(journal, ITx.UNISOLATED, name) { - protected String getTaskName() { - return "a"; - } - protected Object doTask() throws Exception { - assertEquals(checkpointAddr0, ((BTree) getIndex(name)) - .getCheckpoint().getCheckpointAddr()); - return null; - } - }); - - // throws exception. - tasks.add(new AbstractTask(journal, ITx.UNISOLATED, name) { - protected String getTaskName() { - return "b"; - } - protected Object doTask() throws Exception { - assertEquals(checkpointAddr0, ((BTree) getIndex(name)) - .getCheckpoint().getCheckpointAddr()); - throw new ForcedAbortException(); - } - }); - - // NOP - tasks.add(new AbstractTask(journal, ITx.UNISOLATED, name) { - protected String getTaskName() { - return "c"; - } - protected Object doTask() throws Exception { - assertEquals(checkpointAddr0, ((BTree) getIndex(name)) - .getCheckpoint().getCheckpointAddr()); - return null; - } - }); - - // the commit counter before we submit the tasks. - final long commitCounter0 = journal.getRootBlockView() - .getCommitCounter(); - - // the write service on which the tasks execute. - final WriteExecutorService writeService = journal - .getConcurrencyManager().getWriteService(); - - // the group commit count before we submit the tasks. - final long groupCommitCount0 = writeService.getGroupCommitCount(); - - // the abort count before we submit the tasks. - final long abortCount0 = writeService.getAbortCount(); - - // the #of failed tasks before we submit the tasks. - final long failedTaskCount0 = writeService.getTaskFailedCount(); - - // the #of successfully tasks before we submit the tasks. - final long successTaskCount0 = writeService.getTaskSuccessCount(); - - // the #of successfully committed tasks before we submit the tasks. - final long committedTaskCount0 = writeService.getTaskCommittedCount(); - - // submit the tasks and await their completion. - final List<Future<Object>> futures = journal.invokeAll( tasks ); - - /* - * verify the #of commits on the journal is unchanged since nothing - * is written by any of these tasks. - * - * The expectation is that the tasks that succeed make it into the - * same commit group while the task that throws an exception does - * not cause the commit group to be aborted. - * - * Note: The tasks will make it into the same commit group iff the - * first task that completes is willing to wait for the others to - * join the commit group. - * - * Note: The tasks have a dependency on the same resource so they - * will be serialized (executed in a strict sequence). - */ - assertEquals("commitCounter", commitCounter0, journal - .getRootBlockView().getCommitCounter()); - - // however, a group commit SHOULD have been performed. - assertEquals("groupCommitCount", groupCommitCount0 + 1, writeService - .getGroupCommitCount()); - - // NO aborts should have been performed. - assertEquals("aboutCount", abortCount0, writeService.getAbortCount()); - - // ONE(1) tasks SHOULD have failed. - assertEquals("failedTaskCount", failedTaskCount0 + 1, writeService. - getTaskFailedCount()); - - // TWO(2) tasks SHOULD have succeeded. - assertEquals("successTaskCount", successTaskCount0 + 2, writeService - .getTaskSuccessCount()); - - // TWO(2) successfull tasks SHOULD have been committed. - assertEquals("committedTaskCount", committedTaskCount0 + 2, writeService - .getTaskCommittedCount()); - - assertEquals( 3, futures.size()); - - // tasks[0] - { - - Future f = futures.get(0); - - assertTrue(f.isDone()); - - f.get(); // No exception expected. - - } - - // tasks[2] - { - - Future f = futures.get(2); - - assertTrue(f.isDone()); - - f.get(); // No exception expected. - - } - - // tasks[1] - { - - Future f = futures.get(1); - - assertTrue(f.isDone()); - - try { - f.get(); - fail("Expecting exception"); - } catch(ExecutionException ex) { - assertTrue(InnerCause.isInnerCause(ex, ForcedAbortException.class)); - } - - } - - assertEquals(checkpointAddr0, journal.getIndex(name) - .getCheckpoint().getCheckpointAddr()); - - } finally { - - journal.destroy(); - - } - - } - /** * Test verifies that a write on an index will cause the index to be * checkpointed when the task completes. @@ -1206,262 +1209,265 @@ } } - - /** - * Test verifies that a task failure causes accessed indices to be rolled - * back to their last checkpoint. - * - * FIXME write test where a task registers an index and then throws an - * exception. This will cause the index to have a checkpoint record that - * does not agree with {@link Name2Addr} for the last commit point. Verify - * that the index is not in fact available to another task that is executed - * after the failed task (it will be if we merely close the index and then - * re-open it since it will reopen from the last checkpoint NOT from the - * last commit point). - * - * FIXME write test where a tasks (a), (b) and (c) are submitted with - * invokeAll() in that order and require a lock on the same index. Task (a) - * writes on an existing index and completes normally. The index SHOULD be - * checkpointed and task (b) SHOULD be able to read the data written in task - * (a) and SHOULD be run in the same commit group. Task (b) then throws an - * exception. Verify that the index is rolledback to the checkpoint for (a) - * (vs the last commit point) using task (c) which will read on the same - * index looking for the correct checkpoint record and data in the index. - * This test will fail if (b) is not reading from the checkpoint written by - * (a) or if (c) reads from the last commit point rather than the checkpoint - * written by (a). - * - * FIXME write tests to verify that an {@link #abort()} causes all running - * tasks to be interrupted and have their write sets discarded (should it? - * Should an abort just be an shutdownNow() in response to some truely nasty - * problem?) + + /* + * @todo revisit this unit test. It's semantics appear to have aged. */ - public void test_writeService002()throws Exception { - - final Properties properties = new Properties(getProperties()); - - /* - * Note: restricting the thread pool size does not give us the control - * that we need because it results in each task running as its own - * commit group. - */ +// /** +// * Test verifies that a task failure causes accessed indices to be rolled +// * back to their last checkpoint. +// * +// * FIXME write test where a task registers an index and then throws an +// * exception. This will cause the index to have a checkpoint record that +// * does not agree with {@link Name2Addr} for the last commit point. Verify +// * that the index is not in fact available to another task that is executed +// * after the failed task (it will be if we merely close the index and then +// * re-open it since it will reopen from the last checkpoint NOT from the +// * last commit point). +// * +// * FIXME write test where a tasks (a), (b) and (c) are submitted with +// * invokeAll() in that order and require a lock on the same index. Task (a) +// * writes on an existing index and completes normally. The index SHOULD be +// * checkpointed and task (b) SHOULD be able to read the data written in task +// * (a) and SHOULD be run in the same commit group. Task (b) then throws an +// * exception. Verify that the index is rolledback to the checkpoint for (a) +// * (vs the last commit point) using task (c) which will read on the same +// * index looking for the correct checkpoint record and data in the index. +// * This test will fail if (b) is not reading from the checkpoint written by +// * (a) or if (c) reads from the last commit point rather than the checkpoint +// * written by (a). +// * +// * FIXME write tests to verify that an {@link #abort()} causes all running +// * tasks to be interrupted and have their write sets discarded (should it? +// * Should an abort just be an shutdownNow() in response to some truely nasty +// * problem?) +// */ +// public void test_writeService002()throws Exception { +// +// final Properties properties = new Properties(getProperties()); +// // /* -// * Note: Force the write service to be single threaded so that we can -// * control the order in which the tasks start by the order in which they -// * are submitted. +// * Note: restricting the thread pool size does not give us the control +// * that we need because it results in each task running as its own +// * commit group. // */ -// properties.setProperty(Options.WRITE_SERVICE_CORE_POOL_SIZE,"1"); -// properties.setProperty(Options.WRITE_SERVICE_MAXIMUM_POOL_SIZE,"1"); - - final Journal journal = new Journal(properties); - - try { - - final String name = "test"; - - // Note: checkpoint for the newly registered index. - final long checkpointAddr0; - { - - // register - journal.registerIndex(name); - - // commit. - journal.commit(); - - // note checkpoint for index. - checkpointAddr0 = journal.getIndex(name).getCheckpoint() - .getCheckpointAddr(); - - } - - // Note: commit counter before we invoke the tasks. - final long commitCounter = journal.getRootBlockView() - .getCommitCounter(); - - final WriteExecutorService writeService = journal - .getConcurrencyManager().getWriteService(); - - // Note: group commit counter before we invoke the tasks. - final long groupCommitCount0 = writeService.getGroupCommitCount(); - - // Note: #of failed tasks before we submit the tasks. - final long failedTaskCount0 = writeService.getTaskFailedCount(); - final long successTaskCount0 = writeService.getTaskSuccessCount(); - final long committedTaskCount0 = writeService.getTaskCommittedCount(); - - // Note: set by one of the tasks below. - final AtomicLong checkpointAddr2 = new AtomicLong(0L); - - final AtomicReference<Future<? extends Object>> futureB = new AtomicReference<Future<? extends Object>>(); - final AtomicReference<Future<? extends Object>> futureC = new AtomicReference<Future<? extends Object>>(); - final AtomicReference<Future<? extends Object>> futureD = new AtomicReference<Future<? extends Object>>(); - - /* - * Note: the setup for this test is a PITA. In order to exert full - * control over the order in which the tasks begin to execute we - * need to have each task submit the next itself. This is because it - * is possible for any of these tasks to be the first one to grab - * the exclusive lock on the necessary resource [name]. We can't - * solve this problem by restricting the #of threads that can run - * the tasks since that limits the size of the commit group. So we - * are stuck imposing serial execution using the behavior of the - * tasks themselves. - * - * Create the task objects in the reverse order of their execution. - */ - - // task (d) verifies expected rollback checkpoint was restored. - final AbstractTask d = new AbstractTask(journal,ITx.UNISOLATED,name){ - protected String getTaskName() {return "d";} - protected Object doTask() throws Exception { - // commit counter unchanged. - assertEquals("commitCounter", commitCounter, getJournal() - .getRootBlockView().getCommitCounter()); - if(checkpointAddr2.get()==0L) { - fail("checkpointAddr2 was not set"); - } - // lookup index. - BTree ndx = (BTree)getIndex(name); - final long newCheckpointAddr =ndx.getCheckpoint().getCheckpointAddr(); - // verify checkpoint != last committed checkpoint. - assertNotSame(checkpointAddr0,newCheckpointAddr); - // verify checkpoint == last rollback checkpoint. - assertEquals(checkpointAddr2.get(),newCheckpointAddr); - return null; - } - }; - - /* - * task (c) notes the last checkpoint, writes on the index, and then - * fails. This is designed to trigger rollback of the index to the - * last checkpoint, which is the checkpoint that we note at the - * start of this task. - */ - final AbstractTask c = new AbstractTask(journal,ITx.UNISOLATED,name){ - protected String getTaskName() {return "c";} - protected Object doTask() throws Exception { - // commit counter unchanged. - assertEquals("commitCounter", commitCounter, getJournal() - .getRootBlockView().getCommitCounter()); - // lookup index. - BTree ndx = (BTree)getIndex(name); - // note the last checkpoint written. - final long newCheckpointAddr = ndx.getCheckpoint().getCheckpointAddr(); - assertNotSame(0L,newCheckpointAddr); - assertNotSame(checkpointAddr0,newCheckpointAddr); - // make note of the checkpoint before we force an abort. - assertTrue("checkpointAddr2 already set?",checkpointAddr2.compareAndSet(0L, newCheckpointAddr)); - // write another record on the index. - ndx.insert(new byte[]{3}, new byte[]{3}); - // run task (d) next. - assertTrue(futureD.compareAndSet(null,journal.submit(d))); - // force task to about with dirty index. - throw new ForcedAbortException(); - } - }; - - // task (b) writes another record on the index. - final AbstractTask b = new AbstractTask(journal,ITx.UNISOLATED,name){ - protected String getTaskName() {return "b";} - protected Object doTask() throws Exception { - // commit counter unchanged. - assertEquals("commitCounter", commitCounter, getJournal() - .getRootBlockView().getCommitCounter()); - // lookup index. - BTree ndx = (BTree)getIndex(name); - // verify checkpoint was updated. - assertNotSame(checkpointAddr0,ndx.getCheckpoint().getCheckpointAddr()); - // write another record on the index. - ndx.insert(new byte[]{2}, new byte[]{2}); - // run task (c) next. - assertTrue(futureC.compareAndSet(null,journal.submit(c))); - return null; - } - }; - - // task (a) writes on index. - final AbstractTask a = new AbstractTask(journal,ITx.UNISOLATED,name){ - protected String getTaskName() {return "a";} - protected Object doTask() throws Exception { - // commit counter unchanged. - assertEquals("commitCounter", commitCounter, getJournal() - .getRootBlockView().getCommitCounter()); - // group commit counter unchanged. - assertEquals("groupCommitCounter", groupCommitCount0, - writeService.getGroupCommitCount()); - // lookup index. - BTree ndx = (BTree)getIndex(name); - // verify same checkpoint. - assertEquals(checkpointAddr0,ndx.getCheckpoint().getCheckpointAddr()); - // write record on the index. - ndx.insert(new byte[]{1}, new byte[]{1}); - // run task (b) next. - assertTrue(futureB.compareAndSet(null,journal.submit(b))); - return null; - } - }; - -// final List<AbstractTask> tasks = Arrays.asList(new AbstractTask[] { -// a,b,c,d -// }); +//// /* +//// * Note: Force the write service to be single threaded so that we can +//// * control the order in which the tasks start by the order in which they +//// * are submitted. +//// */ +//// properties.setProperty(Options.WRITE_SERVICE_CORE_POOL_SIZE,"1"); +//// properties.setProperty(Options.WRITE_SERVICE_MAXIMUM_POOL_SIZE,"1"); +// +// final Journal journal = new Journal(properties); +// +// try { +// +// final String name = "test"; +// +// // Note: checkpoint for the newly registered index. +// final long checkpointAddr0; +// { +// +// // register +// journal.registerIndex(name); +// +// // commit. +// journal.commit(); +// +// // note checkpoint for index. +// checkpointAddr0 = journal.getIndex(name).getCheckpoint() +// .getCheckpointAddr(); +// +// } +// +// // Note: commit counter before we invoke the tasks. +// final long commitCounter = journal.getRootBlockView() +// .getCommitCounter(); +// +// final WriteExecutorService writeService = journal +// .getConcurrencyManager().getWriteService(); +// +// // Note: group commit counter before we invoke the tasks. +// final long groupCommitCount0 = writeService.getGroupCommitCount(); +// +// // Note: #of failed tasks before we submit the tasks. +// final long failedTaskCount0 = writeService.getTaskFailedCount(); +// final long successTaskCount0 = writeService.getTaskSuccessCount(); +// final long committedTaskCount0 = writeService.getTaskCommittedCount(); +// +// // Note: set by one of the tasks below. +// final AtomicLong checkpointAddr2 = new AtomicLong(0L); +// +// final AtomicReference<Future<? extends Object>> futureB = new AtomicReference<Future<? extends Object>>(); +// final AtomicReference<Future<? extends Object>> futureC = new AtomicReference<Future<? extends Object>>(); +// final AtomicReference<Future<? extends Object>> futureD = new AtomicReference<Future<? extends Object>>(); // -// final List<Future<Object>> futures = journal.invokeAll( tasks ); - - final Future<? extends Object> futureA = journal.submit( a ); - - /* - * wait for (a). if all tasks are in the same commit group then all - * tasks will be done once we have the future for (a). - */ - futureA.get(); // task (a) - - /* - * The expectation is that the tasks that succeed make it into the - * same commit group while the task that throws an exception does - * not cause the commit group to be aborted. Therefore there should - * be ONE (1) commit more than when we submitted the tasks. - * - * Note: The tasks will make it into the same commit group iff the - * first task that completes is willing to wait for the others to - * join the commit group. - * - * Note: The tasks have a dependency on the same resource so they - * will be serialized (executed in a strict sequence). - */ - assertEquals("failedTaskCount", failedTaskCount0 + 1, - writeService.getTaskFailedCount()); - assertEquals("successTaskCount", successTaskCount0 + 3, - writeService.getTaskSuccessCount()); - assertEquals("committedTaskCount", committedTaskCount0 + 3, - writeService.getTaskCommittedCount()); - assertEquals("groupCommitCount", groupCommitCount0 + 1, - writeService.getGroupCommitCount()); - assertEquals("commitCounter", commitCounter + 1, journal - .getRootBlockView().getCommitCounter()); - -// assertEquals( 4, futures.size()); - - futureB.get().get(); // task (b) - { - // task (c) did the abort. - Future f = futureC.get(); - try {f.get(); fail("Expecting exception");} - catch(ExecutionException ex) { - if(!InnerCause.isInnerCause(ex, ForcedAbortException.class)) { - fail("Expecting "+ForcedAbortException.class+", not "+ex, ex); - } - } - } - futureD.get().get(); // task (d) - - } finally { - - journal.destroy(); - - } - - } +// /* +// * Note: the setup for this test is a PITA. In order to exert full +// * control over the order in which the tasks begin to execute we +// * need to have each task submit the next itself. This is because it +// * is possible for any of these tasks to be the first one to grab +// * the exclusive lock on the necessary resource [name]. We can't +// * solve this problem by restricting the #of threads that can run +// * the tasks since that limits the size of the commit group. So we +// * are stuck imposing serial execution using the behavior of the +// * tasks themselves. +// * +// * Create the task objects in the reverse order of their execution. +// */ +// +// // task (d) verifies expected rollback checkpoint was restored. +// final AbstractTask d = new AbstractTask(journal,ITx.UNISOLATED,name){ +// protected String getTaskName() {return "d";} +// protected Object doTask() throws Exception { +// // commit counter unchanged. +// assertEquals("commitCounter", commitCounter, getJournal() +// .getRootBlockView().getCommitCounter()); +// if(checkpointAddr2.get()==0L) { +// fail("checkpointAddr2 was not set"); +// } +// // lookup index. +// BTree ndx = (BTree)getIndex(name); +// final long newCheckpointAddr =ndx.getCheckpoint().getCheckpointAddr(); +// // verify checkpoint != last committed checkpoint. +// assertNotSame(checkpointAddr0,newCheckpointAddr); +// // verify checkpoint == last rollback checkpoint. +// assertEquals(checkpointAddr2.get(),newCheckpointAddr); +// return null; +// } +// }; +// +// /* +// * task (c) notes the last checkpoint, writes on the index, and then +// * fails. This is designed to trigger rollback of the index to the +// * last checkpoint, which is the checkpoint that we note at the +// * start of this task. +// */ +// final AbstractTask c = new AbstractTask(journal,ITx.UNISOLATED,name){ +// protected String getTaskName() {return "c";} +// protected Object doTask() throws Exception { +// // commit counter unchanged. +// assertEquals("commitCounter", commitCounter, getJournal() +// .getRootBlockView().getCommitCounter()); +// // lookup index. +// BTree ndx = (BTree)getIndex(name); +// // note the last checkpoint written. +// final long newCheckpointAddr = ndx.getCheckpoint().getCheckpointAddr(); +// assertNotSame(0L,newCheckpointAddr); +// assertNotSame(checkpointAddr0,newCheckpointAddr); +// // make note of the checkpoint before we force an abort. +// assertTrue("checkpointAddr2 already set?",checkpointAddr2.compareAndSet(0L, newCheckpointAddr)); +// // write another record on the index. +// ndx.insert(new byte[]{3}, new byte[]{3}); +// // run task (d) next. +// assertTrue(futureD.compareAndSet(null,journal.submit(d))); +// // force task to about with dirty index. +// throw new ForcedAbortException(); +// } +// }; +// +// // task (b) writes another record on the index. +// final AbstractTask b = new AbstractTask(journal,ITx.UNISOLATED,name){ +// protected String getTaskName() {return "b";} +// protected Object doTask() throws Exception { +// // commit counter unchanged. +// assertEquals("commitCounter", commitCounter, getJournal() +// .getRootBlockView().getCommitCounter()); +// // lookup index. +// BTree ndx = (BTree)getIndex(name); +// // verify checkpoint was updated. +// assertNotSame(checkpointAddr0,ndx.getCheckpoint().getCheckpointAddr()); +// // write another record on the index. +// ndx.insert(new byte[]{2}, new byte[]{2}); +// // run task (c) next. +// assertTrue(futureC.compareAndSet(null,journal.submit(c))); +// return null; +// } +// }; +// +// // task (a) writes on index. +// final AbstractTask a = new AbstractTask(journal,ITx.UNISOLATED,name){ +// protected String getTaskName() {return "a";} +// protected Object doTask() throws Exception { +// // commit counter unchanged. +// assertEquals("commitCounter", commitCounter, getJournal() +// .getRootBlockView().getCommitCounter()); +// // group commit counter unchanged. +// assertEquals("groupCommitCounter", groupCommitCount0, +// writeService.getGroupCommitCount()); +// // lookup index. +// BTree ndx = (BTree)getIndex(name); +// // verify same checkpoint. +// assertEquals(checkpointAddr0,ndx.getCheckpoint().getCheckpointAddr()); +// // write record on the index. +// ndx.insert(new byte[]{1}, new byte[]{1}); +// // run task (b) next. +// assertTrue(futureB.compareAndSet(null,journal.submit(b))); +// return null; +// } +// }; +// +//// final List<AbstractTask> tasks = Arrays.asList(new AbstractTask[] { +//// a,b,c,d +//// }); +//// +//// final List<Future<Object>> futures = journal.invokeAll( tasks ); +// +// final Future<? extends Object> futureA = journal.submit( a ); +// +// /* +// * wait for (a). if all tasks are in the same commit group then all +// * tasks will be done once we have the future for (a). +// */ +// futureA.get(); // task (a) +// +// /* +// * The expectation is that the tasks that succeed make it into the +// * same commit group while the task that throws an exception does +// * not cause the commit group to be aborted. Therefore there should +// * be ONE (1) commit more than when we submitted the tasks. +// * +// * Note: The tasks will make it into the same commit group iff the +// * first task that completes is willing to wait for the others to +// * join the commit group. +// * +// * Note: The tasks have a dependency on the same resource so they +// * will be serialized (executed in a strict sequence). +// */ +// assertEquals("failedTaskCount", failedTaskCount0 + 1, +// writeService.getTaskFailedCount()); +// assertEquals("successTaskCount", successTaskCount0 + 3, +// writeService.getTaskSuccessCount()); +// assertEquals("committedTaskCount", committedTaskCount0 + 3, +// writeService.getTaskCommittedCount()); +// assertEquals("groupCommitCount", groupCommitCount0 + 1, +// writeService.getGroupCommitCount()); +// assertEquals("commitCounter", commitCounter + 1, journal +// .getRootBlockView().getCommitCounter()); +// +//// assertEquals( 4, futures.size()); +// +// futureB.get().get(); // task (b) +// { +// // task (c) did the abort. +// Future f = futureC.get(); +// try {f.get(); fail("Expecting exception");} +// catch(ExecutionException ex) { +// if(!InnerCause.isInnerCause(ex, ForcedAbortException.class)) { +// fail("Expecting "+ForcedAbortException.class+", not "+ex, ex); +// } +// } +// } +// futureD.get().get(); // task (d) +// +// } finally { +// +// journal.destroy(); +// +// } +// +// } /** * A class used to force aborts on tasks and then recognize the abort by the Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestJournalBasics.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestJournalBasics.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestJournalBasics.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -104,8 +104,9 @@ // test basics of the concurrent task execution. suite.addTestSuite(TestConcurrentJournal.class); - // test tasks to add and drop named indices. - suite.addTestSuite(TestAddDropIndexTask.class); +// test tasks to add and drop named indices. +// This has been commented out since the unit test has dated semantics. +// suite.addTestSuite(TestAddDropIndexTask.class); // test writing on one or more unisolated indices and verify read back after the commit. suite.addTestSuite(TestUnisolatedWriteTasks.class); // stress test of throughput when lock contention serializes unisolated writers. Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/locator/TestDefaultResourceLocator.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/locator/TestDefaultResourceLocator.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/relation/locator/TestDefaultResourceLocator.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -163,9 +163,12 @@ namespace, ITx.UNISOLATED)) == mockRelation); /* - * the read-committed view still does not see the relation since - * there has not been a commit yet after the index was created. + * @todo The read-committed view still does not see the relation + * since there has not been a commit yet after the index was + * created. */ + if(false) { + assertNull(((MockRelation) store.getResourceLocator().locate( namespace, ITx.READ_COMMITTED))); @@ -207,6 +210,8 @@ assertTrue(readCommittedView2 == (MockRelation) store .getResourceLocator().locate(namespace, ITx.READ_COMMITTED)); + + } } Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/search/TestKeyBuilder.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/search/TestKeyBuilder.java 2010-07-30 09:50:35 UTC (rev 3370) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/search/TestKeyBuilder.java 2010-07-30 13:51:36 UTC (rev 3371) @@ -183,74 +183,77 @@ + BytesUtil.toString(b)); } - - /** - * @todo this test needs to populate an index with terms that would match if - * we were allowing a prefix match and then verify that the terms are - * NOT matched. it should also verify that terms that are exact - * matches are matched. - * - * @todo also test ability to extract the docId and fieldId from the key. - * - * @todo refactor into an {@link ITupleSerializer}. - * - * @todo make the fieldId optional in the key. this needs to be part of the - * state of the {@link ITupleSerializer}. - */ - public void test_exactMatch_unicode() { - - final IKeyBuilder keyBuilder = getKeyBuilder(); - - final long docId = 0L; - - final int fieldId = 0; - - // the full term. - final byte[] ter... [truncated message content] |
From: <btm...@us...> - 2010-07-30 22:14:25
|
Revision: 3379 http://bigdata.svn.sourceforge.net/bigdata/?rev=3379&view=rev Author: btmurphy Date: 2010-07-30 22:14:17 +0000 (Fri, 30 Jul 2010) Log Message: ----------- merge -r:3370:HEAD(3378) ~/bigdata/trunk ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BigdataMap.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/IKeyBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractBTreeTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractTupleCursorTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBTreeLeafCursors.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBigdataMap.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestChunkedIterators.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestCopyOnWrite.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestDirtyIterators.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIncrementalWrite.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentBuilderCacheInteraction.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentBuilderWithCompactingMerge.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentBuilderWithIncrementalBuild.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentBuilderWithSmallTree.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentWithBloomFilter.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestInsertLookupRemoveKeysInRootLeaf.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIterators.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestLinearListMethods.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestMutableBTreeCursors.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestReopen.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestSplitJoinRootLeaf.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestSplitJoinThreeLevels.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestSplitRootLeaf.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestTouch.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestTransientBTree.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/filter/TestTupleFilters.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/keys/AbstractUnicodeKeyBuilderTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/keys/TestKeyBuilder.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/keys/TestSuccessorUtil.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/raba/codec/AbstractRabaCoderTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/raba/codec/RandomURIGenerator.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestBuildTask.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestBuildTask2.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestMergeTask.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestOverflow.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestResourceManagerBootstrap.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestSegSplitter.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestMove.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestRangeQuery.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestRestartSafe.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestScatterSplit.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestSplitJoin.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/ndx/pipeline/TestMasterTaskWithSplits.java branches/bugfix-btm/bigdata-jini/src/test/com/bigdata/service/jini/TestBigdataClient.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/BlobOverflowHandler.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPO.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPORelation.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOTupleSerializer.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOValueCoders.java Property Changed: ---------------- branches/bugfix-btm/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-perf/btc/src/ branches/bugfix-btm/bigdata-perf/lubm/lib/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/ branches/bugfix-btm/bigdata-perf/uniprot/src/ branches/bugfix-btm/dsi-utils/src/java/ branches/bugfix-btm/dsi-utils/src/test/ Property changes on: branches/bugfix-btm ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3370 + /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3378 Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BigdataMap.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BigdataMap.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BigdataMap.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -58,21 +58,21 @@ * Note: The total order of the {@link BigdataMap} is completely determined by * {@link ITupleSerializer#serializeKey(Object)}. There is NO concept of a * {@link Comparator}. The {@link ITupleSerializer} is responsible for coercing - * application keys into variable length <strong>unsigned</strong> byte[]s - * which are the keys for the underlying B+Tree. The order for the B+Tree is the + * application keys into variable length <strong>unsigned</strong> byte[]s which + * are the keys for the underlying B+Tree. The order for the B+Tree is the * natural order for the <strong>unsigned byte[]</strong>s. {@link KeyBuilder} * supports the generation of unsigned byte[]s from various kinds of Java * primitives and Unicode {@link String}s and is typically used to write the * {@link ITupleSerializer#serializeKey(Object)} method. * <p> - * Note: The coercion of the application keys into unsigned byte[]s is not - * typesafe unless you either consistently use a strongly typed instance of this + * Note: The coercion of the application keys into unsigned byte[]s is not type + * safe unless you either consistently use a strongly typed instance of this * class or specify an {@link ITupleSerializer} for the backing B+Tree that only * allows application keys that are instances of acceptable classes. This issue * is more critical for keys than for values since the keys define the total * index order and the default coercion rules for keys are provided by - * {@link KeyBuilder#asSortKey(Object)} which does not attenpt to partition the - * key space by the application key type (keys are not safely polymorphic by + * {@link KeyBuilder#append(Object)} which does not attempt to partition the key + * space by the application key type (keys are not safely polymorphic by * default). * <p> * Note: When storing Java objects in the tuple value, the value MUST be treated Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/IKeyBuilder.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/IKeyBuilder.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/IKeyBuilder.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -33,6 +33,7 @@ import java.util.Locale; import java.util.Properties; import java.util.UUID; + import com.bigdata.btree.BytesUtil; import com.bigdata.btree.keys.KeyBuilder.Options; @@ -88,7 +89,6 @@ * {@link #appendText(String, boolean, boolean)}. * </p> * - * @see KeyBuilder#asSortKey(Object) * @see KeyBuilder#newInstance() * @see KeyBuilder#newUnicodeInstance() * @see KeyBuilder#newUnicodeInstance(Properties) @@ -97,7 +97,7 @@ * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * @version $Id$ */ -public interface IKeyBuilder extends ISortKeyBuilder { +public interface IKeyBuilder extends ISortKeyBuilder<Object> { /** * The #of bytes of data in the key. Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/KeyBuilder.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -1065,78 +1065,8 @@ } - /* - * static helper methods. - */ - - /** - * Used to unbox an application key (convert it to an unsigned byte[]). - */ - static private final IKeyBuilder _keyBuilder = newUnicodeInstance(); - - /** - * Utility method converts an application key to a sort key (an unsigned - * byte[] that imposes the same sort order). - * <p> - * Note: This method is thread-safe. - * <p> - * Note: Strings are Unicode safe for the default locale. See - * {@link Locale#getDefault()}. If you require a specific local or different - * locals at different times or for different indices then you MUST - * provision and apply your own {@link KeyBuilder}. - * - * @param val - * An application key. - * - * @return The unsigned byte[] equivalent of that key. This will be - * <code>null</code> iff the <i>key</i> is <code>null</code>. If the - * <i>key</i> is a byte[], then the byte[] itself will be returned. - * - * @deprecated This method circumvents explicit configuration of the - * {@link KeyBuilder} and is used nearly exclusively by unit - * tests. While explicit configuration is not required for keys - * which do not include Unicode sort key components, this method - * also relies on a single global {@link KeyBuilder} instance - * protected by a lock. That lock is therefore a bottleneck. The - * correct practice is to use thread-local or per task - * {@link IKeyBuilder}s to avoid lock contention. - */ - @SuppressWarnings("unchecked") - public static final byte[] asSortKey(Object val) { + public byte[] getSortKey(final Object val) { - if (val == null) { - - return null; - - } - - if (val instanceof byte[]) { - - return (byte[]) val; - - } - - /* - * Synchronize on the keyBuilder to avoid concurrent modification of its - * state. - */ - - synchronized (_keyBuilder) { - - return _keyBuilder.getSortKey(val); - -// _keyBuilder.reset(); -// -// _keyBuilder.append( key ); -// -// return _keyBuilder.getKey(); - - } - - } - - public byte[] getSortKey(Object val) { - reset(); append( val ); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/Schema.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -141,7 +141,7 @@ /* * One time encoding of the schema name as a Unicode sort key. */ - schemaBytes = KeyBuilder.asSortKey(name); + schemaBytes = asSortKey(name); } } @@ -501,5 +501,51 @@ + ",primaryKeyType=" + getPrimaryKeyType() + "}"; } + + /** + * Used for historical compatibility to unbox an application key (convert it + * to an unsigned byte[]). + */ + static private final IKeyBuilder _keyBuilder = KeyBuilder.newUnicodeInstance(); + + /** + * Utility method for historical compatibility converts an application key + * to a sort key (an unsigned byte[] that imposes the same sort order). + * <p> + * Note: This method is thread-safe. + * + * @param val + * An application key. + * + * @return The unsigned byte[] equivalent of that key. This will be + * <code>null</code> iff the <i>key</i> is <code>null</code>. If the + * <i>key</i> is a byte[], then the byte[] itself will be returned. + */ + private static final byte[] asSortKey(final Object val) { + + if (val == null) { + + return null; + + } + + if (val instanceof byte[]) { + + return (byte[]) val; + + } + + /* + * Synchronize on the keyBuilder to avoid concurrent modification of its + * state. + */ + + synchronized (_keyBuilder) { + + return _keyBuilder.getSortKey(val); + + } + } + } Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractBTreeTestCase.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractBTreeTestCase.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractBTreeTestCase.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -49,6 +49,7 @@ import com.bigdata.btree.keys.IKeyBuilder; import com.bigdata.btree.keys.KV; import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; import com.bigdata.btree.raba.IRaba; import com.bigdata.btree.raba.codec.RandomKeysGenerator; import com.bigdata.cache.HardReferenceQueue; @@ -1097,7 +1098,7 @@ assertEquals("#entries",i,btree.nentries); - final byte[] key = KeyBuilder.asSortKey(ikey); + final byte[] key = TestKeyBuilder.asSortKey(ikey); assertNull(btree.lookup(key)); @@ -1133,7 +1134,7 @@ for( int i=0; i<keys.length; i++ ) { - byte[] key = KeyBuilder.asSortKey(keys[i]); + byte[] key = TestKeyBuilder.asSortKey(keys[i]); assertEquals(entries[i],btree.lookup(key)); assertEquals(entries[i],btree.remove(key)); @@ -1216,7 +1217,7 @@ assertEquals("#entries",i,btree.nentries); - final byte[] key = KeyBuilder.asSortKey(ikey); + final byte[] key = TestKeyBuilder.asSortKey(ikey); assertNull(btree.lookup(key)); @@ -1252,7 +1253,7 @@ for( int i=0; i<keys.length; i++ ) { - final byte[] key = KeyBuilder.asSortKey(keys[i]); + final byte[] key = TestKeyBuilder.asSortKey(keys[i]); assertEquals(entries[i],btree.lookup(key)); assertEquals(entries[i],btree.remove(key)); @@ -1497,7 +1498,7 @@ assertEquals("#entries", i, btree.nentries); - final byte[] key = KeyBuilder.asSortKey(ikey); + final byte[] key = TestKeyBuilder.asSortKey(ikey); assertNull(btree.lookup(key)); @@ -1687,7 +1688,7 @@ assertEquals("#entries",i,btree.nentries); - final byte[] key = KeyBuilder.asSortKey(ikey); + final byte[] key = TestKeyBuilder.asSortKey(ikey); assertNull(btree.lookup(key)); @@ -1774,7 +1775,7 @@ final Integer ikey = keys[index]; - final byte[] key = KeyBuilder.asSortKey(ikey); + final byte[] key = TestKeyBuilder.asSortKey(ikey); final SimpleEntry val = vals[index]; @@ -1816,7 +1817,7 @@ Map.Entry<Integer,SimpleEntry> entry = itr.next(); - final byte[] tmp = KeyBuilder.asSortKey(entry.getKey()); + final byte[] tmp = TestKeyBuilder.asSortKey(entry.getKey()); assertEquals("lookup(" + entry.getKey() + ")", entry .getValue(), btree.lookup(tmp)); @@ -1855,7 +1856,7 @@ for( int i=0; i<nkeys; i++ ) { - keys[i] = KeyBuilder.asSortKey(i+1); // Note: this produces dense keys with origin ONE(1). + keys[i] = TestKeyBuilder.asSortKey(i+1); // Note: this produces dense keys with origin ONE(1). vals[i] = new SimpleEntry(); @@ -2597,7 +2598,7 @@ for (int i = 0; i < N; i++) { // @todo param governs chance of a key collision and maximum #of distinct keys. - final byte[] key = KeyBuilder.asSortKey(r.nextInt(100000)); + final byte[] key = TestKeyBuilder.asSortKey(r.nextInt(100000)); // Note: #of bytes effects very little that we want to test so we keep it small. final byte[] val = new byte[4]; Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractTupleCursorTestCase.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractTupleCursorTestCase.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractTupleCursorTestCase.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -33,7 +33,7 @@ import junit.framework.TestCase2; -import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; import com.bigdata.btree.raba.ReadOnlyKeysRaba; import com.bigdata.rawstore.SimpleMemoryRawStore; @@ -287,65 +287,65 @@ // seek to a probe key that does not exist. assertEquals(null, cursor.seek(29)); assertEquals(null, cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(29),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(29),cursor.currentKey()); assertTrue(cursor.hasNext()); assertEquals(new TestTuple<String>(30, "James"), cursor.next()); assertEquals(new TestTuple<String>(30, "James"), cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(30),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(30),cursor.currentKey()); assertFalse(cursor.hasNext()); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.prior()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(20),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(20),cursor.currentKey()); // seek to a probe key that does not exist. assertEquals(null, cursor.seek(9)); assertEquals(null, cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(9),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(9),cursor.currentKey()); assertTrue(cursor.hasNext()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.next()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(10),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(10),cursor.currentKey()); assertFalse(cursor.hasPrior()); assertTrue(cursor.hasNext()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.next()); - assertEquals(KeyBuilder.asSortKey(20),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(20),cursor.currentKey()); // seek to a probe key that does not exist and scan forward. assertEquals(null, cursor.seek(19)); assertEquals(null, cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(19),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(19),cursor.currentKey()); assertTrue(cursor.hasNext()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.next()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(20),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(20),cursor.currentKey()); assertTrue(cursor.hasNext()); assertEquals(new TestTuple<String>(30, "James"), cursor.next()); assertEquals(new TestTuple<String>(30, "James"), cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(30),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(30),cursor.currentKey()); // seek to a probe key that does not exist and scan backward. assertEquals(null, cursor.seek(19)); assertEquals(null, cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(19),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(19),cursor.currentKey()); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.prior()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.tuple()); - assertEquals(KeyBuilder.asSortKey(10),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(10),cursor.currentKey()); assertFalse(cursor.hasPrior()); // seek to a probe key that does not exist (after all valid tuples). assertEquals(null, cursor.seek(31)); assertEquals(null, cursor.tuple()); assertTrue(cursor.isCursorPositionDefined()); - assertEquals(KeyBuilder.asSortKey(31),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(31),cursor.currentKey()); assertFalse(cursor.hasNext()); // seek to a probe key that does not exist (after all valid tuples). assertEquals(null, cursor.seek(31)); assertEquals(null, cursor.tuple()); assertTrue(cursor.isCursorPositionDefined()); - assertEquals(KeyBuilder.asSortKey(31),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(31),cursor.currentKey()); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(30, "James"), cursor.prior()); @@ -369,9 +369,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(10); + final byte[] fromKey = TestKeyBuilder.asSortKey(10); - final byte[] toKey = KeyBuilder.asSortKey(20); + final byte[] toKey = TestKeyBuilder.asSortKey(20); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); @@ -412,9 +412,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(20); + final byte[] fromKey = TestKeyBuilder.asSortKey(20); - final byte[] toKey = KeyBuilder.asSortKey(30); + final byte[] toKey = TestKeyBuilder.asSortKey(30); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); @@ -458,9 +458,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(10); + final byte[] fromKey = TestKeyBuilder.asSortKey(10); - final byte[] toKey = KeyBuilder.asSortKey(19); + final byte[] toKey = TestKeyBuilder.asSortKey(19); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); @@ -471,7 +471,7 @@ // assertEquals(KeyBuilder.asSortKey(19),cursor.currentKey()); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(10),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(10),cursor.currentKey()); assertFalse(cursor.hasPrior()); } @@ -481,19 +481,19 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(10); + final byte[] fromKey = TestKeyBuilder.asSortKey(10); - final byte[] toKey = KeyBuilder.asSortKey(29); + final byte[] toKey = TestKeyBuilder.asSortKey(29); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(20),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(20),cursor.currentKey()); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(10),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(10),cursor.currentKey()); assertFalse(cursor.hasPrior()); } @@ -503,16 +503,16 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(10); + final byte[] fromKey = TestKeyBuilder.asSortKey(10); - final byte[] toKey = KeyBuilder.asSortKey(11); + final byte[] toKey = TestKeyBuilder.asSortKey(11); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(10),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(10),cursor.currentKey()); assertFalse(cursor.hasPrior()); } @@ -574,15 +574,15 @@ assertEquals("ntuples", 5, btree.getEntryCount()); // The separator key is (30). - assertEquals(KeyBuilder.asSortKey(30), ((Node) btree.getRoot()) + assertEquals(TestKeyBuilder.asSortKey(30), ((Node) btree.getRoot()) .getKeys().get(0)); // Verify the expected keys in the 1st leaf. AbstractBTreeTestCase.assertKeys( // new ReadOnlyKeysRaba(new byte[][] {// - KeyBuilder.asSortKey(10), // - KeyBuilder.asSortKey(20), // + TestKeyBuilder.asSortKey(10), // + TestKeyBuilder.asSortKey(20), // }),// ((Node) btree.getRoot()).getChild(0/* 1st leaf */).getKeys()); @@ -590,9 +590,9 @@ AbstractBTreeTestCase.assertKeys( // new ReadOnlyKeysRaba(new byte[][] {// - KeyBuilder.asSortKey(30), // - KeyBuilder.asSortKey(40), // - KeyBuilder.asSortKey(50),// + TestKeyBuilder.asSortKey(30), // + TestKeyBuilder.asSortKey(40), // + TestKeyBuilder.asSortKey(50),// }),// ((Node) btree.getRoot()).getChild(1/* 2nd leaf */).getKeys()); @@ -627,16 +627,16 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(10); + final byte[] fromKey = TestKeyBuilder.asSortKey(10); - final byte[] toKey = KeyBuilder.asSortKey(30); + final byte[] toKey = TestKeyBuilder.asSortKey(30); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(20),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(20),cursor.currentKey()); } @@ -647,16 +647,16 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(0); + final byte[] fromKey = TestKeyBuilder.asSortKey(0); - final byte[] toKey = KeyBuilder.asSortKey(19); + final byte[] toKey = TestKeyBuilder.asSortKey(19); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(10, "Bryan"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(10),cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(10),cursor.currentKey()); assertFalse(cursor.hasPrior()); } @@ -668,9 +668,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(0); + final byte[] fromKey = TestKeyBuilder.asSortKey(0); - final byte[] toKey = KeyBuilder.asSortKey(9); + final byte[] toKey = TestKeyBuilder.asSortKey(9); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); @@ -698,7 +698,7 @@ * Verify that the separatorKey in the parent is the first tuple we * expect to find in the 2nd leaf. */ - assertEquals(KeyBuilder.asSortKey(30), ((Node) btree.getRoot()) + assertEquals(TestKeyBuilder.asSortKey(30), ((Node) btree.getRoot()) .getKeys().get(0)); /* @@ -711,29 +711,29 @@ // Remove the first tuple in the 2nd leaf. btree.remove(30); // The separator key has not been changed. - assertEquals(((Node) btree.getRoot()).getKeys().get(0), KeyBuilder + assertEquals(((Node) btree.getRoot()).getKeys().get(0), TestKeyBuilder .asSortKey(30)); // The #of leaves has not been changed. assertEquals(2, btree.getLeafCount()); // Verify the expected keys in the 2nd leaf. AbstractBTreeTestCase.assertKeys(// new ReadOnlyKeysRaba(new byte[][]{// - KeyBuilder.asSortKey(40),// - KeyBuilder.asSortKey(50),// + TestKeyBuilder.asSortKey(40),// + TestKeyBuilder.asSortKey(50),// }),// ((Node) btree.getRoot()).getChild(1/*2nd leaf*/).getKeys()); - final byte[] fromKey = KeyBuilder.asSortKey(10); + final byte[] fromKey = TestKeyBuilder.asSortKey(10); // search for the tuple we just deleted from the 2nd leaf. - final byte[] toKey = KeyBuilder.asSortKey(30); + final byte[] toKey = TestKeyBuilder.asSortKey(30); final ITupleCursor2<String> cursor = newCursor(btree, IRangeQuery.DEFAULT, fromKey, toKey); assertTrue(cursor.hasPrior()); assertEquals(new TestTuple<String>(20, "Mike"), cursor.prior()); - assertEquals(KeyBuilder.asSortKey(20), cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(20), cursor.currentKey()); assertTrue(cursor.hasPrior()); } @@ -862,9 +862,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(2); + final byte[] fromKey = TestKeyBuilder.asSortKey(2); - final byte[] toKey = KeyBuilder.asSortKey(7); + final byte[] toKey = TestKeyBuilder.asSortKey(7); // first() { @@ -1107,7 +1107,7 @@ assertNull(cursor.seek(1)); - assertEquals(KeyBuilder.asSortKey(1), cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.currentKey()); assertFalse(cursor.hasPrior()); @@ -1141,9 +1141,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(5); + final byte[] fromKey = TestKeyBuilder.asSortKey(5); - final byte[] toKey = KeyBuilder.asSortKey(9); + final byte[] toKey = TestKeyBuilder.asSortKey(9); // first() { @@ -1237,7 +1237,7 @@ assertNull(cursor.seek(7)); - assertEquals(KeyBuilder.asSortKey(7), cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(7), cursor.currentKey()); assertFalse(cursor.hasPrior()); @@ -1254,9 +1254,9 @@ */ { - final byte[] fromKey = KeyBuilder.asSortKey(15); + final byte[] fromKey = TestKeyBuilder.asSortKey(15); - final byte[] toKey = KeyBuilder.asSortKey(19); + final byte[] toKey = TestKeyBuilder.asSortKey(19); // first() { @@ -1338,7 +1338,7 @@ assertNull(cursor.seek(17)); - assertEquals(KeyBuilder.asSortKey(17), cursor.currentKey()); + assertEquals(TestKeyBuilder.asSortKey(17), cursor.currentKey()); assertFalse(cursor.hasPrior()); Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBTreeLeafCursors.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBTreeLeafCursors.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBTreeLeafCursors.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -33,7 +33,7 @@ import junit.framework.TestCase2; import com.bigdata.btree.BTree.Stack; -import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; import com.bigdata.rawstore.SimpleMemoryRawStore; /** @@ -125,56 +125,56 @@ ILeafCursor<Leaf> cursor = btree.newLeafCursor(SeekEnum.First); // verify first leaf since that is where we positioned the cursor. - assertEquals(KeyBuilder.asSortKey(1), cursor.leaf().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.leaf().getKeys().get(0)); // first(). - assertEquals(KeyBuilder.asSortKey(1), cursor.first().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.first().getKeys().get(0)); // last(). - assertEquals(KeyBuilder.asSortKey(9), cursor.last().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(9), cursor.last().getKeys().get(0)); } public void test_seek() { - ILeafCursor<Leaf> cursor = btree.newLeafCursor(KeyBuilder.asSortKey(5)); + ILeafCursor<Leaf> cursor = btree.newLeafCursor(TestKeyBuilder.asSortKey(5)); // verify initial seek. - assertEquals(KeyBuilder.asSortKey(5), cursor.leaf().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(5), cursor.leaf().getKeys().get(0)); // verify seek to each key found in the B+Tree. - assertEquals(KeyBuilder.asSortKey(1), cursor.seek( - KeyBuilder.asSortKey(1)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.seek( + TestKeyBuilder.asSortKey(1)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(1), cursor.seek( - KeyBuilder.asSortKey(2)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.seek( + TestKeyBuilder.asSortKey(2)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(3), cursor.seek( - KeyBuilder.asSortKey(3)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(3), cursor.seek( + TestKeyBuilder.asSortKey(3)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(3), cursor.seek( - KeyBuilder.asSortKey(4)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(3), cursor.seek( + TestKeyBuilder.asSortKey(4)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(5), cursor.seek( - KeyBuilder.asSortKey(5)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(5), cursor.seek( + TestKeyBuilder.asSortKey(5)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(5), cursor.seek( - KeyBuilder.asSortKey(6)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(5), cursor.seek( + TestKeyBuilder.asSortKey(6)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(7), cursor.seek( - KeyBuilder.asSortKey(7)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(7), cursor.seek( + TestKeyBuilder.asSortKey(7)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(7), cursor.seek( - KeyBuilder.asSortKey(8)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(7), cursor.seek( + TestKeyBuilder.asSortKey(8)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(9), cursor.seek( - KeyBuilder.asSortKey(9)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(9), cursor.seek( + TestKeyBuilder.asSortKey(9)).getKeys().get(0)); - assertEquals(KeyBuilder.asSortKey(9), cursor.seek( - KeyBuilder.asSortKey(10)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(9), cursor.seek( + TestKeyBuilder.asSortKey(10)).getKeys().get(0)); // verify seek to key that would be in the last leaf but is not actually in the B+Tree. - assertEquals(KeyBuilder.asSortKey(9),cursor.seek(KeyBuilder.asSortKey(12)).getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(9),cursor.seek(TestKeyBuilder.asSortKey(12)).getKeys().get(0)); } @@ -184,19 +184,19 @@ ILeafCursor<Leaf> cursor = btree.newLeafCursor(SeekEnum.First); // verify first leaf since that is where we positioned the cursor. - assertEquals(KeyBuilder.asSortKey(1), cursor.leaf().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.leaf().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(3), cursor.next().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(3), cursor.next().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(5), cursor.next().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(5), cursor.next().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(7), cursor.next().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(7), cursor.next().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(9), cursor.next().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(9), cursor.next().getKeys().get(0)); } @@ -205,19 +205,19 @@ ILeafCursor<Leaf> cursor = btree.newLeafCursor(SeekEnum.Last); // verify last leaf since that is where we positioned the cursor. - assertEquals(KeyBuilder.asSortKey(9), cursor.leaf().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(9), cursor.leaf().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(7), cursor.prior().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(7), cursor.prior().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(5), cursor.prior().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(5), cursor.prior().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(3), cursor.prior().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(3), cursor.prior().getKeys().get(0)); // next(). - assertEquals(KeyBuilder.asSortKey(1), cursor.prior().getKeys().get(0)); + assertEquals(TestKeyBuilder.asSortKey(1), cursor.prior().getKeys().get(0)); } @@ -247,7 +247,7 @@ for (int i = 1; i <= 10; i++) { - btree.insert(KeyBuilder.asSortKey(i), "v"+i); + btree.insert(TestKeyBuilder.asSortKey(i), "v"+i); } Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBigdataMap.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBigdataMap.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestBigdataMap.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -39,7 +39,7 @@ import com.bigdata.btree.keys.DefaultKeyBuilderFactory; import com.bigdata.btree.keys.IKeyBuilderFactory; -import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; import com.bigdata.io.SerializerUtil; import com.bigdata.rawstore.SimpleMemoryRawStore; @@ -163,7 +163,7 @@ * Handles {@link String} keys and values and makes the keys available for * {@link BigdataMap} and {@link BigdataSet} (under the assumption that the * key and the value are the same!). The actual index order is governed by - * {@link KeyBuilder#asSortKey(Object)}. + * {@link TestKeyBuilder#asSortKey(Object)}. * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * @version $Id$ Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestChunkedIterators.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestChunkedIterators.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestChunkedIterators.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -36,6 +36,7 @@ import com.bigdata.btree.filter.TupleFilter; import com.bigdata.btree.keys.DefaultKeyBuilderFactory; import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; import com.bigdata.io.SerializerUtil; import com.bigdata.rawstore.IBlock; import com.bigdata.rawstore.SimpleMemoryRawStore; @@ -109,7 +110,7 @@ for(int i=0; i<nentries; i++) { - keys[i] = KeyBuilder.asSortKey(i); + keys[i] = TestKeyBuilder.asSortKey(i); vals[i] = new byte[4]; @@ -203,7 +204,7 @@ for(int i=0; i<nentries; i++) { - keys[i] = KeyBuilder.asSortKey(i); + keys[i] = TestKeyBuilder.asSortKey(i); vals[i] = new byte[4]; @@ -337,7 +338,7 @@ for(int i=0; i<nentries; i++) { - keys[i] = KeyBuilder.asSortKey(i); + keys[i] = TestKeyBuilder.asSortKey(i); vals[i] = new byte[4]; @@ -425,7 +426,7 @@ for(int i=0; i<nentries; i++) { - keys[i] = KeyBuilder.asSortKey(i); + keys[i] = TestKeyBuilder.asSortKey(i); vals[i] = new byte[4]; Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestCopyOnWrite.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestCopyOnWrite.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestCopyOnWrite.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -29,7 +29,7 @@ import org.apache.log4j.Level; -import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; /** * Test suite for copy-on-write semantics. Among other things the tests in this @@ -79,12 +79,12 @@ SimpleEntry v9 = new SimpleEntry(9); // fill up the root leaf. - btree.insert(KeyBuilder.asSortKey(3), v3); - btree.insert(KeyBuilder.asSortKey(5), v5); - btree.insert(KeyBuilder.asSortKey(7), v7); + btree.insert(TestKeyBuilder.asSortKey(3), v3); + btree.insert(TestKeyBuilder.asSortKey(5), v5); + btree.insert(TestKeyBuilder.asSortKey(7), v7); // split the root leaf. - btree.insert(KeyBuilder.asSortKey(9), v9); + btree.insert(TestKeyBuilder.asSortKey(9), v9); final Node c = (Node) btree.root; assertKeys(new int[]{7},c); assertEquals(a,c.getChild(0)); @@ -100,8 +100,8 @@ * split another leaf so that there are now three children to visit. at * this point the root is full. */ - btree.insert(KeyBuilder.asSortKey(1), v1); - btree.insert(KeyBuilder.asSortKey(2), v2); + btree.insert(TestKeyBuilder.asSortKey(1), v1); + btree.insert(TestKeyBuilder.asSortKey(2), v2); assertKeys(new int[]{3,7},c); assertEquals(a,c.getChild(0)); Leaf d = (Leaf)c.getChild(1); @@ -141,7 +141,7 @@ * triggers copy-on-write for (a). (a1) is dirty as a post-condition. * (d) is deleted as a post-condition. */ - assertEquals(v1,btree.remove(KeyBuilder.asSortKey(1))); + assertEquals(v1,btree.remove(TestKeyBuilder.asSortKey(1))); assertKeys(new int[]{7},c); assertNotSame(a,c.getChild(0)); final Leaf a1 = (Leaf)c.getChild(0); @@ -160,7 +160,7 @@ * insert a key that will go into (b). since (b) is immutable this * triggers copy-on-write. */ - btree.insert(KeyBuilder.asSortKey(8),v8); + btree.insert(TestKeyBuilder.asSortKey(8),v8); assertKeys(new int[]{7},c); assertEquals(a1,c.getChild(0)); assertNotSame(b,c.getChild(1)); @@ -194,7 +194,7 @@ * (b1) is clean, so it is stolen by setting its parent reference * to the new (c1). */ - assertEquals(v2,btree.remove(KeyBuilder.asSortKey(2))); + assertEquals(v2,btree.remove(TestKeyBuilder.asSortKey(2))); assertNotSame(c,btree.root); final Node c1 = (Node)btree.root; assertKeys(new int[]{7},c1); @@ -245,14 +245,14 @@ * copy-on-write. We verify that the root leaf reference is changed. */ assertEquals(a,btree.root); - btree.insert(KeyBuilder.asSortKey(3), v3); + btree.insert(TestKeyBuilder.asSortKey(3), v3); assertNotSame(a,btree.root); a = (Leaf)btree.root; // new reference for the root leaf. - btree.insert(KeyBuilder.asSortKey(5), v5); - btree.insert(KeyBuilder.asSortKey(7), v7); + btree.insert(TestKeyBuilder.asSortKey(5), v5); + btree.insert(TestKeyBuilder.asSortKey(7), v7); // split the root leaf. - btree.insert(KeyBuilder.asSortKey(9), v9); + btree.insert(TestKeyBuilder.asSortKey(9), v9); Node c = (Node) btree.root; assertKeys(new int[]{7},c); assertEquals(a,c.getChild(0)); @@ -289,7 +289,7 @@ assertTrue(a.isPersistent()); assertTrue(b.isPersistent()); assertTrue(c.isPersistent()); - btree.insert(KeyBuilder.asSortKey(1), v1); // triggers copy on write for (a) and (c). + btree.insert(TestKeyBuilder.asSortKey(1), v1); // triggers copy on write for (a) and (c). assertNotSame(c,btree.root); c = (Node)btree.root; assertNotSame(a,c.getChild(0)); @@ -300,7 +300,7 @@ assertTrue(b.isPersistent()); assertFalse(c.isPersistent()); // insert more until we split another leaf. - btree.insert(KeyBuilder.asSortKey(2), v2); + btree.insert(TestKeyBuilder.asSortKey(2), v2); assertKeys(new int[]{3,7},c); assertEquals(a,c.getChild(0)); Leaf d = (Leaf)c.getChild(1); // the new leaf (d). @@ -323,8 +323,8 @@ * cause another leaf (d) to split, forcing the split to propagate to and * split the root and the tree to increase in height. */ - btree.insert(KeyBuilder.asSortKey(4), v4); - btree.insert(KeyBuilder.asSortKey(6), v6); + btree.insert(TestKeyBuilder.asSortKey(4), v4); + btree.insert(TestKeyBuilder.asSortKey(6), v6); // btree.dump(Level.DEBUG,System.err); assertNotSame(c,btree.root); final Node g = (Node)btree.root; @@ -365,7 +365,7 @@ * the following are cloned: d, c, g. * the following clean children are stolen: e, b (by the new root c). */ - assertEquals(v4,btree.remove(KeyBuilder.asSortKey(4))); + assertEquals(v4,btree.remove(TestKeyBuilder.asSortKey(4))); assertNotSame(g,btree.root); assertNotSame(c,btree.root); c = (Node) btree.root; @@ -393,7 +393,7 @@ * remove a key (7) from a leaf (b) forcing two leaves (b,e) to join * into (b) */ - assertEquals(v7,btree.remove(KeyBuilder.asSortKey(7))); + assertEquals(v7,btree.remove(TestKeyBuilder.asSortKey(7))); btree.dump(Level.DEBUG,System.err); assertKeys(new int[]{5},c); assertEquals(d,c.getChild(0)); @@ -421,16 +421,16 @@ assertEquals(c,btree.root); assertEquals(d,c.getChild(0)); assertEquals(b,c.getChild(1)); - assertEquals(v3, btree.remove(KeyBuilder.asSortKey(3))); // remove from (d) + assertEquals(v3, btree.remove(TestKeyBuilder.asSortKey(3))); // remove from (d) assertNotSame(c,btree.root); // c was cloned. c = (Node) btree.root; assertNotSame(d,c.getChild(0)); d = (Leaf)c.getChild(0); // d was cloned. assertEquals(b,c.getChild(1)); - assertEquals(v5,btree.remove(KeyBuilder.asSortKey(5))); // remove from (b) + assertEquals(v5,btree.remove(TestKeyBuilder.asSortKey(5))); // remove from (b) assertNotSame(b,c.getChild(1)); b = (Leaf)c.getChild(1); // b was cloned. - assertEquals(v6,btree.remove(KeyBuilder.asSortKey(6))); // remove from (b) + assertEquals(v6,btree.remove(TestKeyBuilder.asSortKey(6))); // remove from (b) assertKeys(new int[]{1,2,9},b); assertValues(new Object[]{v1,v2,v9}, b); assertTrue(d.isDeleted()); Modified: branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestDirtyIterators.java =================================================================== --- branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestDirtyIterators.java 2010-07-30 21:46:03 UTC (rev 3378) +++ branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestDirtyIterators.java 2010-07-30 22:14:17 UTC (rev 3379) @@ -29,7 +29,7 @@ import org.apache.log4j.Level; -import com.bigdata.btree.keys.KeyBuilder; +import com.bigdata.btree.keys.TestKeyBuilder; /** * Test suite for iterators that visit only dirty nodes or leaves. This test @@ -82,12 +82,12 @@ SimpleEntry v9 = new SimpleEntry(9); // fill up the root leaf. - btree.insert(KeyBuilder.asSortKey(3), v3); - btree.insert(KeyBuilder.asSortKey(5), v5); - btree.insert(KeyBuilder.asSortKey(7), v7); + btree.insert(TestKeyBuilder.asSortKey(3), v3); + btree.insert(TestKeyBuilder.asSortKey(5), v5); + btree.insert(TestKeyBuilder.asSortKey(7), v7); // split the root leaf. - btree.insert(KeyBuilder.asSortKey(9), v9); + btree.insert(TestKeyBuilder.asSortKey(9), v9); final Node c = (Node) btree.root; assertKeys(new int[]{7},c); assertEquals(a,c.getChild(0)); @@ -109,8 +109,8 @@ * split another leaf so that there are now three children to visit. at * this point the root is full. */ - btree.insert(KeyBuilder.asSortKey(1), v1); - btree.insert(KeyBuilder.asSortKey(2), v2); + btree.insert(TestKeyBuilder.asSortKey(1), v1); + btree.insert(TestKeyBuilder.asSortKey(2), v2); assertKeys(new int[]{3,7},c); assertEquals(a,c.getChild(0)); Leaf d = (Leaf)c.getChild(1); @@ -135,7 +135,7 @@ * remove a key from a leaf forcing two leaves to join and verify the * visitation order. */ - assertEquals(v1,btree.remove(KeyBuilder.asSortKey(1))); + assertEquals(v1,btree.remove(TestKeyBuilder.asSortKey(1))); assertKeys(new int[]{7},c); assertEquals(a,c.getChild(0)); assertEquals(b,c.getChild(1)); @@ -187,12 +187,12 @@ SimpleEntry v9 = new SimpleEntry(9); // fill up the root leaf. - btree.insert(KeyBuilder.asSortKey(3), v3); - btree.insert(KeyBuilder.asSortKey(5), v5); - btree.insert(KeyBuilder.asSortKey(7), v7); + btree.insert(TestKeyBuilder.asSortKey(3), v3); + btree.insert(TestKeyBuilder.asSortKey(5), v5); + btree.insert(TestKeyBuilder.asSortKey(7), v7); // split the root leaf. - btree.insert(KeyBuilder.asSortKey(9), v9); + btree.insert(TestKeyBuilder.asSortKey(9), v9); final Node c = (Node) btree.root; assertKeys(new int[]{7},c); assertEquals(a,c.getChild(0)); @@ -212,8 +212,8 @@ * split another leaf so that there are now three children to visit. at * this point the root is full. */ - btree.insert(KeyBuilder.asSortKey(1), v1); - btree.insert(KeyBuilder.asSortKey(2), v2); + btree.insert(TestKeyBuilder.asSortKey(1), v1); + btree.insert(TestKeyBuilder.asSortKey(2), v2); assertKeys(new int[]{3,7},c); assertEquals(a,c.getChild(0)); Leaf d = (Leaf)c.getChild(1); @@ -258,7 +258,7 @@ * visitation order. this triggers copy-on-write for (a) and (a) is * dirty as a post-condition. */ - assertEquals(v1,btree.remove(KeyBuilder.asSortKey(1))); + assertEquals(v1,btree.remove(TestKeyBuilder.asSortKey(1))); assertKeys(new int[]{7},c); assertNotSame(a,c.getChild(0)); Leaf a1 = (Leaf)c.getChild(0); @@ -279,7 +279,7 @@ * insert a key that will go into (b). since (b) is immutable this * triggers copy-on-write. */ - btree.insert(KeyBuilder.asSortKey(8),v8); + btree.insert(TestKeyBuilder.asSortKey(8),v8); assertKeys(new int[]{7},c); assertEquals(a1,c.getChild(0)); assertNotSame(b,c.getChild(1)); @@ -313,7 +313,7 @@ * remove a key from (a1). since (a1) is immutable this triggers * copy-on-write. since the root is immtuable, it is also copied. */ - assertEquals(v2,btree.remove(KeyBuilder.asSortKey(2))); + assertEquals(v2,btree.remove(TestKeyBuilder.asSortKey(2))); assertNotSame(c,btree.root); Node c1 = (Node)btree.root; assertKeys(new int[]{7},c1); @@ -368,12 +368,12 @@ .postOrderNodeIterator(true)); // fill up the root leaf. - btree.insert(KeyBuilder.asSortKey(3), v3); - btree.insert(KeyBuilder.asSortKey(5), v5); - btree.insert(KeyBuilder.asSortKey(7), v7); + btree.insert(TestKeyBuilder.asSortKey(3), v3); + btree.insert(TestKeyBuilder.asSortKey(5), v5); + btree.insert(TestKeyBuilder.asSortKey(7), v7); // split the root leaf. - btree.insert(KeyBuilder.asSortKey(9), v9); + btree.insert(TestKeyBuilder.asSortKey(9), v9); final Node c = (Node) btree.root; assertKeys(new int[]{7},c); assertEquals(a,c.getChild(0)); @@ -393,8 +393,8 @@ * split another leaf so that there are now three children to visit. at * this point the root is full. */ - btree.insert(KeyBuilder.asSortKey(1), v1); - btree.insert(KeyBuilder.asSortKey(2), v2); + btree.insert(TestKeyBuilder.asSortKey(1), v1); + btree.insert(TestKeyBuilder.asSortKey(2), v2); assertKeys(new int[]{3,7},c); assertEquals(a,c.getChild(0)); Leaf d = (Leaf)c.getChild(1); @@ -416,8 +416,8 @@ * cause another leaf (d) to split, forcing the split to propagate to and * split the root and the tree to increase in height. */ - btree.insert(KeyBuilder.asSortKey(4), v4); - btree.insert(KeyBuilder.asSortKey(6), v6); + btree.insert(TestKeyBuilder.asSortKey(4), v4); + btree.insert(TestKeyBuilder.asSortKey(6), v6); // btree.dump(Level.DEBUG,System.err); assertNotSame(c,btree.root); final Node g = (Node)btree.root; @@ -450,7 +450,7 @@ * be deleted. this causes (c,f) to merge as well, which in turn forces * the root to be replaced by (c). */ - assertEquals(v4,btree.remove(KeyBuilder.asSortKey(4))); + assertEquals(v4,btree.remove(TestKeyBuilder.asSortKey(4))); // btree.dump(Level.DEBUG,System.err); assertKeys(new int[]{5,7},c); assertEquals(d,c.getChild(0)); @@ -474,7 +474,7 @@ * remove a key (7) from a leaf (b) forcing two leaves to join and * verify the visitation order. */ - assertEquals(v7,btree.remove(KeyBuilder.asSortKey(7))); + assertEquals(v7,btree.remove(TestKeyBuilder.asSortKey(7))); btree.dump(Level.DEBUG,System.err); assertKeys(new int[]{5},c); assertEquals(d,c.getChild(0)); @@ -495,9 +495,9 @@ * remove keys from a leaf forcing the remaining two leaves to join and * verify the visitation order. */ - assertEquals(v3,btree.remove(KeyBuilder.asSortKey(3))); - assertEquals(v5,btree.remove(KeyBuilder.asSortKey(5))); - assertEquals(v6,btree.remove(KeyBuilder.asSortKey(6))); + assertEquals(v3,btree.remove(TestKeyBuilder.asSortKey(3))); + assertEquals(v5,btree.remove(TestKeyBuilder.asSortKey(5))); + assertEquals(v6,btree.remove(TestKeyBuilder.asSortKey(6))); assertKeys(new int[]{1,2,9},b); assertValues(new Object[]{v1,v2,v9}, b); assertTrue(d.isDeleted()); @@ -560,18 +560,18 @@ * and verify that both iterators now visit the root. */ assertEquals(a,btree.root); - btree.insert(KeyBuilder.asSortKey(3), v3); + btree.insert(TestKeyBuilder.asSortKey(3), v3); assertNotSame(a,btree.root); a = (Leaf)btree.root; // new reference for the root leaf. assertSameIterator(new IAbstractNode[] { btree.root }, btree.root .postOrderNodeIterator(false)); assertSameIterator(new IAbstractNode[] { btree.root }, btree.root .postOrderNodeIterator(true)); - btree.insert(KeyBuilder.asSortKey(5), v5); - btree.insert(... [truncated message content] |
From: <btm...@us...> - 2010-08-06 19:51:33
|
Revision: 3428 http://bigdata.svn.sourceforge.net/bigdata/?rev=3428&view=rev Author: btmurphy Date: 2010-08-06 19:51:23 +0000 (Fri, 06 Aug 2010) Log Message: ----------- merge -r3378:HEAD(3427) ~/bigdata/trunk ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BigdataFileSystem.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/AbstractBTree.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexMetadata.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/DefaultKeyBuilderFactory.java branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/ICUSortKeyGenerator.java branches/bugfix-btm/bigdata/src/java/com/bigdata/counters/AbstractStatisticsCollector.java branches/bugfix-btm/bigdata/src/java/com/bigdata/io/DirectBufferPool.java branches/bugfix-btm/bigdata/src/java/com/bigdata/io/WriteCache.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractJournal.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractLocalTransactionManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/WriteExecutorService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/AbstractResource.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/IMutableResource.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/RelationFusedView.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/locator/DefaultResourceLocator.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/locator/ILocatableResource.java branches/bugfix-btm/bigdata/src/java/com/bigdata/relation/rule/eval/pipeline/DistributedJoinTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/AsynchronousOverflowTask.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/BTreeMetadata.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/IndexManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/OverflowManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/ResourceEvents.java branches/bugfix-btm/bigdata/src/java/com/bigdata/resources/StoreManager.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/AbstractFederation.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/AbstractScaleOutFederation.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/AbstractTransactionService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/DataService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/DefaultServiceFederationDelegate.java branches/bugfix-btm/bigdata/src/java/com/bigdata/service/DistributedTransactionService.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/GlobalRowStoreHelper.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/KeyDecoder.java branches/bugfix-btm/bigdata/src/java/com/bigdata/sparse/TPS.java branches/bugfix-btm/bigdata/src/java/com/bigdata/striterator/ChunkedConvertingIterator.java branches/bugfix-btm/bigdata/src/resources/logging/log4j.properties branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/AbstractIndexSegmentTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/TestIndexSegmentMultiBlockIterators.java branches/bugfix-btm/bigdata/src/test/com/bigdata/btree/keys/TestKeyBuilder.java branches/bugfix-btm/bigdata/src/test/com/bigdata/concurrent/StressTestNonBlockingLockManagerWithTxDag.java branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestAll.java branches/bugfix-btm/bigdata/src/test/com/bigdata/journal/TestTransactionService.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/AbstractResourceManagerBootstrapTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/AbstractResourceManagerTestCase.java branches/bugfix-btm/bigdata/src/test/com/bigdata/resources/TestReleaseResources.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/StressTestConcurrent.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/TestDistributedTransactionServiceRestart.java branches/bugfix-btm/bigdata/src/test/com/bigdata/service/ndx/pipeline/TestMasterTask.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/TransactionServer.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/lookup/AbstractCachingServiceClient.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/master/TaskMaster.java branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/service/jini/util/DumpFederation.java branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query9.txt branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/DefaultExtensionFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IExtension.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IExtensionFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/ILexiconConfiguration.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/internal/XSDDecimalIV.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Term2IdWriteProc.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/Term2IdWriteTask.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/load/MappedRDFDataLoadMaster.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rio/AsynchronousStatementBufferFactory.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/AbstractRuleFastClosure_3_5_6_7_9.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/rules/RDFJoinNexus.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/store/LocalTripleStore.java branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/util/Splitter.config branches/bugfix-btm/bigdata-rdf/src/java/com/bigdata/rdf/util/Splitter.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/ColorsEnumExtension.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/EpochExtension.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/SampleExtensionFactory.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rio/AbstractRIOTestCase.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rio/TestAsynchronousStatementBufferFactory.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/rio/small.rdf branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/AbstractTestCase.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestAll.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestScaleOutTripleStoreWithEmbeddedFederation.java branches/bugfix-btm/bigdata-rdf/src/test/com/bigdata/rdf/store/TestScaleOutTripleStoreWithJiniFederation.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataEvaluationStrategyImpl2.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSail.java branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/NanoSparqlServer.java branches/bugfix-btm/build.xml branches/bugfix-btm/src/resources/analysis/queries/benchmark.txt branches/bugfix-btm/src/resources/config/README branches/bugfix-btm/src/resources/config/bigdataCluster.config branches/bugfix-btm/src/resources/config/bigdataCluster16.config branches/bugfix-btm/src/resources/config/log4j.properties Added Paths: ----------- branches/bugfix-btm/bigdata-perf/bsbm/src/resources/bsbm-data/queries/query9-modified.txt branches/bugfix-btm/src/resources/config/bigdataStandalone.config branches/bugfix-btm/src/resources/scripts/dumpFed.sh branches/bugfix-btm/src/resources/scripts/nanoSparqlServer.sh Property Changed: ---------------- branches/bugfix-btm/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-perf/btc/src/ branches/bugfix-btm/bigdata-perf/lubm/lib/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/ branches/bugfix-btm/bigdata-perf/uniprot/src/ branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/ branches/bugfix-btm/dsi-utils/src/java/ branches/bugfix-btm/dsi-utils/src/test/ branches/bugfix-btm/src/resources/config/ Property changes on: branches/bugfix-btm ___________________________________________________________________ Modified: svn:ignore - ant-build src bin bigdata*.jar ant-release standalone test* countersfinal.xml events.jnl .settings *.jnl TestInsertRate.out SYSTAP-BBT-result.txt U10load+query *.hprof com.bigdata.cache.TestHardReferenceQueueWithBatchingUpdates.exp.csv commit-log.txt eventLog dist bigdata-test com.bigdata.rdf.stress.LoadClosureAndQueryTest.*.csv + ant-build src bin bigdata*.jar ant-release standalone test* countersfinal.xml events.jnl .settings *.jnl TestInsertRate.out SYSTAP-BBT-result.txt U10load+query *.hprof com.bigdata.cache.TestHardReferenceQueueWithBatchingUpdates.exp.csv commit-log.txt eventLog dist bigdata-test com.bigdata.rdf.stress.LoadClosureAndQueryTest.*.csv DIST.*.tgz REL.*.tgz Modified: svn:mergeinfo - /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3378 + /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3427 Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BigdataFileSystem.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BigdataFileSystem.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/bfs/BigdataFileSystem.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -420,7 +420,7 @@ } } - + /** * Note: A commit is required in order for a read-committed view to have * access to the registered indices. When running against an Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/AbstractBTree.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/AbstractBTree.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/AbstractBTree.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -2840,7 +2840,8 @@ * might also want to limit the maximum size of the reads. */ - final DirectBufferPool pool = DirectBufferPool.INSTANCE_10M; +// final DirectBufferPool pool = DirectBufferPool.INSTANCE_10M; + final DirectBufferPool pool = DirectBufferPool.INSTANCE; if (true && ((flags & REVERSE) == 0) Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/BTree.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -644,7 +644,18 @@ this.lastCommitTime = lastCommitTime; } - private long lastCommitTime = 0L;// Until the first commit. + + /** + * The lastCommitTime of the {@link Checkpoint} record from which the + * {@link BTree} was loaded. + * <p> + * Note: Made volatile on 8/2/2010 since it is not otherwise obvious what + * would guarantee visibility of this field, through I do seem to remember + * that visibility might be guaranteed by how the BTree class is discovered + * and returned to the class. Still, it does no harm to make this a volatile + * read. + */ + volatile private long lastCommitTime = 0L;// Until the first commit. /** * Return the {@link IDirtyListener}. @@ -1525,45 +1536,63 @@ } - /** - * Load an instance of a {@link BTree} or derived class from the store. The - * {@link BTree} or derived class MUST declare a constructor with the - * following signature: <code> + /** + * Load an instance of a {@link BTree} or derived class from the store. The + * {@link BTree} or derived class MUST declare a constructor with the + * following signature: <code> * * <i>className</i>(IRawStore store, Checkpoint checkpoint, BTreeMetadata metadata, boolean readOnly) * * </code> - * - * @param store - * The store. - * @param addrCheckpoint - * The address of a {@link Checkpoint} record for the index. - * @param readOnly - * When <code>true</code> the {@link BTree} will be marked as - * read-only. Marking has some advantages relating to the locking - * scheme used by {@link Node#getChild(int)} since the root node - * is known to be read-only at the time that it is allocated as - * per-child locking is therefore in place for all nodes in the - * read-only {@link BTree}. It also results in much higher - * concurrency for {@link AbstractBTree#touch(AbstractNode)}. - * - * @return The {@link BTree} or derived class loaded from that - * {@link Checkpoint} record. - */ + * + * @param store + * The store. + * @param addrCheckpoint + * The address of a {@link Checkpoint} record for the index. + * @param readOnly + * When <code>true</code> the {@link BTree} will be marked as + * read-only. Marking has some advantages relating to the locking + * scheme used by {@link Node#getChild(int)} since the root node + * is known to be read-only at the time that it is allocated as + * per-child locking is therefore in place for all nodes in the + * read-only {@link BTree}. It also results in much higher + * concurrency for {@link AbstractBTree#touch(AbstractNode)}. + * + * @return The {@link BTree} or derived class loaded from that + * {@link Checkpoint} record. + * + * @throws IllegalArgumentException + * if store is <code>null</code>. + */ @SuppressWarnings("unchecked") public static BTree load(final IRawStore store, final long addrCheckpoint, final boolean readOnly) { + if (store == null) + throw new IllegalArgumentException(); + /* * Read checkpoint record from store. */ - final Checkpoint checkpoint = Checkpoint.load(store, addrCheckpoint); + final Checkpoint checkpoint; + try { + checkpoint = Checkpoint.load(store, addrCheckpoint); + } catch (Throwable t) { + throw new RuntimeException("Could not load Checkpoint: store=" + + store + ", addrCheckpoint=" + + store.toString(addrCheckpoint), t); + } - /* - * Read metadata record from store. - */ - final IndexMetadata metadata = IndexMetadata.read(store, checkpoint - .getMetadataAddr()); + /* + * Read metadata record from store. + */ + final IndexMetadata metadata; + try { + metadata = IndexMetadata.read(store, checkpoint.getMetadataAddr()); + } catch (Throwable t) { + throw new RuntimeException("Could not read IndexMetadata: store=" + + store + ", checkpoint=" + checkpoint, t); + } if (log.isInfoEnabled()) { Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -36,6 +36,7 @@ import org.apache.log4j.Logger; import com.bigdata.btree.IndexSegment.ImmutableNodeFactory.ImmutableLeaf; +import com.bigdata.io.DirectBufferPool; import com.bigdata.journal.DumpJournal; import com.bigdata.rawstore.IRawStore; @@ -154,6 +155,16 @@ } + // multi-block scan of the index segment. + boolean multiBlockScan = false; // @todo command line option. + if (multiBlockScan) { + + writeBanner("dump leaves using multi-block forward scan"); + + dumpLeavesMultiBlockForwardScan(store); + + } + // dump the leaves using a fast reverse scan. boolean fastReverseScan = true;// @todo command line option if (fastReverseScan) { @@ -524,6 +535,36 @@ } + /** + * Dump leaves using the {@link IndexSegmentMultiBlockIterator}. + * + * @param store + */ + static void dumpLeavesMultiBlockForwardScan(final IndexSegmentStore store) { + + final long begin = System.currentTimeMillis(); + + final IndexSegment seg = store.loadIndexSegment(); + + final ITupleIterator<?> itr = new IndexSegmentMultiBlockIterator(seg, DirectBufferPool.INSTANCE, + null/* fromKey */, null/* toKey */, IRangeQuery.DEFAULT/* flags */); + + int nscanned = 0; + + while(itr.hasNext()) { + + itr.next(); + + nscanned++; + + } + + final long elapsed = System.currentTimeMillis() - begin; + + System.out.println("Visited "+nscanned+" tuples using multi-block forward scan in "+elapsed+" ms"); + + } + static void writeBanner(String s) { System.out.println(bar); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexMetadata.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexMetadata.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/IndexMetadata.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -2049,10 +2049,14 @@ // Note: default assumes NOT an index partition. this.pmd = null; + /* Intern'd to reduce duplication on the heap. Will be com.bigdata.btree.BTree or + * com.bigdata.btree.IndexSegment and occasionally a class derived from BTree. + */ this.btreeClassName = getProperty(indexManager, properties, namespace, - Options.BTREE_CLASS_NAME, BTree.class.getName().toString()); + Options.BTREE_CLASS_NAME, BTree.class.getName()).intern(); - this.checkpointClassName = Checkpoint.class.getName(); + // Intern'd to reduce duplication on the heap. + this.checkpointClassName = Checkpoint.class.getName().intern(); // this.addrSer = AddressSerializer.INSTANCE; Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/DefaultKeyBuilderFactory.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/DefaultKeyBuilderFactory.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/DefaultKeyBuilderFactory.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -207,7 +207,7 @@ if (properties != null) { - val = properties.getProperty(key, def); + val = properties.getProperty(key);//, def); } Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/ICUSortKeyGenerator.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/ICUSortKeyGenerator.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/btree/keys/ICUSortKeyGenerator.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -108,7 +108,7 @@ } - ICUSortKeyGenerator(Locale locale, Object strength, DecompositionEnum mode) { + ICUSortKeyGenerator(final Locale locale, final Object strength, final DecompositionEnum mode) { if (locale == null) throw new IllegalArgumentException(); @@ -132,7 +132,7 @@ } else { - StrengthEnum str = (StrengthEnum) strength; + final StrengthEnum str = (StrengthEnum) strength; if (log.isInfoEnabled()) log.info("strength=" + str); @@ -200,9 +200,9 @@ * Buffer is reused for each {@link String} from which a sort key is * derived. */ - private RawCollationKey raw = new RawCollationKey(128); + final private RawCollationKey raw = new RawCollationKey(128); - public void appendSortKey(KeyBuilder keyBuilder, String s) { + public void appendSortKey(final KeyBuilder keyBuilder, final String s) { // RawCollationKey raw = collator.getRawCollationKey(s, null); Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/counters/AbstractStatisticsCollector.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/counters/AbstractStatisticsCollector.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/counters/AbstractStatisticsCollector.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -277,19 +277,19 @@ AbstractStatisticsCollector .addGarbageCollectorMXBeanCounters(serviceRoot .makePath(ICounterHierarchy.Memory_GarbageCollectors)); - - /* - * Add counters reporting on the various DirectBufferPools. - */ - { - // general purpose pool. - serviceRoot.makePath( - IProcessCounters.Memory + ICounterSet.pathSeparator - + "DirectBufferPool").attach( - DirectBufferPool.getCounters()); - - } + // Moved since counters must be dynamically reattached to reflect pool hierarchy. +// /* +// * Add counters reporting on the various DirectBufferPools. +// */ +// { +// +// serviceRoot.makePath( +// IProcessCounters.Memory + ICounterSet.pathSeparator +// + "DirectBufferPool").attach( +// DirectBufferPool.getCounters()); +// +// } if (LRUNexus.INSTANCE != null) { Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/io/DirectBufferPool.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/io/DirectBufferPool.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/io/DirectBufferPool.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -218,12 +218,12 @@ */ public final static DirectBufferPool INSTANCE; - /** - * A JVM-wide pool of direct {@link ByteBuffer}s with a default - * {@link Options#BUFFER_CAPACITY} of <code>10 MB</code>. The main use case - * for the 10M buffers are multi-block IOs for the {@link IndexSegment}s. - */ - public final static DirectBufferPool INSTANCE_10M; +// /** +// * A JVM-wide pool of direct {@link ByteBuffer}s with a default +// * {@link Options#BUFFER_CAPACITY} of <code>10 MB</code>. The main use case +// * for the 10M buffers are multi-block IOs for the {@link IndexSegment}s. +// */ +// public final static DirectBufferPool INSTANCE_10M; /** * An unbounded list of all {@link DirectBufferPool} instances. @@ -251,11 +251,11 @@ bufferCapacity// ); - INSTANCE_10M = new DirectBufferPool(// - "10M",// - Integer.MAX_VALUE, // poolCapacity - 10 * Bytes.megabyte32 // bufferCapacity - ); +// INSTANCE_10M = new DirectBufferPool(// +// "10M",// +// Integer.MAX_VALUE, // poolCapacity +// 10 * Bytes.megabyte32 // bufferCapacity +// ); /* * This configuration will block if there is a concurrent demand for Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/io/WriteCache.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/io/WriteCache.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/io/WriteCache.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -51,7 +51,7 @@ import com.bigdata.counters.Instrument; import com.bigdata.journal.AbstractBufferStrategy; import com.bigdata.journal.DiskOnlyStrategy; -import com.bigdata.journal.DiskOnlyStrategy.StoreCounters; +//import com.bigdata.journal.DiskOnlyStrategy.StoreCounters; import com.bigdata.rawstore.Bytes; import com.bigdata.rawstore.IRawStore; import com.bigdata.rwstore.RWStore; Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractJournal.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractJournal.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractJournal.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -1027,33 +1027,33 @@ } - case Disk: { +// case Disk: { +// +// /* +// * Setup the buffer strategy. +// */ +// +// fileMetadata = new FileMetadata(file, BufferMode.Disk, +// useDirectBuffers, initialExtent, maximumExtent, create, +// isEmptyFile, deleteOnExit, readOnly, forceWrites, +// offsetBits, //readCacheCapacity, readCacheMaxRecordSize, +// //readOnly ? null : writeCache, +// writeCacheEnabled, +// validateChecksum, +// createTime, checker, alternateRootBlock); +// +// _bufferStrategy = new DiskOnlyStrategy( +// 0L/* soft limit for maximumExtent */, +//// minimumExtension, +// fileMetadata); +// +// this._rootBlock = fileMetadata.rootBlock; +// +// break; +// +// } - /* - * Setup the buffer strategy. - */ - - fileMetadata = new FileMetadata(file, BufferMode.Disk, - useDirectBuffers, initialExtent, maximumExtent, create, - isEmptyFile, deleteOnExit, readOnly, forceWrites, - offsetBits, //readCacheCapacity, readCacheMaxRecordSize, - //readOnly ? null : writeCache, - writeCacheEnabled, - validateChecksum, - createTime, checker, alternateRootBlock); - - _bufferStrategy = new DiskOnlyStrategy( - 0L/* soft limit for maximumExtent */, -// minimumExtension, - fileMetadata); - - this._rootBlock = fileMetadata.rootBlock; - - break; - - } - -// case Disk: + case Disk: case DiskWORM: { /* Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractLocalTransactionManager.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractLocalTransactionManager.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/AbstractLocalTransactionManager.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -7,6 +7,7 @@ import com.bigdata.counters.CounterSet; import com.bigdata.counters.Instrument; +import com.bigdata.resources.StoreManager; import com.bigdata.service.IBigdataFederation; import com.bigdata.service.IDataService; @@ -171,16 +172,18 @@ * Delay between attempts reach the remote service (ms). */ final long delay = 10L; - - /** - * #of attempts to reach the remote service. - * - * Note: delay*maxtries == 1000ms of trying before we give up. - * - * If this is not enough, then consider adding an optional parameter giving - * the time the caller will wait and letting the StoreManager wait longer - * during startup to discover the timestamp service. - */ + + /** + * #of attempts to reach the remote service. + * <p> + * Note: delay*maxtries == 1000ms of trying before we give up, plus however + * long we are willing to wait for service discovery if the problem is + * locating the {@link ITransactionService}. + * <p> + * If this is not enough, then consider adding an optional parameter giving + * the time the caller will wait and letting the {@link StoreManager} wait + * longer during startup to discover the timestamp service. + */ final int maxtries = 100; /** Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java 2010-08-06 19:43:24 UTC (rev 3427) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/journal/DiskOnlyStrategy.java 2010-08-06 19:51:23 UTC (rev 3428) @@ -46,6 +46,7 @@ import com.bigdata.io.DirectBufferPool; import com.bigdata.io.FileChannelUtility; import com.bigdata.io.IReopenChannel; +import com.bigdata.journal.WORMStrategy.StoreCounters; import com.bigdata.rawstore.Bytes; import com.bigdata.rawstore.IRawStore; import com.bigdata.resources.StoreManager.ManagedJournal; @@ -501,7 +502,7 @@ writeCache.flush(); - storeCounters.ncacheFlush++; +// storeCounters.ncacheFlush++; } @@ -544,551 +545,551 @@ } - /** - * Counters for {@link IRawStore} access, including operations that read or - * write through to the underlying media. - * - * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * @version $Id$ - * - * @todo report elapsed time and average latency for force, reopen, and - * writeRootBlock. - * - * @todo counters need to be atomic if we want to avoid the possibility of - * concurrent <code>x++</code> operations failing to correctly - * increment <code>x</code> for each request. - */ - public static class StoreCounters { - - /** - * #of read requests. - */ - public long nreads; - - /** - * #of read requests that are satisfied by our write cache (vs the - * OS or disk level write cache). - */ - public long ncacheRead; - - /** - * #of read requests that read through to the backing file. - */ - public long ndiskRead; - - /** - * #of bytes read. - */ - public long bytesRead; - - /** - * #of bytes that have been read from the disk. - */ - public long bytesReadFromDisk; - - /** - * The size of the largest record read. - */ - public long maxReadSize; - - /** - * Total elapsed time for reads. - */ - public long elapsedReadNanos; - - /** - * Total elapsed time checking the disk write cache for records to be - * read. - */ - public long elapsedCacheReadNanos; - - /** - * Total elapsed time for reading on the disk. - */ - public long elapsedDiskReadNanos; - - /** - * #of write requests. - */ - public long nwrites; - - /** - * #of write requests that are absorbed by our write cache (vs the OS or - * disk level write cache). - */ - public long ncacheWrite; - - /** - * #of times the write cache was flushed to disk. - */ - public long ncacheFlush; - - /** - * #of write requests that write through to the backing file. - */ - public long ndiskWrite; - - /** - * The size of the largest record written. - */ - public long maxWriteSize; - - /** - * #of bytes written. - */ - public long bytesWritten; - - /** - * #of bytes that have been written on the disk. - */ - public long bytesWrittenOnDisk; - - /** - * Total elapsed time for writes. - */ - public long elapsedWriteNanos; - - /** - * Total elapsed time writing records into the cache (does not count - * time to flush the cache when it is full or to write records that do - * not fit in the cache directly to the disk). - */ - public long elapsedCacheWriteNanos; - - /** - * Total elapsed time for writing on the disk. - */ - public long elapsedDiskWriteNanos; - - /** - * #of times the data were forced to the disk. - */ - public long nforce; - - /** - * #of times the length of the file was changed (typically, extended). - */ - public long ntruncate; - - /** - * #of times the file has been reopened after it was closed by an - * interrupt. - */ - public long nreopen; - - /** - * #of times one of the root blocks has been written. - */ - public long nwriteRootBlock; - - /** - * Initialize a new set of counters. - */ - public StoreCounters() { - - } - - /** - * Copy ctor. - * @param o - */ - public StoreCounters(final StoreCounters o) { - - add( o ); - - } - - /** - * Adds counters to the current counters. - * - * @param o - */ - public void add(final StoreCounters o) { - - nreads += o.nreads; - ncacheRead += o.ncacheRead; - ndiskRead += o.ndiskRead; - bytesRead += o.bytesRead; - bytesReadFromDisk += o.bytesReadFromDisk; - maxReadSize += o.maxReadSize; - elapsedReadNanos += o.elapsedReadNanos; - elapsedCacheReadNanos += o.elapsedCacheReadNanos; - elapsedDiskReadNanos += o.elapsedDiskReadNanos; - - nwrites += o.nwrites; - ncacheWrite += o.ncacheWrite; - ncacheFlush += o.ncacheFlush; - ndiskWrite += o.ndiskWrite; - maxWriteSize += o.maxWriteSize; - bytesWritten += o.bytesWritten; - bytesWrittenOnDisk += o.bytesWrittenOnDisk; - elapsedWriteNanos += o.elapsedWriteNanos; - elapsedCacheWriteNanos += o.elapsedCacheWriteNanos; - elapsedDiskWriteNanos += o.elapsedDiskWriteNanos; - - nforce += o.nforce; - ntruncate += o.ntruncate; - nreopen += o.nreopen; - nwriteRootBlock += o.nwriteRootBlock; - - } - - /** - * Returns a new {@link StoreCounters} containing the current counter values - * minus the given counter values. - * - * @param o - * - * @return - */ - public StoreCounters subtract(final StoreCounters o) { - - // make a copy of the current counters. - final StoreCounters t = new StoreCounters(this); - - // subtract out the given counters. - t.nreads -= o.nreads; - t.ncacheRead -= o.ncacheRead; - t.ndiskRead -= o.ndiskRead; - t.bytesRead -= o.bytesRead; - t.bytesReadFromDisk -= o.bytesReadFromDisk; - t.maxReadSize -= o.maxReadSize; - t.elapsedReadNanos -= o.elapsedReadNanos; - t.elapsedCacheReadNanos -= o.elapsedCacheReadNanos; - t.elapsedDiskReadNanos -= o.elapsedDiskReadNanos; - - t.nwrites -= o.nwrites; - t.ncacheWrite -= o.ncacheWrite; - t.ncacheFlush -= o.ncacheFlush; - t.ndiskWrite -= o.ndiskWrite; - t.maxWriteSize -= o.maxWriteSize; - t.bytesWritten -= o.bytesWritten; - t.bytesWrittenOnDisk -= o.bytesWrittenOnDisk; - t.elapsedWriteNanos -= o.elapsedWriteNanos; - t.elapsedCacheWriteNanos -= o.elapsedCacheWriteNanos; - t.elapsedDiskWriteNanos -= o.elapsedDiskWriteNanos; - - t.nforce -= o.nforce; - t.ntruncate -= o.ntruncate; - t.nreopen -= o.nreopen; - t.nwriteRootBlock -= o.nwriteRootBlock; - - return t; - - } - - synchronized public CounterSet getCounters() { - - if (root == null) { - - root = new CounterSet(); - - // IRawStore API - { - - /* - * reads - */ - - root.addCounter("nreads", new Instrument<Long>() { - public void sample() { - setValue(nreads); - } - }); - - root.addCounter("bytesRead", new Instrument<Long>() { - public void sample() { - setValue(bytesRead); - } - }); - - root.addCounter("readSecs", new Instrument<Double>() { - public void sample() { - final double elapsedReadSecs = (elapsedReadNanos / 1000000000.); - setValue(elapsedReadSecs); - } - }); - - root.addCounter("bytesReadPerSec", - new Instrument<Double>() { - public void sample() { - final double readSecs = (elapsedReadNanos / 1000000000.); - final double bytesReadPerSec = (readSecs == 0L ? 0d - : (bytesRead / readSecs)); - setValue(bytesReadPerSec); - } - }); - - root.addCounter("maxReadSize", new Instrument<Long>() { - public void sample() { - setValue(maxReadSize); - } - }); - - /* - * writes - */ - - root.addCounter("nwrites", new Instrument<Long>() { - public void sample() { - setValue(nwrites); - } - }); - - root.addCounter("bytesWritten", new Instrument<Long>() { - public void sample() { - setValue(bytesWritten); - } - }); - - root.addCounter("writeSecs", new Instrument<Double>() { - public void sample() { - final double writeSecs = (elapsedWriteNanos / 1000000000.); - setValue(writeSecs); - } - }); - - root.addCounter("bytesWrittenPerSec", - new Instrument<Double>() { - public void sample() { - final double writeSecs = (elapsedWriteNanos / 1000000000.); - final double bytesWrittenPerSec = (writeSecs == 0L ? 0d - : (bytesWritten / writeSecs)); - setValue(bytesWrittenPerSec); - } - }); - - root.addCounter("maxWriteSize", new Instrument<Long>() { - public void sample() { - setValue(maxWriteSize); - } - }); - - } - - /* - * write cache statistics - */ - { - - final CounterSet writeCache = root.makePath("writeCache"); - - /* - * read - */ - writeCache.addCounter("nread", new Instrument<Long>() { - public void sample() { - setValue(ncacheRead); - } - }); - - writeCache.addCounter("readHitRate", new Instrument<Double>() { - public void sample() { - setValue(nreads == 0L ? 0d : (double) ncacheRead - / nreads); - } - }); - - writeCache.addCounter("readSecs", new Instrument<Double>() { - public void sample() { - setValue(elapsedCacheReadNanos / 1000000000.); - } - }); - - /* - * write - */ - - // #of writes on the write cache. - writeCache.addCounter("nwrite", new Instrument<Long>() { - public void sample() { - setValue(ncacheWrite); - } - }); - - /* - * % of writes that are buffered vs writing through to the - * disk. - * - * Note: This will be 1.0 unless you are writing large - * records. Large records are written directly to the disk - * rather than first into the write cache. When this happens - * the writeHitRate on the cache can be less than one. - */ - writeCache.addCounter("writeHitRate", new Instrument<Double>() { - public void sample() { - setValue(nwrites == 0L ? 0d : (double) ncacheWrite - / nwrites); - } - }); - - writeCache.addCounter("writeSecs", new Instrument<Double>() { - public void sample() { - setValue(elapsedCacheWriteNanos / 1000000000.); - } - }); - - // #of times the write cache was flushed to the disk. - writeCache.addCounter("nflush", new Instrument<Long>() { - public void sample() { - setValue(ncacheFlush); - } - }); - - } - - // disk statistics - { - final CounterSet disk = root.makePath("disk"); - - /* - * read - */ - - disk.addCounter("nreads", new Instrument<Long>() { - public void sample() { - setValue(ndiskRead); - } - }); - - disk.addCounter("bytesRead", new Instrument<Long>() { - public void sample() { - setValue(bytesReadFromDisk); - } - }); - - disk.addCounter("bytesPerRead", new Instrument<Double>() { - public void sample() { - final double bytesPerDiskRead = (ndiskRead == 0 ? 0d - : (bytesReadFromDisk / (double)ndiskRead)); - setValue(bytesPerDiskRead); - } - }); - - disk.addCounter("readSecs", new Instrument<Double>() { - public void sample() { - final double diskReadSecs = (elapsedDiskReadNanos / 1000000000.); - setValue(diskReadSecs); - } - }); - - disk.addCounter("bytesReadPerSec", - new Instrument<Double>() { - public void sample() { - final double diskReadSecs = (elapsedDiskReadNanos / 1000000000.); - final double bytesReadPerSec = (diskReadSecs == 0L ? 0d - : bytesReadFromDisk / diskReadSecs); - setValue(bytesReadPerSec); - } - }); - - disk.addCounter("secsPerRead", new Instrument<Double>() { - public void sample() { - final double diskReadSecs = (elapsedDiskReadNanos / 1000000000.); - final double readLatency = (diskReadSecs == 0 ? 0d - : diskReadSecs / ndiskRead); - setValue(readLatency); - } - }); - - /* - * write - */ - - disk.addCounter("nwrites", new Instrument<Long>() { - public void sample() { - setValue(ndiskWrite); - } - }); - - disk.addCounter("bytesWritten", new Instrument<Long>() { - public void sample() { - setValue(bytesWrittenOnDisk); - } - }); - - disk.addCounter("bytesPerWrite", new Instrument<Double>() { - public void sample() { - final double bytesPerDiskWrite = (ndiskWrite == 0 ? 0d - : (bytesWrittenOnDisk / (double)ndiskWrite)); - setValue(bytesPerDiskWrite); - } - }); - - disk.addCounter("writeSecs", new Instrument<Double>() { - public void sample() { - final double diskWriteSecs = (elapsedDiskWriteNanos / 1000000000.); - setValue(diskWriteSecs); - } - }); - - disk.addCounter("bytesWrittenPerSec", - new Instrument<Double>() { - public void sample() { - final double diskWriteSecs = (elapsedDiskWriteNanos / 1000000000.); - final double bytesWrittenPerSec = (diskWriteSecs == 0L ? 0d - : bytesWrittenOnDisk - / diskWriteSecs); - setValue(bytesWrittenPerSec); - } - }); - - disk.addCounter("secsPerWrite", new Instrument<Double>() { - public void sample() { - final double diskWriteSecs = (elapsedDiskWriteNanos / 1000000000.); - final double writeLatency = (diskWriteSecs == 0 ? 0d - : diskWriteSecs / ndiskWrite); - setValue(writeLatency); - } - }); - - /* - * other - */ - - disk.addCounter("nforce", new Instrument<Long>() { - public void sample() { - setValue(nforce); - } - }); - - disk.addCounter("nextend", new Instrument<Long>() { - public void sample() { - setValue(ntruncate); - } - }); - - disk.addCounter("nreopen", new Instrument<Long>() { - public void sample() { - setValue(nreopen); - } - }); - - disk.addCounter("rootBlockWrites", new Instrument<Long>() { - public void sample() { - setValue(nwriteRootBlock); - } - }); - - } - - } - - return root; - - } - private CounterSet root; - - /** - * Human readable representation of the counters. - */ - public String toString() { - - return getCounters().toString(); - - } - - } +// /** +// * Counters for {@link IRawStore} access, including operations that read or +// * write through to the underlying media. +// * +// * @author <a href="mailto:tho...@us...">Bryan Thompson</a> +// * @version $Id$ +// * +// * @todo report elapsed time and average latency for force, reopen, and +// * writeRootBlock. +// * +// * @todo counters need to be atomic if we want to avoid the possibility of +// * concurrent <code>x++</code> operations failing to correctly +// * increment <code>x</code> for each request. +// */ +// public static class StoreCounters { +// +// /** +// * #of read requests. +// */ +// public long nreads; +// +// /** +// * #of read requests that are satisfied by our write cache (vs the +// * OS or disk level write cache). +// */ +// public long ncacheRead; +// +// /** +// * #of read requests that read through to the backing file. +// */ +// public long ndiskRead; +// +// /** +// * #of bytes read. +// */ +// public long bytesRead; +// +// /** +// * #of bytes that have been read from the disk. +// */ +// public long bytesReadFromDisk; +// +// /** +// * The size of the largest record read. +// */ +// public long maxReadSize; +// +// /** +// * Total elapsed time for reads. +// */ +// public long elapsedReadNanos; +// +// /** +// * Total elapsed time checking the disk write cache for records to be +// * read. +// */ +// public long elapsedCacheReadNanos; +// +// /** +// * Total elapsed time for reading on the disk. +// */ +// public long elapsedDiskReadNanos; +// +// /** +// * #of write requests. +// */ +// public long nwrites; +// +// /** +// * #of write requests that are absorbed by our write cache (vs the OS or +// * disk level write cache). +// */ +// public long ncacheWrite; +// +// /** +// * #of times the write cache was flushed to disk. +// */ +// public long ncacheFlush; +// +// /** +// * #of write requests that write through to the backing file. +// */ +// public long ndiskWrite; +// +// /** +// * The size of the largest record written. +// */ +// public long maxWriteSize; +// +// /** +// * #of bytes written. +// */ +// public long bytesWritten; +// +// /** +// * #of bytes that have been written on the disk. +// */ +// public long bytesWrittenOnDisk; +// +// /** +// * Total elapsed time for writes. +// */ +// public long elapsedWriteNanos; +// +// /** +// * Total elapsed time writing records into the cache (does not count +// * time to flush the cache when it is full or to write records that do +// * not fit in the cache directly to the disk). +// */ +// public long elapsedCacheWriteNanos; +// +// /** +// * Total elapsed time for writing on the disk. +// */ +// public long elapsedDiskWriteNanos; +// +// /** +// * #of times the data were forced to the disk. +// */ +// public long nforce; +// +// /** +// * #of times the length of the file was changed (typically, extended). +// */ +// public long ntruncate; +// +// /** +// * #of times the file has been reopened after it was closed by an +// * interrupt. +// */ +// public long nreopen; +// +// /** +// * #of times one of the root blocks has been written. +// */ +// public long nwriteRootBlock; +// +// /** +// * Initialize a new set of counters. +// */ +// public StoreCounters() { +// +// } +// +// /** +// * Copy ctor. +// * @param o +// */ +// public StoreCounters(final StoreCounters o) { +// +// add( o ); +// +// } +// +// /** +// * Adds counters to the current counters. +// * +// * @param o +// */ +// public void add(final StoreCounters o) { +// +// nreads += o.nreads; +// ncacheRead += o.ncacheRead; +// ndiskRead += o.ndiskRead; +// bytesRead += o.bytesRead; +// bytesReadFromDisk += o.bytesReadFromDisk; +// maxReadSize += o.maxReadSize; +// elapsedReadNanos += o.elapsedReadNanos; +// elapsedCacheReadNanos += o.elapsedCacheReadNanos; +// elapsedDiskReadNanos += o.elapsedDiskReadNanos; +// +// nwrites += o.nwrites; +// ncacheWrite += o.ncacheWrite; +// ncacheFlush += o.ncacheFlush; +// ndiskWrite += o.ndiskWrite; +// maxWriteSize += o.maxWriteSize; +// bytesWritten += o.bytesWritten; +// bytesWrittenOnDisk += o.bytesWrittenOnDisk; +// elapsedWriteNanos += o.elapsedWriteNanos; +// elapsedCacheWriteNanos += o.elapsedCacheWriteNanos; +// elapsedDiskWriteNanos += o.elapsedDiskWriteNanos; +// +// nforce += o.nforce; +// ntruncate += o.ntruncate; +// nreopen += o.nreopen; +// nwriteRootBlock += o.nwriteRootBlock; +// +// } +// +// /** +// * Returns a new {@link StoreCounters} containing the current counter values +// * minus the given counter values. +// * +// * @param o +// * +// * @return +// */ +// public StoreCounters subtract(final StoreCounters o) { +// +// // make a copy of the current counters. +// final StoreCounters t = new StoreCounters(this); +// +// // subtract out the given counters. +// t.nreads -= o.nreads; +// t.ncacheRead -= o.ncacheRead; +// t.ndiskRead -= o.ndiskRead; +// t.bytesRead -= o.bytesRead; +// t.bytesReadFromDisk -= o.bytesReadFromDisk; +// t.maxReadSize -= o.maxReadSize; +// t.elapsedReadNanos -= o.elapsedReadNanos; +// t.elapsedCacheReadNanos -= o.elapsedCacheReadNanos; +// t.elapsedDiskReadNanos -= o.elapsedDiskReadNanos; +// +// t.nwrites -= o.nwrites; +// t.ncacheWrite -= o.ncacheWrite; +// t.ncacheFlush -= o.ncacheFlush; +// t.ndiskWrite -= o.ndiskWrite; +// t.maxWriteSize -= o.maxWriteSize; +// t.bytesWritten -= o.bytesWritten; +// t.bytesWrittenOnDisk -= o.bytesWrittenOnDisk; +// t.elapsedWriteNanos -= o.elapsedWriteNanos; +// t.elapsedCacheWriteNanos -= o.elapsedCacheWriteNanos; +// t.elapsedDiskWriteNanos -= o.elapsedDiskWriteNanos; +// +// t.nforce -= o.nforce; +// t.ntruncate -= o.ntruncate; +// t.nreopen -= o.nreopen; +// t.nwriteRootBlock -= o.nwriteRootBlock; +// +// return t; +// +// } +// +// synchronized public CounterSet getCounters() { +// +// if (root == null) { +// +// root = new CounterSet(); +// +// // IRawStore API +// { +// +// /* +// * reads +// */ +// +// root.addCounter("nreads", new Instrument<Long>() { +// public void sample() { +// setValue(nreads); +// } +// }); +// +// root.addCounter("bytesRead", new Instrument<Long>() { +// public void sample() { +// setValue(bytesRead); +// } +// }); +// +// root.addCounter("readSecs", new Instrument<Double>() { +// public void sample() { +// final double elapsedReadSecs = (elapsedReadNanos / 1000000000.); +// setValue(elapsedReadSecs); +// } +// }); +// +// root.addCounter("bytesReadPerSec", +// new Instrument<Double>() { +// public void sample() { +// final double readSecs = (elapsedReadNanos / 1000000000.); +// final double bytesReadPerSec = (readSecs == 0L ? 0d +// : (bytesRead / readSecs)); +// setValue(bytesReadPerSec); +// } +// }); +// +// root.addCounter("maxReadSize", new Instrument<Long>() { +// public void sample() { +// setValue(maxReadSize); +// } +// }); +// +// /* +// * writes +// */ +// +// root.addCounter("nwrites", new Instrument<Long>() { +// public void sample() { +// setValue(nwrites); +// } +// }); +// +// root.addCounter("bytesWritten", new Instrument<Long>() { +// p... [truncated message content] |
From: <btm...@us...> - 2010-08-06 22:35:04
|
Revision: 3431 http://bigdata.svn.sourceforge.net/bigdata/?rev=3431&view=rev Author: btmurphy Date: 2010-08-06 22:34:57 +0000 (Fri, 06 Aug 2010) Log Message: ----------- merge -r3427:HEAD(3430) ~/bigdata/trunk ~/bigdata/branches/bugfix-btm [trunk --> branch bugfix-btm] Modified Paths: -------------- branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoins.java branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoinsWithoutInlining.java Property Changed: ---------------- branches/bugfix-btm/ branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config/ branches/bugfix-btm/bigdata-perf/btc/src/ branches/bugfix-btm/bigdata-perf/lubm/lib/ branches/bugfix-btm/bigdata-perf/lubm/src/resources/ branches/bugfix-btm/bigdata-perf/uniprot/src/ branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/ branches/bugfix-btm/dsi-utils/src/java/ branches/bugfix-btm/dsi-utils/src/test/ Property changes on: branches/bugfix-btm ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3427 + /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:2595-2877,2883-3010,3012-3430 Modified: branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java =================================================================== --- branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java 2010-08-06 20:24:26 UTC (rev 3430) +++ branches/bugfix-btm/bigdata/src/java/com/bigdata/mdi/PartitionLocator.java 2010-08-06 22:34:57 UTC (rev 3431) @@ -185,8 +185,7 @@ } - // Note: used by assertEquals in the test cases. - public boolean equals(Object o) { + public boolean equals(final Object o) { if (this == o) return true; Property changes on: branches/bugfix-btm/bigdata-jini/src/java/com/bigdata/disco/config ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/bigdata-jini/src/java/com/bigdata/disco/config:3270-3427 + /trunk/bigdata-jini/src/java/com/bigdata/disco/config:3270-3430 Property changes on: branches/bugfix-btm/bigdata-perf/btc/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/bigdata-perf/btc/src:3270-3427 + /trunk/bigdata-perf/btc/src:3270-3430 Property changes on: branches/bugfix-btm/bigdata-perf/lubm/lib ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/bigdata-perf/lubm/lib:3270-3427 + /trunk/bigdata-perf/lubm/lib:3270-3430 Property changes on: branches/bugfix-btm/bigdata-perf/lubm/src/resources ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/bigdata-perf/lubm/src/resources:3270-3427 + /trunk/bigdata-perf/lubm/src/resources:3270-3430 Property changes on: branches/bugfix-btm/bigdata-perf/uniprot/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/bigdata-perf/uniprot/src:3270-3427 + /trunk/bigdata-perf/uniprot/src:3270-3430 Property changes on: branches/bugfix-btm/bigdata-sails/src/java/com/bigdata/rdf/sail/bench ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/bigdata-sails/src/java/com/bigdata/rdf/sail/bench:3426-3427 + /trunk/bigdata-sails/src/java/com/bigdata/rdf/sail/bench:3426-3430 Modified: branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoins.java =================================================================== --- branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoins.java 2010-08-06 20:24:26 UTC (rev 3430) +++ branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoins.java 2010-08-06 22:34:57 UTC (rev 3431) @@ -108,7 +108,12 @@ try { - tckSuite.addTest(BigdataSparqlTest.suiteLTSWithPipelineJoins()); + /* + * suite() will call suiteLTSWithPipelineJoins() and then + * filter out the dataset tests, which we don't need right now + */ +// tckSuite.addTest(BigdataSparqlTest.suiteLTSWithPipelineJoins()); + tckSuite.addTest(BigdataSparqlTest.suite()); } catch (Exception ex) { Modified: branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoinsWithoutInlining.java =================================================================== --- branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoinsWithoutInlining.java 2010-08-06 20:24:26 UTC (rev 3430) +++ branches/bugfix-btm/bigdata-sails/src/test/com/bigdata/rdf/sail/TestBigdataSailWithQuadsAndPipelineJoinsWithoutInlining.java 2010-08-06 22:34:57 UTC (rev 3431) @@ -108,7 +108,12 @@ try { - tckSuite.addTest(BigdataSparqlTest.suiteLTSWithPipelineJoins()); + /* + * suite() will call suiteLTSWithPipelineJoins() and then + * filter out the dataset tests, which we don't need right now + */ +// tckSuite.addTest(BigdataSparqlTest.suiteLTSWithPipelineJoins()); + tckSuite.addTest(BigdataSparqlTest.suite()); } catch (Exception ex) { Property changes on: branches/bugfix-btm/dsi-utils/src/java ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/dsi-utils/src/java:3270-3427 + /trunk/dsi-utils/src/java:3270-3430 Property changes on: branches/bugfix-btm/dsi-utils/src/test ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/dsi-utils/src/test:3270-3427 + /trunk/dsi-utils/src/test:3270-3430 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |