This list is closed, nobody may subscribe to it.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(139) |
Aug
(94) |
Sep
(232) |
Oct
(143) |
Nov
(138) |
Dec
(55) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(127) |
Feb
(90) |
Mar
(101) |
Apr
(74) |
May
(148) |
Jun
(241) |
Jul
(169) |
Aug
(121) |
Sep
(157) |
Oct
(199) |
Nov
(281) |
Dec
(75) |
2012 |
Jan
(107) |
Feb
(122) |
Mar
(184) |
Apr
(73) |
May
(14) |
Jun
(49) |
Jul
(26) |
Aug
(103) |
Sep
(133) |
Oct
(61) |
Nov
(51) |
Dec
(55) |
2013 |
Jan
(59) |
Feb
(72) |
Mar
(99) |
Apr
(62) |
May
(92) |
Jun
(19) |
Jul
(31) |
Aug
(138) |
Sep
(47) |
Oct
(83) |
Nov
(95) |
Dec
(111) |
2014 |
Jan
(125) |
Feb
(60) |
Mar
(119) |
Apr
(136) |
May
(270) |
Jun
(83) |
Jul
(88) |
Aug
(30) |
Sep
(47) |
Oct
(27) |
Nov
(23) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(4) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <tho...@us...> - 2014-05-04 20:35:38
|
Revision: 8184 http://sourceforge.net/p/bigdata/code/8184 Author: thompsonbry Date: 2014-05-04 20:35:34 +0000 (Sun, 04 May 2014) Log Message: ----------- Changed the default policy to the GangliaLBSPolicy for testing. Added min/max threads environment variables to startHAServices. This are examined by jetty.xml. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml 2014-05-04 19:33:40 UTC (rev 8183) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml 2014-05-04 20:35:34 UTC (rev 8184) @@ -139,7 +139,7 @@ <async-supported>true</async-supported> <init-param> <param-name>policy</param-name> - <param-value>com.bigdata.rdf.sail.webapp.lbs.policy.RoundRobinLBSPolicy</param-value> + <param-value>com.bigdata.rdf.sail.webapp.lbs.policy.ganglia.GangliaLBSPolicy</param-value> <description> The load balancer policy. This must be an instance of the IHALoadBalancerPolicy interface. A default policy (NOPLBSPolicy) is @@ -151,15 +151,23 @@ The following policies are pre-defined: - com.bigdata.rdf.sail.webapp.lbs.policy.NOPLBSPolicy - Does not load balance read requests. + com.bigdata.rdf.sail.webapp.lbs.policy.NOPLBSPolicy: - com.bigdata.rdf.sail.webapp.lbs.policy.RoundRobinLBSPolicy - Round robin for read requests. + Does not load balance read requests. - com.bigdata.rdf.sail.webapp.lbs.policy.GangliaLBSPolicy - Load based proxying for read requests using ganglia. + com.bigdata.rdf.sail.webapp.lbs.policy.RoundRobinLBSPolicy: - Some policies can be configured using additional init-param elements - that they understand. See the javadoc for the individual policies for - more information. + Round robin for read requests. + + com.bigdata.rdf.sail.webapp.lbs.policy.ganglia.GangliaLBSPolicy: + + Load based proxying for read requests using ganglia. Either gmond + must be installed on each node or the embedded GangliaService must + be enabled such that performance metrics are collected and reported. + + Some of these policies can be further configured using additional + init-param elements that they understand. See the javadoc for the + individual policies for more information. </description> </init-param> </servlet> Modified: branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-04 19:33:40 UTC (rev 8183) +++ branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-04 20:35:34 UTC (rev 8184) @@ -82,6 +82,8 @@ -DZK_SERVERS=${ZK_SERVERS}\ -DHA_PORT=${HA_PORT}\ "-Dcom.bigdata.hostname=${BIGDATA_HOSTNAME}"\ + "-Djetty.threads.min=${JETTY_THREADS_MIN}"\ + "-Djetty.threads.max=${JETTY_THREADS_MAX}"\ "-Djetty.port=${JETTY_PORT}"\ "-Djetty.resourceBase=${JETTY_RESOURCE_BASE}"\ "-DJETTY_XML=${JETTY_XML}"\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 19:33:43
|
Revision: 8183 http://sourceforge.net/p/bigdata/code/8183 Author: thompsonbry Date: 2014-05-04 19:33:40 +0000 (Sun, 04 May 2014) Log Message: ----------- Bug fix to startHAServices. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices Modified: branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-04 19:29:00 UTC (rev 8182) +++ branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-04 19:33:40 UTC (rev 8183) @@ -81,7 +81,7 @@ -DLOCATORS=${LOCATORS}\ -DZK_SERVERS=${ZK_SERVERS}\ -DHA_PORT=${HA_PORT}\ - "-Dcom.bigdata.hostname=${BIGDATA_HOSTNAME}\ + "-Dcom.bigdata.hostname=${BIGDATA_HOSTNAME}"\ "-Djetty.port=${JETTY_PORT}"\ "-Djetty.resourceBase=${JETTY_RESOURCE_BASE}"\ "-DJETTY_XML=${JETTY_XML}"\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 19:29:03
|
Revision: 8182 http://sourceforge.net/p/bigdata/code/8182 Author: thompsonbry Date: 2014-05-04 19:29:00 +0000 (Sun, 04 May 2014) Log Message: ----------- Adding to startHAServices. If the BIGDATA_HOSTNAME is not defined, then the actual canonical hostname will be used. See #886 (Provide workaround for bad reverse DNS setups) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices Modified: branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-04 15:37:32 UTC (rev 8181) +++ branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-04 19:29:00 UTC (rev 8182) @@ -81,6 +81,7 @@ -DLOCATORS=${LOCATORS}\ -DZK_SERVERS=${ZK_SERVERS}\ -DHA_PORT=${HA_PORT}\ + "-Dcom.bigdata.hostname=${BIGDATA_HOSTNAME}\ "-Djetty.port=${JETTY_PORT}"\ "-Djetty.resourceBase=${JETTY_RESOURCE_BASE}"\ "-DJETTY_XML=${JETTY_XML}"\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 15:37:36
|
Revision: 8181 http://sourceforge.net/p/bigdata/code/8181 Author: thompsonbry Date: 2014-05-04 15:37:32 +0000 (Sun, 04 May 2014) Log Message: ----------- Added counter to ServiceScore to track the #of requests that are handed to each service by the LBS on a given service. See #624 (HA LBS). Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-04 15:11:55 UTC (rev 8180) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-04 15:37:32 UTC (rev 8181) @@ -59,19 +59,6 @@ * services (especially the requestURL at which they will respond). * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * - * FIXME The {@link QuorumListener} is unregistered by - * {@link AbstractQuorum#terminate()}. This happens any time the - * {@link HAJournalServer} goes into the error state. When this occurs, - * we stop getting {@link QuorumEvent}s and the policy stops being - * responsive (it can not proxy the request to a service that is still - * up because it does not know what services are up, or maybe it just - * can not learn if services go down). - * <p> - * We probably need to either NOT clear the quorum listener and/or add - * an event type that is sent when {@link Quorum#terminate()} is called - * and/or use our own listener (independent of the HAJournalServer, - * which would require us to use an HAClient). */ abstract public class AbstractLBSPolicy implements IHALoadBalancerPolicy, QuorumListener, Serializable { @@ -431,6 +418,27 @@ * {@inheritDoc} * <p> * The services table is updated if a services joins or leaves the quorum. + * + * FIXME The {@link QuorumListener} is unregistered by + * {@link AbstractQuorum#terminate()}. This happens any time the + * {@link HAJournalServer} goes into the error state. When this occurs, we + * stop getting {@link QuorumEvent}s and the policy stops being responsive + * (it can not proxy the request to a service that is still up because it + * does not know what services are up, or maybe it just can not learn if + * services go down). + * <p> + * We probably need to either NOT clear the quorum listener and/or add an + * event type that is sent when {@link Quorum#terminate()} is called and/or + * use our own listener (independent of the HAJournalServer, which would + * require us to use an HAClient). + * <p> + * This should be robust even when the HAQuorumService is not running. We do + * not want to be unable to proxy to another service just because this one + * is going through an error state. Would it make more sense to have a 2nd + * Quorum object for this purpose - one that is not started and stopped by + * the HAJournalServer? + * + * @see http://trac.bigdata.com/ticket/775 (HAJournal start() delay) */ @Override public void notify(final QuorumEvent e) { @@ -457,14 +465,6 @@ * populate it, but we can only do that if the HAQuorumService is * running.) * - * FIXME This should be robust even when the HAQuorumService is not - * running. We do not want to be unable to proxy to another service - * just because this one is going through an error state. Would it - * make more sense to have a 2nd Quorum object for this purpose - - * one that is not started and stopped by the HAJournalServer? - * - * @see http://trac.bigdata.com/ticket/775 (HAJournal start() delay) - * * Note: Synchronization here is used to ensure only one thread runs * this logic if the table does not exist and we get a barrage of * requests. @@ -500,8 +500,13 @@ /* * If there is an existing service table, then we search it for an - * existing definition for a service. This let's avoid doing an RMI to - * a Service that is already defined in the current service table. + * existing definition for a service. This let's avoid doing an RMI to a + * Service that is already defined in the current service table. + * + * Note: We need to hold all discovered services in a map if we want to + * keep the statistics [nrequests] across leave/joins. Right now, a + * service leave followed by a join will cause a new ServiceScore and + * that will reset the counters to zero. */ final ServiceScore[] oldTable = serviceTableRef.get(); Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java 2014-05-04 15:11:55 UTC (rev 8180) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java 2014-05-04 15:37:32 UTC (rev 8181) @@ -25,6 +25,7 @@ import java.io.IOException; import java.util.UUID; +import com.bigdata.counters.CAT; import com.bigdata.ha.HAGlue; import com.bigdata.ha.QuorumService; import com.bigdata.journal.IIndexManager; @@ -138,14 +139,19 @@ return requestURI; } + + /** + * The #of requests that have been directed to this service. + */ + public final CAT nrequests = new CAT(); @Override public String toString() { return getClass().getName() + "{serviceUUID=" + serviceUUID + ", hostname=" + hostname + ", port=" + port + ", requestURI=" - + requestURI + "}"; - + + requestURI + ", nrequests=" + nrequests.get() + "}"; + } public ServiceScore(final IIndexManager indexManager, Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java 2014-05-04 15:11:55 UTC (rev 8180) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java 2014-05-04 15:37:32 UTC (rev 8181) @@ -136,6 +136,9 @@ } + // track #of requests to each service. + serviceScore.nrequests.increment(); + return serviceScore.getRequestURI(); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java 2014-05-04 15:11:55 UTC (rev 8180) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java 2014-05-04 15:37:32 UTC (rev 8181) @@ -771,6 +771,9 @@ final ServiceScore serviceScore = foundServices.get(n); + // track #of requests to each service. + serviceScore.nrequests.increment(); + return serviceScore.getRequestURI(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 15:11:59
|
Revision: 8180 http://sourceforge.net/p/bigdata/code/8180 Author: thompsonbry Date: 2014-05-04 15:11:55 +0000 (Sun, 04 May 2014) Log Message: ----------- Optimized code path when there is a change in the set of discovered services for the HA load balancer to reuse an existing declaration for a service from the old table. This avoids some needless RMI. See #624 (HA LBS) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-04 15:05:59 UTC (rev 8179) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-04 15:11:55 UTC (rev 8180) @@ -498,26 +498,43 @@ final UUID[] joined = quorum.getJoined(); + /* + * If there is an existing service table, then we search it for an + * existing definition for a service. This let's avoid doing an RMI to + * a Service that is already defined in the current service table. + */ + final ServiceScore[] oldTable = serviceTableRef.get(); + final ServiceScore[] serviceScores = new ServiceScore[joined.length]; for (int i = 0; i < joined.length; i++) { final UUID serviceId = joined[i]; + if (oldTable != null) { + + // Check old service table before doing RMI. + for (int j = 0; j < oldTable.length; j++) { + + final ServiceScore oldScore = oldTable[j]; + + if (oldScore != null + && serviceId.equals(oldScore.getServiceUUID())) { + + // Found existing declaration for this service. + serviceScores[i] = oldTable[j]; + + break; + + } + + } + + } + try { - /* - * TODO We only need to do this when a service enters the - * quorum, but we already have the information on hand for all - * services except the one that is entering. To reduce overhead - * and RMI calls, we should scan the existing table before doing - * an RMI to the service. We only need to do the RMI for a new - * service, not one in the table. A services - * HashMap<UUID,HAGlueScore> would be much more efficient than a - * table for this scan. If we use a CHM, then we can do this - * purely asynchronously as the HAGlue services enter (or leave) - * the set of joined services. - */ + // Do RMI to create declaration for this service. serviceScores[i] = new ServiceScore(journal, contextPath.get(), serviceId); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 15:06:05
|
Revision: 8179 http://sourceforge.net/p/bigdata/code/8179 Author: thompsonbry Date: 2014-05-04 15:05:59 +0000 (Sun, 04 May 2014) Log Message: ----------- Removed some comment blocks (dead code). Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/NanoSparqlServer.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/NanoSparqlServer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/NanoSparqlServer.java 2014-05-04 14:47:29 UTC (rev 8178) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/NanoSparqlServer.java 2014-05-04 15:05:59 UTC (rev 8179) @@ -67,37 +67,11 @@ * Embedding Jetty </a> * * @todo If the addressed instance uses full transactions, then mutation should - * also use a full transaction. + * also use a full transaction. Does it? * * @todo Remote command to advance the read-behind point. This will let people * bulk load a bunch of stuff before advancing queries to read from the * new consistent commit point. - * - * @todo Note: There appear to be plenty of ways to setup JSP support for - * embedded jetty, and plenty of ways to get it wrong. I wound up adding - * to the classpath the following jars for jetty 7.2.2 to get this - * running: - * - * <pre> - * com.sun.el_1.0.0.v201004190952.jar - * ecj-3.6.jar - * javax.el_2.1.0.v201004190952.jar - * javax.servlet.jsp.jstl_1.2.0.v201004190952.jar - * javax.servlet.jsp_2.1.0.v201004190952.jar - * jetty-jsp-2.1-7.2.2.v20101205.jar - * org.apache.jasper.glassfish_2.1.0.v201007080150.jar - * org.apache.taglibs.standard.glassfish_1.2.0.v201004190952.jar - * </pre> - * - * Note: JSP pages for the servlet 2.5 specification add the following - * dependencies: - * - * <pre> - * ant-1.6.5.jar - * core-3.1.1.jar - * jsp-2.1.jar - * jsp-api-2.1.jar - * </pre> */ public class NanoSparqlServer { @@ -493,83 +467,7 @@ } -// final Server server = new Server(port); -// -// final ServletContextHandler context = getContextHandler(initParams); -// -// final ResourceHandler resourceHandler = new ResourceHandler(); -// -// setupStaticResources(NanoSparqlServer.class.getClassLoader(), -// resourceHandler); -// -// // same resource base. -// context.setResourceBase(resourceHandler.getResourceBase()); -// context.setWelcomeFiles(resourceHandler.getWelcomeFiles()); -// -// final HandlerList handlers = new HandlerList(); -// -// handlers.setHandlers(new Handler[] { -// context,// maps servlets -// resourceHandler,// maps welcome files. -// new DefaultHandler() // responsible for anything not explicitly served. -// }); -// -// server.setHandler(handlers); -// -// // Force the use of the caller's IIndexManager. -// context.setAttribute(IIndexManager.class.getName(), indexManager); -// -// return server; - } - -// /** -// * Variant used when the life cycle of the {@link IIndexManager} will be -// * managed by the server - this form is used by {@link #main(String[])}. -// * <p> -// * Note: This is mostly a convenience for scripts that do not need to take -// * over the detailed control of the jetty container and the bigdata webapp. -// * -// * @param port -// * The port on which the service will run -OR- ZERO (0) for any -// * open port. -// * @param propertyFile -// * The <code>.properties</code> file (for a standalone database -// * instance) or the <code>.config</code> file (for a federation). -// * @param initParams -// * Initialization parameters for the web application as specified -// * by {@link ConfigParams}. -// * -// * @return The server instance. -// */ -// static public Server newInstance(final int port, final String propertyFileIsNotUsed, -// final Map<String, String> initParams) throws Exception { -// -// final Server server = new Server(port); -// -// final ServletContextHandler context = getContextHandler(initParams); -// -// final ResourceHandler resourceHandler = new ResourceHandler(); -// -// setupStaticResources(NanoSparqlServer.class.getClassLoader(), -// resourceHandler); -// -// // same resource base. -// context.setResourceBase(resourceHandler.getResourceBase()); -// context.setWelcomeFiles(resourceHandler.getWelcomeFiles()); -// -// final HandlerList handlers = new HandlerList(); -// -// handlers.setHandlers(new Handler[] {// -// context,// maps servlets -// resourceHandler,// maps welcome files. -// new DefaultHandler() // responsible for anything not explicitly served. -// }); -// -// server.setHandler(handlers); -// -// return server; -// } /** * Variant used when you already have the {@link IIndexManager} on hand and @@ -753,253 +651,6 @@ } -// /** -// * Construct a {@link ServletContextHandler}. -// * <p> -// * Note: The {@link ContextHandler} uses the longest prefix of the request -// * URI (the contextPath) to select a specific {@link Handler}. -// * <p> -// * Note: If you are using <code>web.xml</code>, then all of this stuff is -// * done there instead. -// * -// * @param initParams -// * The init parameters, per the web.xml definition. -// */ -// static private ServletContextHandler getContextHandler( -// final Map<String, String> initParams) throws Exception { -// -// if (initParams == null) -// throw new IllegalArgumentException(); -// -// final ServletContextHandler context = new ServletContextHandler( -// ServletContextHandler.NO_SECURITY -//// | ServletContextHandler.NO_SESSIONS -// ); -// -// // Path to the webapp. -// context.setContextPath(BigdataStatics.getContextPath()); -// -// /* -// * Register a listener which will handle the life cycle events for the -// * ServletContext. -// */ -// { -// -// String className = initParams -// .get(ConfigParams.SERVLET_CONTEXT_LISTENER_CLASS); -// -// if (className == null) -// className = ConfigParams.DEFAULT_SERVLET_CONTEXT_LISTENER_CLASS; -// -// final Class<BigdataRDFServletContextListener> cls = (Class<BigdataRDFServletContextListener>) Class -// .forName(className); -// -// if (!BigdataRDFServletContextListener.class.isAssignableFrom(cls)) { -// -// throw new RuntimeException("Invalid option: " -// + ConfigParams.SERVLET_CONTEXT_LISTENER_CLASS + "=" -// + className + ":: Class does not extend " -// + BigdataRDFServletContextListener.class); -// -// } -// -// final BigdataRDFServletContextListener listener = cls.newInstance(); -// -// context.addEventListener(listener); -// -// } -// -// /* -// * Set the servlet context properties. -// */ -// for (Map.Entry<String, String> e : initParams.entrySet()) { -// -// context.setInitParameter(e.getKey(), e.getValue()); -// -// } -// -// // html directory. -// context.addServlet(new ServletHolder(new DefaultServlet()), -// "/html/*"); -// -// // Appears necessary for http://localhost:8080/bigdata to bring up index.html. -// context.addServlet(new ServletHolder(new DefaultServlet()), -// "/"); -// -// // Performance counters. -// context.addServlet(new ServletHolder(new CountersServlet()), -// "/counters"); -// -// // Status page. -// context.addServlet(new ServletHolder(new StatusServlet()), "/status"); -// -// // Core RDF REST API, including SPARQL query and update. -// context.addServlet(new ServletHolder(new RESTServlet()), "/sparql/*"); -// -// // Multi-Tenancy API. -// context.addServlet(new ServletHolder(new MultiTenancyServlet()), -// "/namespace/*"); -// -// // Incremental truth maintenance -// context.addServlet(new ServletHolder(new InferenceServlet()), -// "/inference"); -// -//// context.setResourceBase("bigdata-war/src/html"); -//// -//// context.setWelcomeFiles(new String[]{"index.html"}); -// -// return context; -// -// } - -// /** -// * Setup access to the web app resources, especially index.html. -// * -// * @see https://sourceforge.net/apps/trac/bigdata/ticket/330 -// * -// * @param classLoader -// * @param context -// */ -// private static void setupStaticResources(final ClassLoader classLoader, -// final ServletContextHandler context) { -// -// final URL url = getStaticResourceURL(classLoader, "html"); -// -// if (url != null) { -// -// /* -// * We have located the resource. Set it as the resource base from -// * which static content will be served. -// */ -// -// final String webDir = url.toExternalForm(); -// -// context.setResourceBase(webDir); -// -// context.setContextPath("/"); -// -// } -// -// } -// -// /** -// * Setup access to the welcome page (index.html). -// */ -// private static void setupStaticResources(final ClassLoader classLoader, -// final ResourceHandler context) { -// -// context.setDirectoriesListed(false); // Nope! -// -// final String file = "html/index.html"; -// -// final URL url; -// { -// -// URL tmp = null; -// -// if (tmp == null) { -// -//// // project local file system path. -//// classLoader.getResource("bigdata-war/src/html/" + file); -// -// } -// -// if (tmp == null) { -// -// // Check the classpath. -// tmp = classLoader.getResource(file); -// -// } -// -// url = tmp; -// -// if (url == null) { -// -// throw new RuntimeException("Could not locate index.html"); -// -// } -// -// } -// -// /* -// * We have located the resource. Set it as the resource base from which -// * static content will be served. -// */ -// final String indexHtmlUrl = url.toExternalForm(); -// -// final String webDir = indexHtmlUrl.substring(0, indexHtmlUrl.length() -// - file.length()); -// -// // Path to the content in the local file system or JAR. -// context.setResourceBase(webDir); -// -// /* -// * Note: replace with "new.html" for the new UX. Also change in -// * web.xml. -// */ -// context.setWelcomeFiles(new String[]{"html/index.html"}); -// -// if (log.isInfoEnabled()) -// log.info("\nindex.html: =" + indexHtmlUrl + "\nresourceBase=" -// + webDir); -// -// } - -// /** -// * Return the URL for the static web app resources (for example, -// * <code>index.html</code>). -// * -// * @param classLoader -// * The {@link ClassLoader} that will be used to locate the -// * resource (required). -// * @param path -// * The path for the resource (required) -// * -// * @return The URL for the web app resource directory -or- <code>null</code> -// * if it could not be found on the class path. -// * -// * @see https://sourceforge.net/apps/trac/bigdata/ticket/330 -// */ -// private static URL getStaticResourceURL(final ClassLoader classLoader, -// final String path) { -// -// if (classLoader == null) -// throw new IllegalArgumentException(); -// -// if (path == null) -// throw new IllegalArgumentException(); -// -// /* -// * This is the resource path in the JAR. -// */ -// final String WEB_DIR_JAR = "bigdata-war/src/html" -// + (path == null ? "" : "/" + path); -// -// /* -// * This is the resource path in the IDE when NOT using the JAR. -// * -// * Note: You MUST have "bigdata-war/src" on the build path for the IDE. -// */ -// final String WEB_DIR_IDE = "html/" + path; // "html"; -// -// URL url = classLoader.getResource(WEB_DIR_JAR); -// -// if (url == null && path != null) { -// -// url = classLoader.getResource(WEB_DIR_IDE);// "html"); -// -// } -// -// if (url == null) { -// -// log.error("Could not locate: " + WEB_DIR_JAR + ", " + WEB_DIR_IDE -// + ", -or- " + path); -// } -// -// return url; -// -// } - /** * Best effort attempt to return the port at which the local jetty * {@link Server} is receiving http connections. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 14:47:45
|
Revision: 8178 http://sourceforge.net/p/bigdata/code/8178 Author: thompsonbry Date: 2014-05-04 14:47:29 +0000 (Sun, 04 May 2014) Log Message: ----------- Providing more information about the state of the HA LBS. See #624 (HA LBS) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/HostTable.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-04 13:04:27 UTC (rev 8177) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-04 14:47:29 UTC (rev 8178) @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.Serializable; import java.lang.ref.WeakReference; +import java.util.Arrays; import java.util.UUID; import java.util.concurrent.atomic.AtomicReference; @@ -110,10 +111,49 @@ * then we do not know how to reach that service and can not proxy the * request. */ - protected final AtomicReference<ServiceScore[]> serviceTable = new AtomicReference<ServiceScore[]>( + protected final AtomicReference<ServiceScore[]> serviceTableRef = new AtomicReference<ServiceScore[]>( null); /** + * Note: implementation is non-blocking! + */ + @Override + public String toString() { + + final ServiceScore[] serviceTable = serviceTableRef.get(); + + final String tmp; + if (serviceTable != null) { + tmp = Arrays.toString(serviceTable); + } else { + tmp = "N/A"; + } + + final StringBuilder sb = new StringBuilder(256); + + sb.append(this.getClass().getName()); + sb.append("{contextPath=" + contextPath.get()); + sb.append(",journal=" + journalRef.get()); + sb.append(",serviceID=" + serviceIDRef.get()); + sb.append(",services=" + tmp); + toString(sb); // extension hook + sb.append("}"); + + return sb.toString(); + + } + + /** + * Extension hook for {@link #toString()} - implementation MUST NOT block. + * + * @param sb + * Buffer where you can write additional state. + */ + protected void toString(final StringBuilder sb) { + + } + + /** * Return the cached reference to the {@link HAJournal}. * * @return The reference or <code>null</code> iff the reference has been @@ -137,7 +177,7 @@ journalRef.set(null); - serviceTable.set(null); + serviceTableRef.set(null); } @@ -293,7 +333,7 @@ * proxy the request at this time. */ - final ServiceScore[] services = serviceTable.get(); + final ServiceScore[] services = serviceTableRef.get(); if (services == null) { @@ -324,7 +364,7 @@ */ protected ServiceScore getLocalServiceScore() { - final ServiceScore[] services = serviceTable.get(); + final ServiceScore[] services = serviceTableRef.get(); if (services == null) { @@ -362,7 +402,7 @@ if (hostname == null) throw new IllegalArgumentException(); - final ServiceScore[] services = serviceTable.get(); + final ServiceScore[] services = serviceTableRef.get(); if (services == null) { @@ -403,12 +443,12 @@ } /** - * Conditionally update the {@link #serviceTable} iff it does not exist or + * Conditionally update the {@link #serviceTableRef} iff it does not exist or * is empty. */ protected void conditionallyUpdateServiceTable() { - final ServiceScore[] services = serviceTable.get(); + final ServiceScore[] services = serviceTableRef.get(); if (services == null || services.length == 0) { @@ -429,7 +469,7 @@ * this logic if the table does not exist and we get a barrage of * requests. */ - synchronized (serviceTable) { + synchronized (serviceTableRef) { updateServiceTable(); @@ -442,7 +482,7 @@ /** * Update the per-service table. * - * @see #serviceTable + * @see #serviceTableRef */ protected void updateServiceTable() { @@ -499,7 +539,7 @@ if (log.isInfoEnabled()) log.info("Updated servicesTable: #services=" + serviceScores.length); - this.serviceTable.set(serviceScores); + this.serviceTableRef.set(serviceScores); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java 2014-05-04 13:04:27 UTC (rev 8177) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java 2014-05-04 14:47:29 UTC (rev 8178) @@ -50,10 +50,10 @@ */ final private UUID serviceUUID; - /** - * The {@link HAGlue} interface for the remote service. - */ - private HAGlue haGlue; +// /** +// * The {@link HAGlue} interface for the remote service. +// */ +// private HAGlue haGlue; /** * The hostname for the remote service. @@ -190,6 +190,7 @@ quorumService = t; } + final HAGlue haGlue; try { haGlue = quorumService.getService(serviceUUID); } catch (IllegalArgumentException ex) { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java 2014-05-04 13:04:27 UTC (rev 8177) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java 2014-05-04 14:47:29 UTC (rev 8178) @@ -42,6 +42,15 @@ */ private static final long serialVersionUID = 1L; + @Override + protected void toString(final StringBuilder sb) { + + super.toString(sb); + + sb.append(",nextService=" + nextService.get()); + + } + /** * {@inheritDoc} * <p> @@ -52,7 +61,7 @@ @Override public String getReaderURL(final HttpServletRequest request) { - final ServiceScore[] serviceScores = this.serviceTable.get(); + final ServiceScore[] serviceScores = this.serviceTableRef.get(); if (serviceScores == null) { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java 2014-05-04 13:04:27 UTC (rev 8177) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java 2014-05-04 14:47:29 UTC (rev 8178) @@ -28,6 +28,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Random; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -169,16 +171,20 @@ } /** - * @see InitParams#LOCAL_FORWARD_THRESHOLD + * Place into descending order by load_one. + * <p> + * Note: We do not rely on the ordering imposed by this comparator. Instead, + * we filter the hosts for those that correspond to the joined services in + * the met quorum, compute a score for each such host, and then normalize + * those scores. */ - private final AtomicReference<Double> localForwardThresholdRef = new AtomicReference<Double>(); + private final static Comparator<IHostReport> comparator = new HostReportComparator( + "load_one", false/* asc */); /** - * The rule used to score the {@link IHostReport}s. - * - * @see InitParams#HOST_SCORING_RULE + * @see InitParams#LOCAL_FORWARD_THRESHOLD */ - private IHostScoringRule scoringRule; + private final AtomicReference<Double> localForwardThresholdRef = new AtomicReference<Double>(); /** * The set of metrics that we are requesting in the ganglia host reports. @@ -188,15 +194,11 @@ private String[] reportOn; /** - * Place into descending order by load_one. - * <p> - * Note: We do not rely on the ordering imposed by this comparator. Instead, - * we filter the hosts for those that correspond to the joined services in - * the met quorum, compute a score for each such host, and then normalize - * those scores. + * The rule used to score the {@link IHostReport}s. + * + * @see InitParams#HOST_SCORING_RULE */ - private final Comparator<IHostReport> comparator = new HostReportComparator( - "load_one", false/* asc */); + private final AtomicReference<IHostScoringRule> scoringRuleRef = new AtomicReference<IHostScoringRule>(); /** * Random number generator used to load balance the read-requests. @@ -206,7 +208,7 @@ /** * The ganglia service - it must be configured at least as a listener. */ - private GangliaService gangliaService; + private final AtomicReference<GangliaService> gangliaServiceRef = new AtomicReference<GangliaService>(); /** * The {@link Future} of a task that periodically queries the ganglia peer @@ -222,6 +224,47 @@ private final AtomicReference<HostTable> hostTableRef = new AtomicReference<HostTable>( null); + @Override + protected void toString(final StringBuilder sb) { + + super.toString(sb); + + sb.append(",localForwardThreshold=" + localForwardThresholdRef.get()); + + sb.append(",reportOn=" + Arrays.toString(reportOn)); + + sb.append(",scoringRule=" + scoringRuleRef.get()); + + sb.append(",gangliaService=" + gangliaServiceRef.get()); + + sb.append(",hostTable=" + hostTableRef.get()); + + { + final ScheduledFuture<?> tmp = scheduledFuture; + final boolean futureIsDone = tmp == null ? true : tmp.isDone(); + sb.append(",scheduledFuture=" + + (tmp == null ? "N/A" + : (futureIsDone ? "done" : "running"))); + if (futureIsDone && tmp != null) { + // Check for error. + Throwable cause = null; + try { + tmp.get(); + } catch (CancellationException ex) { + cause = ex; + } catch (ExecutionException ex) { + cause = ex; + } catch (InterruptedException ex) { + cause = ex; + } + if (cause != null) { + sb.append("(cause=" + cause + ")"); + } + } + } + + } + // @SuppressWarnings("unchecked") @Override public void init(final ServletConfig servletConfig, @@ -240,9 +283,9 @@ + PlatformStatsPlugIn.class.getName()); } - gangliaService = (GangliaService) journal.getGangliaService(); + gangliaServiceRef.set((GangliaService) journal.getGangliaService()); - if (gangliaService == null) { + if (gangliaServiceRef.get() == null) { // LBS requires ganglia to load balance requests. throw new ServletException("LBS requires " + GangliaPlugIn.class.getName()); @@ -255,7 +298,8 @@ if (s == null) { - this.reportOn = gangliaService.getDefaultHostReportOn(); + this.reportOn = gangliaServiceRef.get() + .getDefaultHostReportOn(); } else { @@ -293,13 +337,13 @@ { - scoringRule = HALoadBalancerServlet.newInstance(servletConfig, + scoringRuleRef.set(HALoadBalancerServlet.newInstance(servletConfig, IHostScoringRule.class, InitParams.HOST_SCORING_RULE, - InitParams.DEFAULT_HOST_SCORING_RULE); + InitParams.DEFAULT_HOST_SCORING_RULE)); if (log.isInfoEnabled()) log.info(InitParams.HOST_SCORING_RULE + "=" - + scoringRule.getClass().getName()); + + scoringRuleRef.getClass().getName()); } @@ -351,7 +395,7 @@ reportOn = null; - gangliaService = null; + gangliaServiceRef.set(null); if (scheduledFuture != null) { @@ -429,14 +473,18 @@ */ private void updateHostTable() { + final GangliaService gangliaService = gangliaServiceRef.get(); + // Snapshot of the per service scores. - final ServiceScore[] serviceScores = serviceTable.get(); + final ServiceScore[] serviceScores = serviceTableRef.get(); - if (serviceScores == null || serviceScores.length == 0) { + if (gangliaService == null || serviceScores == null + || serviceScores.length == 0) { /* - * If there are no joined services then we do not have any host - * scores for those services. + * No ganglia? + * + * No joined services? */ // clear the host table. @@ -447,7 +495,8 @@ } // Obtain the host reports for those services. - final IHostReport[] hostReport = getHostReportForKnownServices(serviceScores); + final IHostReport[] hostReport = getHostReportForKnownServices( + gangliaService, serviceScores); /* * Compute the per-host scores and the total score across those hosts. @@ -459,6 +508,8 @@ double totalScore = 0d; + final IHostScoringRule scoringRule = scoringRuleRef.get(); + for (int i = 0; i < hostReport.length; i++) { final IHostReport theHostScore = hostReport[i]; @@ -562,6 +613,7 @@ * @return A dense array of {@link IHostReport}s for our services. */ private IHostReport[] getHostReportForKnownServices( + final GangliaService gangliaService, final ServiceScore[] serviceScores) { /* @@ -647,7 +699,7 @@ } - final ServiceScore[] services = serviceTable.get(); + final ServiceScore[] services = serviceTableRef.get(); if (services == null) { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/HostTable.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/HostTable.java 2014-05-04 13:04:27 UTC (rev 8177) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/HostTable.java 2014-05-04 14:47:29 UTC (rev 8178) @@ -22,6 +22,8 @@ */ package com.bigdata.rdf.sail.webapp.lbs.policy.ganglia; +import java.util.Arrays; + import com.bigdata.rdf.sail.webapp.lbs.HostScore; /** @@ -51,4 +53,13 @@ this.hostScores = hostScores; } + @Override + public String toString() { + + return "HostTable{this=" + thisHost + ",hostScores=" + + (hostScores == null ? "N/A" : Arrays.toString(hostScores)) + + "}"; + + } + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-04 13:04:31
|
Revision: 8177 http://sourceforge.net/p/bigdata/code/8177 Author: thompsonbry Date: 2014-05-04 13:04:27 +0000 (Sun, 04 May 2014) Log Message: ----------- Changed the default LBS policy from NOP to round-robin for performance testing on HA3 cluster. I will also need to test the ganglia LBS policy. Added ability to view the current LBS policy to the HA status page. See #624 (HA LBS) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HAStatusServletUtil.java branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java 2014-05-03 23:00:06 UTC (rev 8176) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java 2014-05-04 13:04:27 UTC (rev 8177) @@ -4649,7 +4649,7 @@ if (log.isInfoEnabled()) log.info("Will set LBS: wac=" + wac + ", policy: " + policy); - HALoadBalancerServlet.setPolicy(wac.getServletContext(), policy); + HALoadBalancerServlet.setLBSPolicy(wac.getServletContext(), policy); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java 2014-05-03 23:00:06 UTC (rev 8176) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java 2014-05-04 13:04:27 UTC (rev 8177) @@ -217,7 +217,7 @@ * @param newValue * The new value (required). */ - public void setPolicy(final IHALoadBalancerPolicy newValue) { + public void setLBSPolicy(final IHALoadBalancerPolicy newValue) { if (newValue == null) throw new IllegalArgumentException(); @@ -230,6 +230,15 @@ } /** + * Return the current {@link IHALoadBalancerPolicy}. + */ + public IHALoadBalancerPolicy getLBSPolicy() { + + return policyRef.get(); + + } + + /** * Change the {@link IHARequestURIRewriter} associated with this instance of * this servlet. The new policy will be installed iff it can be initialized * successfully. The old policy will be destroyed iff the new policy is @@ -372,7 +381,7 @@ InitParams.DEFAULT_POLICY); // Set the as-configured policy. - setPolicy(policy); + setLBSPolicy(policy); } { @@ -478,9 +487,25 @@ } - public static void setPolicy(final ServletContext servletContext, - final IHALoadBalancerPolicy policy) { + /** + * Set the current {@link IHALoadBalancerPolicy} for all + * {@link HALoadBalancerServlet} instances for the caller specified + * {@link ServletContext}. + * + * @param servletContext + * The {@link ServletContext}. + * @param newValue + * The new {@link IHALoadBalancerPolicy}. + * + * @throws IllegalArgumentException + * if the new policy is <code>null</code>. + */ + public static void setLBSPolicy(final ServletContext servletContext, + final IHALoadBalancerPolicy newValue) { + if (newValue == null) + throw new IllegalArgumentException(); + final HALoadBalancerServlet[] servlets = getServlets(servletContext); if (servlets == null || servlets.length == 0) { @@ -492,11 +517,45 @@ for (HALoadBalancerServlet servlet : servlets) { - servlet.setPolicy(policy); + servlet.setLBSPolicy(newValue); } } + + /** + * Return the {@link IHALoadBalancerPolicy}s that are in force for the + * active {@link HALoadBalancerServlet} instances. + * + * @param servletContext + * The {@link ServletContext}. + * + * @return The {@link IHALoadBalancerPolicy}[] -or- <code>null</code> if + * there are no {@link HALoadBalancerServlet}s. + */ + public static IHALoadBalancerPolicy[] getLBSPolicy( + final ServletContext servletContext) { + + final HALoadBalancerServlet[] servlets = getServlets(servletContext); + + if (servlets == null || servlets.length == 0) { + + // None running. + return null; + + } + + final IHALoadBalancerPolicy[] a = new IHALoadBalancerPolicy[servlets.length]; + + for (int i = 0; i < servlets.length; i++) { + + a[i] = servlets[i].getLBSPolicy(); + + } + + return a; + + } /** * {@inheritDoc} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HAStatusServletUtil.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HAStatusServletUtil.java 2014-05-03 23:00:06 UTC (rev 8176) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HAStatusServletUtil.java 2014-05-04 13:04:27 UTC (rev 8177) @@ -30,6 +30,7 @@ import java.security.DigestException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.Arrays; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeoutException; @@ -283,7 +284,17 @@ p.text("Service: restorePolicy=" + journal.getSnapshotManager().getRestorePolicy()) .node("br").close(); - + + // LBS policy + { + + final IHALoadBalancerPolicy[] a = HALoadBalancerServlet + .getLBSPolicy(req.getServletContext()); + + p.text("Service: LBSPolicy=" + + (a == null ? "N/A" : Arrays.toString(a))) + .node("br").close(); + } // if(true) { // /* // * HABackup: disable this code block. It is for Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml 2014-05-03 23:00:06 UTC (rev 8176) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml 2014-05-04 13:04:27 UTC (rev 8177) @@ -137,6 +137,31 @@ <servlet-class>com.bigdata.rdf.sail.webapp.HALoadBalancerServlet</servlet-class> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> + <init-param> + <param-name>policy</param-name> + <param-value>com.bigdata.rdf.sail.webapp.lbs.policy.RoundRobinLBSPolicy</param-value> + <description> + The load balancer policy. This must be an instance of the + IHALoadBalancerPolicy interface. A default policy (NOPLBSPolicy) is + used when no value is specified. + + The policies differ ONLY in how they handle READ requests. All policies + proxy updates to the leader. If you do not want update proxying, then + use a URL that does not address the HALoadBalancerServlet. + + The following policies are pre-defined: + + com.bigdata.rdf.sail.webapp.lbs.policy.NOPLBSPolicy - Does not load balance read requests. + + com.bigdata.rdf.sail.webapp.lbs.policy.RoundRobinLBSPolicy - Round robin for read requests. + + com.bigdata.rdf.sail.webapp.lbs.policy.GangliaLBSPolicy - Load based proxying for read requests using ganglia. + + Some policies can be configured using additional init-param elements + that they understand. See the javadoc for the individual policies for + more information. + </description> + </init-param> </servlet> <servlet-mapping> <servlet-name>Load Balancer</servlet-name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2014-05-03 23:00:09
|
Revision: 8176 http://sourceforge.net/p/bigdata/code/8176 Author: jeremy_carroll Date: 2014-05-03 23:00:06 +0000 (Sat, 03 May 2014) Log Message: ----------- New tests inspired by trac904 - unfortunately all passing Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/CoreBaseBOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/AbstractOptimizerTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestAll.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTExistsAndJoinOrderByTypeOptimizers.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/CoreBaseBOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/CoreBaseBOp.java 2014-05-03 22:59:31 UTC (rev 8175) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/CoreBaseBOp.java 2014-05-03 23:00:06 UTC (rev 8176) @@ -363,7 +363,7 @@ if(v1 == v2) continue; - if (v1 != null && v2 == null) + if (v1 == null || v2 == null) return false; if (v1.getClass().isArray()) { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/AbstractOptimizerTestCase.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/AbstractOptimizerTestCase.java 2014-05-03 22:59:31 UTC (rev 8175) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/AbstractOptimizerTestCase.java 2014-05-03 23:00:06 UTC (rev 8176) @@ -23,25 +23,29 @@ */ package com.bigdata.rdf.sparql.ast.optimizers; -import java.util.HashMap; -import java.util.Map; import org.openrdf.model.impl.URIImpl; import org.openrdf.query.algebra.StatementPattern.Scope; import com.bigdata.bop.IBindingSet; +import com.bigdata.bop.IValueExpression; +import com.bigdata.bop.IVariable; import com.bigdata.bop.ModifiableBOpBase; +import com.bigdata.journal.ITx; import com.bigdata.rdf.internal.IV; import com.bigdata.rdf.internal.constraints.IsBoundBOp; +import com.bigdata.rdf.internal.constraints.OrBOp; import com.bigdata.rdf.sparql.ast.ASTBase; import com.bigdata.rdf.sparql.ast.ASTContainer; import com.bigdata.rdf.sparql.ast.AbstractASTEvaluationTestCase; import com.bigdata.rdf.sparql.ast.ArbitraryLengthPathNode; import com.bigdata.rdf.sparql.ast.AssignmentNode; import com.bigdata.rdf.sparql.ast.ConstantNode; +import com.bigdata.rdf.sparql.ast.ExistsNode; import com.bigdata.rdf.sparql.ast.FilterNode; import com.bigdata.rdf.sparql.ast.FunctionNode; import com.bigdata.rdf.sparql.ast.FunctionRegistry; +import com.bigdata.rdf.sparql.ast.GlobalAnnotations; import com.bigdata.rdf.sparql.ast.GraphPatternGroup; import com.bigdata.rdf.sparql.ast.GroupMemberNodeBase; import com.bigdata.rdf.sparql.ast.IGroupMemberNode; @@ -50,6 +54,7 @@ import com.bigdata.rdf.sparql.ast.JoinGroupNode; import com.bigdata.rdf.sparql.ast.NamedSubqueryInclude; import com.bigdata.rdf.sparql.ast.NamedSubqueryRoot; +import com.bigdata.rdf.sparql.ast.NotExistsNode; import com.bigdata.rdf.sparql.ast.PathNode; import com.bigdata.rdf.sparql.ast.ValueExpressionNode; import com.bigdata.rdf.sparql.ast.PathNode.*; @@ -60,11 +65,14 @@ import com.bigdata.rdf.sparql.ast.QueryRoot; import com.bigdata.rdf.sparql.ast.QueryType; import com.bigdata.rdf.sparql.ast.StatementPatternNode; +import com.bigdata.rdf.sparql.ast.SubqueryRoot; import com.bigdata.rdf.sparql.ast.TermNode; import com.bigdata.rdf.sparql.ast.UnionNode; import com.bigdata.rdf.sparql.ast.VarNode; import com.bigdata.rdf.sparql.ast.eval.AST2BOpContext; +import com.bigdata.rdf.sparql.ast.eval.AST2BOpUtility; import com.bigdata.rdf.sparql.ast.service.ServiceNode; +import com.bigdata.rdf.spo.SPOKeyOrder; public abstract class AbstractOptimizerTestCase extends AbstractASTEvaluationTestCase { @@ -177,6 +185,7 @@ private VarNode rightVar; private VarNode leftVar; int varCount = 0; + private GlobalAnnotations globals = new GlobalAnnotations(getName(), ITx.READ_COMMITTED); private IV iv(String id) { return makeIV(new URIImpl("http://example/" + id)); @@ -216,7 +225,20 @@ HelperFlag... flags) { return select(new VarNode[] { varNode }, where, flags); } + + protected SubqueryRoot ask(VarNode varNode, JoinGroupNode where) { + final SubqueryRoot rslt = new SubqueryRoot(QueryType.ASK); + final ProjectionNode projection = new ProjectionNode(); + varNode.setAnonymous(true); + rslt.setProjection(projection); + projection.addProjectionExpression(new AssignmentNode(varNode, varNode)); + rslt.setWhereClause(where); + rslt.setAskVar(toValueExpression(varNode)); + + return rslt; + } + protected NamedSubqueryRoot namedSubQuery(String name, VarNode varNode, JoinGroupNode where) { final NamedSubqueryRoot namedSubquery = new NamedSubqueryRoot( @@ -439,6 +461,31 @@ protected AssignmentNode bind(IValueExpressionNode valueNode, VarNode varNode) { return new AssignmentNode(varNode, valueNode); } + + protected FunctionNode or(ValueExpressionNode v1, ValueExpressionNode v2) { + + FunctionNode rslt = FunctionNode.OR(v1, v2); + rslt.setValueExpression(new OrBOp(v1.getValueExpression(),v2.getValueExpression())); + return rslt; + } + + protected ExistsNode exists(VarNode v, GraphPatternGroup<IGroupMemberNode> jg) { + v.setAnonymous(true); + ExistsNode existsNode = new ExistsNode(v, jg); + existsNode.setValueExpression(toValueExpression(v)); + return existsNode; + } + + private IVariable<? extends IV> toValueExpression(VarNode v) { + return (IVariable<? extends IV>) AST2BOpUtility.toVE(globals, v); + } + + private IValueExpression<? extends IV> toValueExpression(FunctionNode n) { + return AST2BOpUtility.toVE(globals, n); + } + protected NotExistsNode notExists(VarNode v, GraphPatternGroup<IGroupMemberNode> jg) { + return new NotExistsNode(v, jg); + } } public AbstractOptimizerTestCase(String name) { Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTExistsAndJoinOrderByTypeOptimizers.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTExistsAndJoinOrderByTypeOptimizers.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTExistsAndJoinOrderByTypeOptimizers.java 2014-05-03 23:00:06 UTC (rev 8176) @@ -0,0 +1,164 @@ +/** + +Copyright (C) SYSTAP, LLC 2006-2014. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +/* + * Created on May 3, 2014 + */ + +package com.bigdata.rdf.sparql.ast.optimizers; + +import com.bigdata.rdf.sparql.ast.ArbitraryLengthPathNode; + +/** + * Test suite for {@link ASTUnionFiltersOptimizer}. + * + * @author Jeremy Carroll + */ +public class TestASTExistsAndJoinOrderByTypeOptimizers extends AbstractOptimizerTestCase { + + /** + * + */ + public TestASTExistsAndJoinOrderByTypeOptimizers() { + } + + /** + * @param name + */ + public TestASTExistsAndJoinOrderByTypeOptimizers(String name) { + super(name); + } + @Override + IASTOptimizer newOptimizer() { + return new ASTOptimizerList(new ASTExistsOptimizer(), + new ASTJoinOrderByTypeOptimizer()); + } + + public void testSimpleExists() { + new Helper(){{ + given = select( varNode(w), + where ( joinGroupNode( + filter( + exists(varNode(y), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)))) + ) + ) ) ); + + expected = select( varNode(w), + where (joinGroupNode( + ask(varNode(y), + joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)) + ) ), + filter(exists(varNode(y), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)))) + ) ) + ) ); + + }}.test(); + + } + public void testOrExists() { + new Helper(){{ + given = select( varNode(w), + where ( joinGroupNode( + filter( + or ( + exists(varNode(y), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)))), + exists(varNode(z), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(c),varNode(w))))) + ) + ) ) ); + + expected = select( varNode(w), + where (joinGroupNode( + ask(varNode(y), + joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)) + ) ), + ask(varNode(z), + joinGroupNode( + statementPatternNode(constantNode(a),constantNode(c),varNode(w)) + ) ), + filter( + or ( + exists(varNode(y), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)))), + exists(varNode(z), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(c),varNode(w))))) + ) + ) ) + ); + + }}.test(); + + } + public void testOrWithPropertyPath() { + new Helper(){{ + given = select( varNode(w), + where ( joinGroupNode( + filter( + or ( + exists(varNode(y), joinGroupNode( + arbitartyLengthPropertyPath(varNode(w), constantNode(b), HelperFlag.ONE_OR_MORE, + joinGroupNode( statementPatternNode(leftVar(), constantNode(b), rightVar()) ) ) + + )), + exists(varNode(z), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(c),varNode(w))))) + ) + ) ) ); + + varCount = 0; + final ArbitraryLengthPathNode alpp1 = arbitartyLengthPropertyPath(varNode(w), constantNode(b), HelperFlag.ONE_OR_MORE, + joinGroupNode( statementPatternNode(leftVar(), constantNode(b), rightVar()) ) ); + varCount = 0; + final ArbitraryLengthPathNode alpp2 = arbitartyLengthPropertyPath(varNode(w), constantNode(b), HelperFlag.ONE_OR_MORE, + joinGroupNode( statementPatternNode(leftVar(), constantNode(b), rightVar()) ) ); + expected = select( varNode(w), + where (joinGroupNode( + ask(varNode(y), + joinGroupNode( + alpp1 + ) ), + ask(varNode(z), + joinGroupNode( + statementPatternNode(constantNode(a),constantNode(c),varNode(w)) + ) ), + filter( + or ( + exists(varNode(y), joinGroupNode( + alpp2 + + )), + exists(varNode(z), joinGroupNode( + statementPatternNode(constantNode(a),constantNode(c),varNode(w))))) + ) + ) ) + ); + + }}.test(); + } + +} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestAll.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestAll.java 2014-05-03 22:59:31 UTC (rev 8175) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestAll.java 2014-05-03 23:00:06 UTC (rev 8176) @@ -132,7 +132,10 @@ // Unit tests for optimizer which attaches join filters to SPs. suite.addTestSuite(TestASTAttachJoinFiltersOptimizer.class); + + suite.addTestSuite(TestASTExistsAndJoinOrderByTypeOptimizers.class); + // Unit tests for optimizer which attaches join filters to SPs. suite.addTestSuite(TestASTRangeOptimizer.class); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2014-05-03 22:59:35
|
Revision: 8175 http://sourceforge.net/p/bigdata/code/8175 Author: jeremy_carroll Date: 2014-05-03 22:59:31 +0000 (Sat, 03 May 2014) Log Message: ----------- Deleted incorrect comments Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/FunctionNode.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/FunctionNode.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/FunctionNode.java 2014-05-03 21:35:44 UTC (rev 8174) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/FunctionNode.java 2014-05-03 22:59:31 UTC (rev 8175) @@ -171,7 +171,7 @@ */ /** - * Return <code>t1 AND t2</code> (aka EQ). + * Return <code>t1 AND t2</code>. */ static public FunctionNode AND(final ValueExpressionNode t1, final ValueExpressionNode t2) { @@ -182,7 +182,7 @@ } /** - * Return <code>t1 OR t2</code> (aka EQ). + * Return <code>t1 OR t2</code>. */ static public FunctionNode OR(final ValueExpressionNode t1, final ValueExpressionNode t2) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-05-03 21:35:46
|
Revision: 8174 http://sourceforge.net/p/bigdata/code/8174 Author: tobycraig Date: 2014-05-03 21:35:44 +0000 (Sat, 03 May 2014) Log Message: ----------- Improved error reporting on bad query Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-03 19:20:22 UTC (rev 8173) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-03 21:35:44 UTC (rev 8174) @@ -715,8 +715,8 @@ function queryResultsError(jqXHR, textStatus, errorThrown) { $('#query-response, #query-export-container').show(); - $('#query-response').text('Error! ' + textStatus + ' ' + jqXHR.statusText); - highlightError(jqXHR.statusText, 'query'); + $('#query-response').text('Error! ' + textStatus + ' ' + jqXHR.responseText); + highlightError(jqXHR.responseText, 'query'); } function highlightError(description, pane) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2014-05-03 19:20:25
|
Revision: 8173 http://sourceforge.net/p/bigdata/code/8173 Author: jeremy_carroll Date: 2014-05-03 19:20:22 +0000 (Sat, 03 May 2014) Log Message: ----------- Fixed trac 905 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTUnionFiltersOptimizer.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTUnionFiltersOptimizer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTUnionFiltersOptimizer.java 2014-05-03 19:20:13 UTC (rev 8172) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTUnionFiltersOptimizer.java 2014-05-03 19:20:22 UTC (rev 8173) @@ -134,6 +134,8 @@ canOptimize = false; + break; + } else { union = (UnionNode) child; @@ -157,6 +159,8 @@ // something else in the group other than a union and filters canOptimize = false; + break; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2014-05-03 19:20:17
|
Revision: 8172 http://sourceforge.net/p/bigdata/code/8172 Author: jeremy_carroll Date: 2014-05-03 19:20:13 +0000 (Sat, 03 May 2014) Log Message: ----------- Added test for trac905 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTUnionFiltersOptimizer.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTUnionFiltersOptimizer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTUnionFiltersOptimizer.java 2014-05-03 18:46:15 UTC (rev 8171) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTUnionFiltersOptimizer.java 2014-05-03 19:20:13 UTC (rev 8172) @@ -292,4 +292,33 @@ }}.test(); } + /** + * This optimizer cannot help in this case. + */ + public void test_ticket905() { + new Helper(){ + QueryRoot unchanged() { + return select( varNode(w), + where ( joinGroupNode( + statementPatternNode(constantNode(a),constantNode(b),varNode(w)), + filter(bound(varNode(w))), + statementPatternNode(varNode(x),constantNode(b),varNode(w)), + unionNode( + joinGroupNode( + bind(constantNode(a), varNode(x) ) + ), + joinGroupNode( + bind(constantNode(b), varNode(x) ) + ) + ) + ) ) ); + } + { + given = unchanged(); + + expected = unchanged(); + + }}.test(); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2014-05-03 18:46:18
|
Revision: 8171 http://sourceforge.net/p/bigdata/code/8171 Author: jeremy_carroll Date: 2014-05-03 18:46:15 +0000 (Sat, 03 May 2014) Log Message: ----------- Fixes three failing test cases; and obviously not incorrect Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryBase.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryBase.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryBase.java 2014-05-03 01:14:48 UTC (rev 8170) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryBase.java 2014-05-03 18:46:15 UTC (rev 8171) @@ -178,8 +178,13 @@ public void setConstruct(final ConstructNode construct) { setProperty(Annotations.CONSTRUCT, construct); - setQueryType(QueryType.CONSTRUCT); + if (construct != null) { + + setQueryType(QueryType.CONSTRUCT); + + } + } public void setProjection(final ProjectionNode projection) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-05-03 01:14:51
|
Revision: 8170 http://sourceforge.net/p/bigdata/code/8170 Author: tobycraig Date: 2014-05-03 01:14:48 +0000 (Sat, 03 May 2014) Log Message: ----------- Quick fix for status tab in HA mode. Ideally data would be sent as JSON rather than HTML. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html 2014-05-02 22:50:59 UTC (rev 8169) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html 2014-05-03 01:14:48 UTC (rev 8170) @@ -172,10 +172,7 @@ <div class="tab" id="status-tab"> <div class="box"> - <p>Accepted query count: <span id="accepted-query-count"></span></p> - <p>Running query count: <span id="running-query-count"></span></p> - <p>Show <a href="#" id="show-queries">queries</a>, <a href="#" id="show-query-details">query details</a>.</p> - <pre id="status-numbers"></pre> + <div id="status-text"></div> <ul id="running-queries"></ul> </div> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-02 22:50:59 UTC (rev 8169) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-03 01:14:48 UTC (rev 8170) @@ -1063,12 +1063,9 @@ } function getStatusNumbers(data) { - var accepted = data.text().match(/Accepted query count=(\d+)/)[1]; - var running = data.text().match(/Running query count=(\d+)/)[1]; - var numbers = $(data).find('pre')[0].textContent; - $('#accepted-query-count').html(accepted); - $('#running-query-count').html(running); - $('#status-numbers').html(numbers); + $('#status-text').html(data); + $('#status-text a').eq(1).click(function(e) { e.preventDefault(); showQueries(false); return false; }); + $('#status-text a').eq(2).click(function(e) { e.preventDefault(); showQueries(true); return false; }); } $('#show-queries').click(function(e) { @@ -1100,6 +1097,10 @@ e = $(e); // get numbers string, which includes cancel link var form = e.next(); + // HA mode has h1 before running queries + if(form[0].tagName != 'FORM') { + return; + } var numbers = form.find('p')[0].textContent; // remove cancel link numbers = numbers.substring(0, numbers.lastIndexOf(',')); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-05-02 22:51:03
|
Revision: 8169 http://sourceforge.net/p/bigdata/code/8169 Author: tobycraig Date: 2014-05-02 22:50:59 +0000 (Fri, 02 May 2014) Log Message: ----------- Fixed Jetty path issues with HA server Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices Modified: branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-02 18:43:45 UTC (rev 8168) +++ branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices 2014-05-02 22:50:59 UTC (rev 8169) @@ -59,7 +59,7 @@ export JETTY_XML="${INSTALL_DIR}/var/jetty/jetty.xml" fi if [ -z "${JETTY_RESOURCE_BASE}" ]; then - export JETTY_RESOURCE_BASE="${INSTALL_DIR}/var/jetty/html" + export JETTY_RESOURCE_BASE="${INSTALL_DIR}/var/jetty" fi if [ -z "${GROUPS}" ]; then export GROUPS="$FEDNAME" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-05-02 18:43:47
|
Revision: 8168 http://sourceforge.net/p/bigdata/code/8168 Author: tobycraig Date: 2014-05-02 18:43:45 +0000 (Fri, 02 May 2014) Log Message: ----------- Added Details option to Explain query Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html 2014-05-02 18:03:07 UTC (rev 8167) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html 2014-05-02 18:43:45 UTC (rev 8168) @@ -90,6 +90,7 @@ <div id="advanced-features"> <input type="checkbox" id="query-explain"> <label for="query-explain">Explain</label> + <input type="checkbox" id="query-details"> <label for="query-explain">(Details)</label> <input type="checkbox" name="analytic" value="true" id="query-analytic"> <label for="query-analytic">Analytic</label> <input type="checkbox" name="RTO" value="true" id="query-rto"> <label for="query-rto">Runtime Query Optimizer</label> </div> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-02 18:03:07 UTC (rev 8167) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-02 18:43:45 UTC (rev 8168) @@ -448,6 +448,18 @@ .on('input propertychange', function() { $('#query-errors').hide(); }); $('#query-form').submit(submitQuery); +$('#query-explain').change(function() { + if(!this.checked) { + $('#query-details').prop('checked', false); + } +}); + +$('#query-details').change(function() { + if(this.checked) { + $('#query-explain').prop('checked', true); + } +}); + function submitQuery(e) { e.preventDefault(); @@ -468,7 +480,7 @@ if($('#query-explain').is(':checked')) { settings = { type: 'POST', - data: $(this).serialize() + '&explain=details', + data: $(this).serialize() + '&explain=' + ($('#query-details').is(':checked') ? 'details' : 'true'), dataType: 'html', success: showQueryExplanation, error: queryResultsError This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tob...@us...> - 2014-05-02 18:03:10
|
Revision: 8167 http://sourceforge.net/p/bigdata/code/8167 Author: tobycraig Date: 2014-05-02 18:03:07 +0000 (Fri, 02 May 2014) Log Message: ----------- Changed Load to Update Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/style.css branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/style.css =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/style.css 2014-05-02 16:52:45 UTC (rev 8166) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/style.css 2014-05-02 18:03:07 UTC (rev 8167) @@ -229,12 +229,12 @@ margin: 20px auto; } -#load-load { +#update-update { margin: 0 auto; display: block; } -#load-buttons { +#update-buttons { text-align: center; } @@ -250,7 +250,7 @@ border: none; } -#advanced-features, #query-response, #query-pagination, #query-explanation, #query-export-container, #load-response, #load-clear-container, #explore-results, #namespace-properties { +#advanced-features, #query-response, #query-pagination, #query-explanation, #query-export-container, #update-response, #update-clear-container, #explore-results, #namespace-properties { display: none; } @@ -271,7 +271,7 @@ float: right; } -#load-box, #query-box { +#update-box, #query-box { background-color: transparent; padding: 2px; border-width: 1px; @@ -279,13 +279,13 @@ } /* these should have the same typography so the error highlighting matches up with the query text */ -#load-box, #load-errors, #query-box, #query-errors { +#update-box, #update-errors, #query-box, #query-errors { font-family: sans-serif; font-size: 90%; line-height: normal; } -#load-errors, #query-errors { +#update-errors, #query-errors { position: absolute; z-index: -1; padding: 8px 3px; @@ -349,7 +349,7 @@ text-align: right; } -#load-clear-container { +#update-clear-container { text-align: right; } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html 2014-05-02 16:52:45 UTC (rev 8166) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html 2014-05-02 18:03:07 UTC (rev 8167) @@ -21,7 +21,7 @@ <div id="tab-selector"> <a data-target="query" class="active">Query</a> - <a data-target="load">Load</a> + <a data-target="update">Update</a> <a data-target="explore">Explore</a> <a data-target="status">Status</a> <a data-target="performance">Performance</a> @@ -29,7 +29,7 @@ <p>Current namespace: <span id="current-namespace"></span></p> </div> - <div class="tab" id="load-tab"> + <div class="tab" id="update-tab"> <div class="box"> @@ -37,14 +37,14 @@ </div> <div> - <div id="load-errors"></div> - <textarea id="load-box" placeholder="(Type in or drag a file containing RDF data, a SPARQL update or a file path or URL)"></textarea> + <div id="update-errors"></div> + <textarea id="update-box" placeholder="(Type in or drag a file containing RDF data, a SPARQL update or a file path or URL)"></textarea> </div> <p id="large-file-message">Your file <span id="filename"></span> is too large to display here, but will be uploaded as normal. <a href="#" id="clear-file">Remove file</a></p> <p> - <input type="file" id="load-file"><br> - <label for="load-type">Type:</label> - <select id="load-type"> + <input type="file" id="update-file"><br> + <label for="update-type">Type:</label> + <select id="update-type"> <option value="sparql" selected="selected">SPARQL Update</option> <option value="rdf">RDF Data</option> <option value="path">File Path or URL</option> @@ -62,16 +62,16 @@ </select> </p> <hr class="shadow"> - <button id="load-load">Load</button> + <button id="update-update">Update</button> </div> - <div class="box" id="load-response"> + <div class="box" id="update-response"> <pre></pre> </div> - <div class="box" id="load-clear-container"> - <button id="load-clear">Clear output</button> + <div class="box" id="update-clear-container"> + <button id="update-clear">Clear output</button> </div> </div> @@ -96,7 +96,7 @@ <hr class="shadow"> - <div id="load-buttons"> + <div id="update-buttons"> <input type="submit" value="Execute"> <input type="reset" value="Clear"> </div> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-02 16:52:45 UTC (rev 8166) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js 2014-05-02 18:03:07 UTC (rev 8167) @@ -220,7 +220,7 @@ }); -/* Load */ +/* Update */ function handleDragOver(e) { e.stopPropagation(); @@ -248,38 +248,38 @@ // if file is too large, tell user to supply local path if(f.size > 1048576 * 100) { alert('File too large, enter local path to file'); - $('#load-box').val('/path/to/' + f.name); + $('#update-box').val('/path/to/' + f.name); setType('path'); - $('#load-box').prop('disabled', false) + $('#update-box').prop('disabled', false) $('#large-file-message, #clear-file').hide(); } else { var fr = new FileReader(); fr.onload = function(e2) { if(f.size > 10240) { // do not use textarea - $('#load-box').prop('disabled', true) + $('#update-box').prop('disabled', true) $('#filename').html(f.name); $('#large-file-message, #clear-file').show() - $('#load-box').val(''); + $('#update-box').val(''); FILE_CONTENTS = e2.target.result; } else { // display file contents in the textarea clearFile(); - $('#load-box').val(e2.target.result); + $('#update-box').val(e2.target.result); } guessType(f.name.split('.').pop().toLowerCase(), e2.target.result); }; fr.readAsText(f); } - $('#load-file').val(''); + $('#update-file').val(''); } function clearFile(e) { if(e) { e.preventDefault(); } - $('#load-box').prop('disabled', false) + $('#update-box').prop('disabled', false) $('#large-file-message, #clear-file').hide() FILE_CONTENTS = null; } @@ -332,7 +332,7 @@ } function setType(type, format) { - $('#load-type').val(type); + $('#update-type').val(type); if(type == 'rdf') { $('#rdf-type').val(format); } @@ -364,28 +364,28 @@ var sparql_update_commands = ['INSERT', 'DELETE']; -$('#load-file').change(handleFile); -$('#load-box').on('dragover', handleDragOver) +$('#update-file').change(handleFile); +$('#update-box').on('dragover', handleDragOver) .on('drop', handleFile) .on('paste', handlePaste) - .on('input propertychange', function() { $('#load-errors').hide(); }) - .bind('keydown', 'ctrl+return', submitLoad); + .on('input propertychange', function() { $('#update-errors').hide(); }) + .bind('keydown', 'ctrl+return', submitUpdate); $('#clear-file').click(clearFile); -$('#load-load').click(submitLoad); +$('#update-update').click(submitUpdate); -function submitLoad(e) { +function submitUpdate(e) { e.preventDefault(); var settings = { type: 'POST', - data: FILE_CONTENTS == null ? $('#load-box').val() : FILE_CONTENTS, + data: FILE_CONTENTS == null ? $('#update-box').val() : FILE_CONTENTS, success: updateResponseXML, error: updateResponseError } // determine action based on type - switch($('#load-type').val()) { + switch($('#update-type').val()) { case 'sparql': settings.data = 'update=' + encodeURIComponent(settings.data); settings.success = updateResponseHTML; @@ -407,15 +407,15 @@ break; } - $('#load-response').show(); - $('#load-response pre').html('Data loading...'); + $('#update-response').show(); + $('#update-response pre').html('Data loading...'); $.ajax(NAMESPACE_URL, settings); } -$('#load-clear').click(function() { - $('#load-response, #load-clear').hide(); - $('#load-response pre').text(''); +$('#update-clear').click(function() { + $('#update-response, #update-clear').hide(); + $('#update-response pre').text(''); }); $('#advanced-features-toggle').click(function() { @@ -424,21 +424,21 @@ }); function updateResponseHTML(data) { - $('#load-response, #load-clear').show(); - $('#load-response pre').html(data); + $('#update-response, #update-clear').show(); + $('#update-response pre').html(data); } function updateResponseXML(data) { var modified = data.childNodes[0].attributes['modified'].value; var milliseconds = data.childNodes[0].attributes['milliseconds'].value; - $('#load-response, #load-clear').show(); - $('#load-response pre').text('Modified: ' + modified + '\nMilliseconds: ' + milliseconds); + $('#update-response, #update-clear').show(); + $('#update-response pre').text('Modified: ' + modified + '\nMilliseconds: ' + milliseconds); } function updateResponseError(jqXHR, textStatus, errorThrown) { - $('#load-response, #load-clear').show(); - $('#load-response pre').text('Error! ' + textStatus + ' ' + jqXHR.statusText); - highlightError(jqXHR.statusText, 'load'); + $('#update-response, #update-clear').show(); + $('#update-response pre').text('Error! ' + textStatus + ' ' + jqXHR.statusText); + highlightError(jqXHR.statusText, 'update'); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-02 16:52:47
|
Revision: 8166 http://sourceforge.net/p/bigdata/code/8166 Author: thompsonbry Date: 2014-05-02 16:52:45 +0000 (Fri, 02 May 2014) Log Message: ----------- Refactoring of the HA Load Balancer to expose an interface that can be used by an application to take over the rewrite of the Request-URI when the request will be proxied to another service. See the new IHARequestURIRewriter interface and the new REWRITER init-param for the HALoadBalancerSerlet. See #624 (HA LBS) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/zkClient.config branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHALoadBalancerPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/NOPLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/DefaultHARequestURIRewriter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHAPolicyLifeCycle.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHARequestURIRewriter.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -756,7 +756,20 @@ final Quorum<HAGlue, QuorumService<HAGlue>> quorum = (Quorum) new ZKQuorumImpl<HAGlue, HAQuorumService<HAGlue, HAJournal>>( replicationFactor); - // The HAJournal. + /** + * The HAJournal. + * + * FIXME This step can block for a long time if we have a lot of + * HALogs to scan. While it blocks, the REST API (including the LBS) + * is down. This means that client requests to the service end point + * can not be proxied to a service that is online. The problem is + * the interaction with the BigdataRDFServletContextListener which + * needs to (a) set the IIndexManager on the ServletContext; and (b) + * initiate the default KB create (if it is the quorum leader). + * + * @see <a href="http://trac.bigdata.com/ticket/775" > HAJournal + * start() (optimization) </a> + */ this.journal = newHAJournal(this, config, quorum); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/zkClient.config =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/zkClient.config 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/zkClient.config 2014-05-02 16:52:45 UTC (rev 8166) @@ -1,22 +1,6 @@ -/* Zookeeper client only configuration. +/* + * Zookeeper client configuration. */ -import java.io.File; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.util.UUID; - -import com.bigdata.util.NV; -import com.bigdata.util.config.NicUtil; -import com.bigdata.journal.Options; -import com.bigdata.journal.BufferMode; -import com.bigdata.journal.jini.ha.HAJournal; -import com.bigdata.jini.lookup.entry.*; -import com.bigdata.service.IBigdataClient; -import com.bigdata.service.AbstractTransactionService; -import com.bigdata.service.jini.*; -import com.bigdata.service.jini.lookup.DataServiceFilter; -import com.bigdata.service.jini.master.ServicesTemplate; -import com.bigdata.jini.start.config.*; import com.bigdata.jini.util.ConfigMath; import org.apache.zookeeper.ZooDefs; @@ -30,16 +14,6 @@ private static fedname = "benchmark"; - /* The logical service identifier shared by all members of the quorum. - * - * Note: The test fixture ignores this value. For the avoidance of - * doubt, the value is commented out. - */ - //private static logicalServiceId = "CI-HAJournal-1"; - - // zookeeper - static private sessionTimeout = (int)ConfigMath.s2ms(20); - } /* @@ -53,36 +27,16 @@ /* A comma separated list of host:port pairs, where the port is * the CLIENT port for the zookeeper server instance. */ - // standalone. servers = "localhost:2081"; - // ensemble -// servers = bigdata.zoo1+":2181" -// + ","+bigdata.zoo2+":2181" -// + ","+bigdata.zoo3+":2181" -// ; /* Session timeout (optional). */ - sessionTimeout = bigdata.sessionTimeout; + sessionTimeout = (int)ConfigMath.s2ms(20); - /* - * ACL for the zookeeper nodes created by the bigdata federation. - * - * Note: zookeeper ACLs are not transmitted over secure channels - * and are placed into plain text Configuration files by the - * ServicesManagerServer. - */ + // Zookeeper ACLs. acl = new ACL[] { new ACL(ZooDefs.Perms.ALL, new Id("world", "anyone")) }; - /* - * Note: Normally on the HAJournalServer component. Hacked in the test - * suite setup to look at the ZooKeeper component instead. - */ - - logicalServiceId = bigdata.logicalServiceId; - - replicationFactor = bigdata.replicationFactor; } Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/DefaultHARequestURIRewriter.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/DefaultHARequestURIRewriter.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/DefaultHARequestURIRewriter.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -0,0 +1,85 @@ +/** +Copyright (C) SYSTAP, LLC 2006-2007. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +package com.bigdata.rdf.sail.webapp; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; + +import com.bigdata.journal.IIndexManager; + +/** + * Default implementation. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ +public class DefaultHARequestURIRewriter implements IHARequestURIRewriter { + + /** + * {@inheritDoc} + * <p> + * This implementation is a NOP. + */ + @Override + public void init(ServletConfig servletConfig, IIndexManager indexManager) + throws ServletException { + + } + + /** + * {@inheritDoc} + * <p> + * This implementation is a NOP. + */ + @Override + public void destroy() { + + } + + @Override + public StringBuilder rewriteURI(final boolean isLeaderRequest, + final String full_prefix, final String originalRequestURL, + final String proxyToRequestURL, final HttpServletRequest request) { + + final StringBuilder uri = new StringBuilder(proxyToRequestURL); + + if (proxyToRequestURL.endsWith("/")) + uri.setLength(uri.length() - 1); + + final String rest = originalRequestURL.substring(full_prefix.length()); + + if (!rest.startsWith("/")) + uri.append("/"); + + uri.append(rest); + + final String query = request.getQueryString(); + + if (query != null) + uri.append("?").append(query); + + return uri; + + } + +} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -92,11 +92,6 @@ * @author <a href="mailto:tho...@us...">Bryan Thompson</a> * * @see <a href="http://trac.bigdata.com/ticket/624"> HA Load Balancer </a> - * - * TODO If the target service winds up not joined with the met quorum by - * the time we get there, what should it do? Report an error since we are - * already on its internal interface? Will this servlet see that error? If - * it does, should it handle it? */ public class HALoadBalancerServlet extends ProxyServlet { @@ -110,10 +105,6 @@ public interface InitParams { -// String ENABLED = "enabled"; -// -// String DEFAULT_ENABLED = "false"; - /* * Note: /bigdata/LBS is now a base prefix. There are fully qualified * prefix values of /bigdata/LBS/leader and /bigdata/LBS/read. This is @@ -146,50 +137,78 @@ */ String DEFAULT_POLICY = NOPLBSPolicy.class.getName(); + /** + * The fully qualified class name of an {@link IHARequestURIRewriter} + * (optional - the default is {@value #DEFAULT_REWRITER}). This must be + * an instance of {@link IHARequestURIRewriter}. This may be used to + * impose application specific Request-URI rewrite semantics when a + * request will be proxied to another service. + */ + String REWRITER = "rewriter"; + + String DEFAULT_REWRITER = DefaultHARequestURIRewriter.class.getName(); + } public HALoadBalancerServlet() { + super(); + } -// /** -// * This servlet request attribute is used to mark a request as either an -// * update or a read-only operation. -// */ -// protected static final String ATTR_LBS_UPDATE_REQUEST = "lbs-update-request"; - /** - * The initial prefix that will be stripped off by the load balancer. + * The initial prefix and is formed as + * + * <pre> + * Context - Path / LBS + * </pre> * <p> * Note: This is set by {@link #init()}. It must not be <code>null</code>. - * The load balancer relies on the prefix to rewrite the requestURL when the - * {@link IHALoadBalancerPolicy} is disabled in order to forward the request - * to the local service. + * The load balancer relies on the prefix to rewrite the Request-URI: (a) + * when it is disabled (the request will be forwarded to a local service; + * and (b) when the request is proxied to a remote service. */ private String prefix; /** + * The URI path component that follows the servlet context-path to identify + * a request that will be handled by the load balancer component. + */ + private static final String PATH_LBS = "/LBS"; + + /** + * The URI path component that follows the {@link #prefix} to identify a + * request that will target the quorum leader. + */ + private static final String PATH_LEADER = "/leader"; + + /** + * The URI path component that follows the {@link #prefix} to identify a + * request that should be load balanced over the leader + followers. + */ + private static final String PATH_READ = "/read"; + + /** * The configured {@link IHALoadBalancerPolicy} and <code>null</code> iff * the load balancer is disabled. If the LBS is not enabled, then it will * strip its prefix from the URL requestURI and do a servlet forward to the * resulting requestURI. This allows the webapp to start even if the LBS is * not correctly configured. * - * TODO Since we are allowing programatic change of the policy, it would be - * a good idea to make that change atomic with respect to any specific - * request and to make the destroy of the policy something that occurs once - * any in flight request has been handled (there is more than one place - * where the policy is checked in the code). The atomic change might be - * accomplished by attaching the policy to the request as an attribute. The - * destroy could be achieved by reference counts for the #of in flight - * requests flowing through a policy. The request attribute and reference - * count could be handled together through handshaking with the policy when - * attaching it as a request attribute in - * {@link #service(HttpServletRequest, HttpServletResponse)}. + * @see InitParams#POLICY */ private final AtomicReference<IHALoadBalancerPolicy> policyRef = new AtomicReference<IHALoadBalancerPolicy>(); /** + * The {@link IHARequestURIRewriter} that rewrites the original Request-URI + * into a Request-URI for the target service to which the request will be + * proxied. + * + * @see InitParams#REWRITER + */ + private final AtomicReference<IHARequestURIRewriter> rewriterRef = new AtomicReference<IHARequestURIRewriter>(); + + /** * Change the {@link IHALoadBalancerPolicy} associated with this instance of * this servlet. The new policy will be installed iff it can be initialized * successfully. The old policy will be destroyed iff the new policy is @@ -205,7 +224,61 @@ if (log.isInfoEnabled()) log.info("newValue=" + newValue); + + setHAPolicy(newValue, policyRef); + + } + + /** + * Change the {@link IHARequestURIRewriter} associated with this instance of + * this servlet. The new policy will be installed iff it can be initialized + * successfully. The old policy will be destroyed iff the new policy is + * successfully installed. + * + * @param newValue + * The new value (required). + */ + public void setRewriter(final IHARequestURIRewriter newValue) { + if (newValue == null) + throw new IllegalArgumentException(); + + if (log.isInfoEnabled()) + log.info("newValue=" + newValue); + + setHAPolicy(newValue, rewriterRef); + + } + + /** + * Change the {@link IHAPolicyLifeCycle} associated with this instance of + * this servlet. The new policy will be installed iff it can be initialized + * successfully. The old policy will be destroyed iff the new policy is + * successfully installed. + * + * @param newValue + * The new value (required). + * @param ref + * The {@link AtomicReference} object that holds the current + * value of the policy. + * + * TODO Since we are allowing programatic change of the policy, + * it would be a good idea to make that change atomic with + * respect to any specific request and to make the destroy of the + * policy something that occurs once any in flight request has + * been handled (there is more than one place where the policy is + * checked in the code). The atomic change might be accomplished + * by attaching the policy to the request as an attribute. The + * destroy could be achieved by reference counts for the #of in + * flight requests flowing through a policy. The request + * attribute and reference count could be handled together + * through handshaking with the policy when attaching it as a + * request attribute in + * {@link #service(HttpServletRequest, HttpServletResponse)}. + */ + private <T extends IHAPolicyLifeCycle> void setHAPolicy(final T newValue, + final AtomicReference<T> ref) { + final ServletConfig servletConfig = getServletConfig(); final ServletContext servletContext = servletConfig.getServletContext(); @@ -252,8 +325,7 @@ } // Install the new policy. - final IHALoadBalancerPolicy oldValue = this.policyRef - .getAndSet(newValue); + final T oldValue = ref.getAndSet(newValue); if (oldValue != null && oldValue != newValue) { @@ -261,7 +333,7 @@ oldValue.destroy(); } - + } /** @@ -280,7 +352,7 @@ // // Get the as-configured prefix to be stripped from requests. // prefix = servletConfig.getInitParameter(InitParams.PREFIX); - prefix = BigdataStatics.getContextPath() + "/LBS"; + prefix = BigdataStatics.getContextPath() + PATH_LBS; final ServletContext servletContext = servletConfig.getServletContext(); @@ -293,32 +365,26 @@ return; } - /* - * Setup a fall back policy. This policy will strip off the configured - * prefix from the requestURL and forward the request to the local - * service. If we can not establish the as-configured policy, then - * the servlet will run with this fall back policy. - */ + { + // Get the as-configured policy. + final IHALoadBalancerPolicy policy = newInstance(servletConfig, + IHALoadBalancerPolicy.class, InitParams.POLICY, + InitParams.DEFAULT_POLICY); + // Set the as-configured policy. + setPolicy(policy); + + } { - - final IHALoadBalancerPolicy defaultPolicy = new NOPLBSPolicy(); - - // Initialize the fallback policy. - defaultPolicy.init(servletConfig, indexManager); - policyRef.set(defaultPolicy); + final IHARequestURIRewriter rewriter = newInstance(servletConfig, + IHARequestURIRewriter.class, InitParams.REWRITER, + InitParams.DEFAULT_REWRITER); + setRewriter(rewriter); + } - // Get the as-configured policy. - IHALoadBalancerPolicy policy = newInstance(servletConfig, - IHALoadBalancerPolicy.class, InitParams.POLICY, - InitParams.DEFAULT_POLICY); - - // Set the as-configured policy. - setPolicy(policy); - servletContext.setAttribute(BigdataServlet.ATTRIBUTE_LBS_PREFIX, prefix); @@ -326,7 +392,8 @@ if (log.isInfoEnabled()) log.info(servletConfig.getServletName() + " @ " + prefix - + " :: policy=" + policy); + + " :: policy=" + policyRef.get() + ", rewriter=" + + rewriterRef.get()); } @@ -441,15 +508,32 @@ removeServlet(getServletContext(), this/* servlet */); - final IHALoadBalancerPolicy policy = policyRef - .getAndSet(null/* newValue */); + { - if (policy != null) { + final IHALoadBalancerPolicy policy = policyRef + .getAndSet(null/* newValue */); - policy.destroy(); + if (policy != null) { + policy.destroy(); + + } + } + { + + final IHARequestURIRewriter rewriter = rewriterRef + .getAndSet(null/* newValue */); + + if (rewriter != null) { + + rewriter.destroy(); + + } + + } + prefix = null; getServletContext().setAttribute(BigdataServlet.ATTRIBUTE_LBS_PREFIX, @@ -592,8 +676,9 @@ * servlet in this servlet container rather than proxying it to either * itself or another service. * - * FIXME This does too much work if the request is for the leader and - * this service is not the leader. Look at it again under a debugger. + * TODO This does too much work if the request is for the leader and + * this service is not the leader. Look at it again under a debugger + * and optimize the code paths. */ if (policy.service(isLeaderRequest, request, response)) { @@ -710,8 +795,12 @@ * <code>true</code> iff this is a leader request. * @param prefix * the base prefix (typically <code>/bigdata/LBS</code>) - * + * * @return The full prefix. + * + * TODO This may need to configurable. It is currently static since + * {@link #forwardToThisService(boolean, HttpServletRequest, HttpServletResponse)} + * is static. */ private static String getFullPrefix(final boolean isLeaderRequest, final String prefix) { @@ -720,7 +809,7 @@ : prefix + "/read"; return full_prefix; - + } /** @@ -738,55 +827,72 @@ return null; } - final String path = request.getRequestURI(); - if (!path.startsWith(prefix)) + final String originalRequestURI = request.getRequestURI(); + + if (!originalRequestURI.startsWith(prefix)) return null; final Boolean isLeaderRequest = isLeaderRequest(request); + if (isLeaderRequest == null) { // Neither /LBS/leader -nor- /LBS/read. return null; } - final String proxyTo; + + final String proxyToRequestURI; + if(isLeaderRequest) { // Proxy to leader. - proxyTo = policy.getLeaderURL(request); + proxyToRequestURI = policy.getLeaderURL(request); } else { // Proxy to any joined service. - proxyTo = policy.getReaderURL(request); + proxyToRequestURI = policy.getReaderURL(request); } - if (proxyTo == null) { + + if (proxyToRequestURI == null) { // Could not rewrite. return null; } - final StringBuilder uri = new StringBuilder(proxyTo); - if (proxyTo.endsWith("/")) - uri.setLength(uri.length() - 1); + // the full LBS prefix (includes /leader or /read). final String full_prefix = getFullPrefix(isLeaderRequest, prefix); - final String rest = path.substring(full_prefix.length()); - if (!rest.startsWith("/")) - uri.append("/"); - uri.append(rest); - final String query = request.getQueryString(); - if (query != null) - uri.append("?").append(query); + + // The configured Request-URL rewriter. + final IHARequestURIRewriter rewriter = rewriterRef.get(); + + if (rewriter == null) { + // Could not rewrite. + log.warn("No rewriter: requestURI="+originalRequestURI); + return null; + } + + // Re-write requestURL. + final StringBuilder uri = rewriter.rewriteURI(// + isLeaderRequest,// iff request for the leader + full_prefix, // + originalRequestURI,// old + proxyToRequestURI, // new + request // request + ); + + // Normalize the request. final URI rewrittenURI = URI.create(uri.toString()).normalize(); if (!validateDestination(rewrittenURI.getHost(), rewrittenURI.getPort())) return null; if (log.isInfoEnabled()) - log.info("rewrote: " + path + " => " + rewrittenURI); + log.info("rewrote: " + originalRequestURI + " => " + rewrittenURI); return rewrittenURI; } /** - * TODO This offers an opportunity to handle a rewrite failure. It could be - * used to provide a default status code (e.g., 404 versus forbidden) or to - * forward the request to this server rather than proxying to another - * server. + * Note: This offers an opportunity to handle a failure where we were unable + * to rewrite the request to some service, e.g., because the quorum is not + * met. The implementation is overridden to forward the request to the local + * service. The local service will then generate an appropriate HTTP error + * response. */ @Override protected void onRewriteFailed(final HttpServletRequest request, @@ -846,13 +952,13 @@ final String rest = requestURI.substring(indexLBS + prefix.length()); - if (rest.startsWith("/leader")) { + if (rest.startsWith(PATH_LEADER)) { return Boolean.TRUE; } - if (rest.startsWith("/read")) { + if (rest.startsWith(PATH_READ)) { return Boolean.FALSE; Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHALoadBalancerPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHALoadBalancerPolicy.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHALoadBalancerPolicy.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -24,13 +24,10 @@ import java.io.IOException; -import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.bigdata.journal.IIndexManager; - /** * Load balancer policy interface. * @@ -39,24 +36,9 @@ * @see HALoadBalancerServlet * @see <a href="http://trac.bigdata.com/ticket/624">HA Load Balancer</a> */ -public interface IHALoadBalancerPolicy { +public interface IHALoadBalancerPolicy extends IHAPolicyLifeCycle { /** - * Initialize the load balancer policy. - * - * @param servletConfig - * @param indexManager - */ - void init(ServletConfig servletConfig, IIndexManager indexManager) - throws ServletException; - - /** - * Destroy the load balancer policy (stop any asynchronous processing, - * release any resources). - */ - void destroy(); - - /** * Invoked for each request. If the response is not committed, then it will * be handled by the {@link HALoadBalancerServlet}. * Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHAPolicyLifeCycle.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHAPolicyLifeCycle.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHAPolicyLifeCycle.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -0,0 +1,47 @@ +/** +Copyright (C) SYSTAP, LLC 2006-2007. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +package com.bigdata.rdf.sail.webapp; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; + +import com.bigdata.journal.IIndexManager; + +public interface IHAPolicyLifeCycle { + + /** + * Initialize the policy. + * + * @param servletConfig + * @param indexManager + */ + void init(ServletConfig servletConfig, IIndexManager indexManager) + throws ServletException; + + /** + * Destroy the policy (stop any asynchronous processing, release any + * resources). + */ + void destroy(); + +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHARequestURIRewriter.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHARequestURIRewriter.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHARequestURIRewriter.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -0,0 +1,95 @@ +/** +Copyright (C) SYSTAP, LLC 2006-2007. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +package com.bigdata.rdf.sail.webapp; + +import javax.servlet.http.HttpServletRequest; + +import com.bigdata.rdf.sail.webapp.lbs.ServiceScore; + +/** + * Interface for rewriting the Request-URI once the load balancer has determined + * the target host and service to which the request will be proxied. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ +public interface IHARequestURIRewriter extends IHAPolicyLifeCycle { + + /** + * Rewrite the <code>originalRequestURI</code> into a <a href= + * "http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2" + * >Request-URL</a> for the web application whose servlet context root is + * given by the <code>proxyToRequestURI</code>. + * <p> + * Note: The <code>proxyToRequestURI</code> is include the protocol, host, + * port, and servlet context path for the target service. It DOES NOT + * include any information from the original request. The purpose of this + * method is to modify the <code>originalRequestURI</code> in order to + * obtain a fully qualified RequestURI for the service to which the request + * will be proxied. For example: + * + * <pre> + * full_prefix: /bigdata/LBS/leader + * -or- full_prefix: /bigdata/LBS/read + * originalRequestURI: http://ha1.example.com:8090/bigdata/LBS/read/sparql + * proxyToRequestURI: http://ha3.example.com:8090/bigdata/ + * return: http://ha2.example.com:8090/bigdata/LBS/read/sparql + * </pre> + * <p> + * Note: this method is only invoked if we will proxy to another service. + * Therefore, the <code>proxyToRequestURI</code> is never <code>null</code>. + * + * @param isLeaderRequest + * <code>true</code> iff the request is directed to the leader. + * @param full_prefix + * The path prefix in the <code>originalRequestURI</code> that + * which corresponds to the {@link HALoadBalancerServlet} and + * which must be removed if the request is to be forwarded to a + * local service. + * @param originalRequestURI + * The original <a href= + * "http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2" + * >Request-URL</a> from the <a + * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1" + * >HTTP Request-Line</a> + * @param proxyToRequestURI + * The RequestURI for the root of the web application for the + * target service and never <code>null</code>. + * @param request + * The original request. + * + * @return The fully qualified <a href= + * "http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2" + * >Request-URL</a> that will be used to proxy the http request to + * the service identified by the <code>proxyToRequestURI</code> + * + * @see ServiceScore#getRequestURI() + */ + public StringBuilder rewriteURI(// + boolean isLeaderRequest, + String full_prefix,// + String originalRequestURI, // + String proxyToRequestURI,// + HttpServletRequest request// + ); + +} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -63,9 +63,14 @@ * {@link AbstractQuorum#terminate()}. This happens any time the * {@link HAJournalServer} goes into the error state. When this occurs, * we stop getting {@link QuorumEvent}s and the policy stops being - * responsive. We probably need to either NOT clear the quorum listener - * and/or add an event type that is sent when {@link Quorum#terminate()} - * is called. + * responsive (it can not proxy the request to a service that is still + * up because it does not know what services are up, or maybe it just + * can not learn if services go down). + * <p> + * We probably need to either NOT clear the quorum listener and/or add + * an event type that is sent when {@link Quorum#terminate()} is called + * and/or use our own listener (independent of the HAJournalServer, + * which would require us to use an HAClient). */ abstract public class AbstractLBSPolicy implements IHALoadBalancerPolicy, QuorumListener, Serializable { @@ -184,7 +189,7 @@ if (quorum != null) { try { // Note: This is the *local* HAGlueService. - quorumService = (QuorumService) quorum.getClient(); + quorumService = (QuorumService<HAGlue>) quorum.getClient(); token = quorum.token(); isLeader = quorumService.isLeader(token); isQuorumMet = token != Quorum.NO_QUORUM; @@ -299,10 +304,10 @@ for (ServiceScore s : services) { - if (s.serviceUUID.equals(leaderId)) { + if (s.getServiceUUID().equals(leaderId)) { // Found it. Proxy if the serviceURL is defined. - return s.requestURL; + return s.getRequestURI(); } @@ -330,7 +335,7 @@ for (ServiceScore s : services) { - if (s.serviceUUID.equals(serviceIDRef.get())) { + if (s.getServiceUUID().equals(serviceIDRef.get())) { // Found it. return s; @@ -368,7 +373,7 @@ for (ServiceScore s : services) { - if (hostname.equals(s.hostname)) { + if (hostname.equals(s.getHostname())) { // Found it. return s; @@ -462,12 +467,14 @@ try { /* - * TODO Scan the existing table before doing an RMI to the - * service. We only need to do the RMI for a new service, not - * one in the table. - * - * TODO A services HashMap<UUID,HAGlueScore> would be much more - * efficient than a table. If we use a CHM, then we can do this + * TODO We only need to do this when a service enters the + * quorum, but we already have the information on hand for all + * services except the one that is entering. To reduce overhead + * and RMI calls, we should scan the existing table before doing + * an RMI to the service. We only need to do the RMI for a new + * service, not one in the table. A services + * HashMap<UUID,HAGlueScore> would be much more efficient than a + * table for this scan. If we use a CHM, then we can do this * purely asynchronously as the HAGlue services enter (or leave) * the set of joined services. */ Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -30,6 +30,7 @@ import com.bigdata.journal.IIndexManager; import com.bigdata.journal.jini.ha.HAJournal; import com.bigdata.quorum.Quorum; +import com.bigdata.rdf.sail.webapp.IHARequestURIRewriter; /** * Helper class caches metadata about an {@link HAGlue} service. @@ -42,25 +43,109 @@ */ public class ServiceScore { - final public UUID serviceUUID; - public HAGlue haGlue; - public String hostname; - public int port; /** - * The {@link #requestURL} is assigned IFF everything succeeds. This is what - * we will use to proxy a request to the service having the {@link UUID} - * given to the constuctor. + * The service {@link UUID} for the remote service. * - * Note: This needs to be a URL, not just a relative path. At least with the - * rewriteURI() code in the outer class. Otherwise you get an NPE. + * @see HAGlue#getServiceUUID() */ - public String requestURL; + final private UUID serviceUUID; + + /** + * The {@link HAGlue} interface for the remote service. + */ + private HAGlue haGlue; + + /** + * The hostname for the remote service. + * + * @see HAGlue#getHostname() + */ + private String hostname; + + /** + * The port for the NSS on the remote service. + * + * @see HAGlue#getNSSPort() + */ + private int port; + + /** + * The constructed Request-URL for the root of the servlet context for the + * NSS on the remote service -or- <code>null</code> if anything goes wrong. + */ + private String requestURI; + + /** + * The service {@link UUID} for the remote service. + * + * @see HAGlue#getServiceUUID() + */ + public UUID getServiceUUID() { + return serviceUUID; + + } + + /** + * The hostname for the remote service -or- <code>null</code> if something + * goes wrong. + * + * @see HAGlue#getHostname() + */ + public String getHostname() { + + return hostname; + + } + + /** + * The port for the NSS on the remote service. + * + * @see HAGlue#getNSSPort() + */ + public int getPort() { + + return port; + + } + + /** + * The {@link #requestURI} for the root of the web application on the target + * host. This is assigned IFF everything succeeds. This is what we will use + * to proxy a request to the service having the {@link UUID} given to the + * constructor. + * <p> + * Note: This needs to be a URL, not just a relative path. Otherwise you get + * an NPE. + * <p> + * This is formed as: + * + * <pre> + * requestURL = "http://" + hostname + ":" + port + contextPath; + * </pre> + * + * The <code>hostname</code> is obtained from {@link HAGlue#getHostname()}. + * <p> + * The <code>port</code> is obtained from {@link HAGlue#getNSSPort()}. + * + * TODO How do we configured the protocol for the remote NSS instance? This + * code assumes that it is <code>http</code>, but <code>https</code> is also + * possible. This could be handled by an {@link IHARequestURIRewriter} but + * maybe the {@link HAGlue} interface should be declaring this too? + */ + public String getRequestURI() { + + return requestURI; + + } + @Override public String toString() { + return getClass().getName() + "{serviceUUID=" + serviceUUID - + ", hostname=" + hostname + ", port=" + port + ", requestURL=" - + requestURL + "}"; + + ", hostname=" + hostname + ", port=" + port + ", requestURI=" + + requestURI + "}"; + } public ServiceScore(final IIndexManager indexManager, @@ -97,7 +182,7 @@ { QuorumService<HAGlue> t; try { - t = (QuorumService) quorum.getClient(); + t = (QuorumService<HAGlue>) quorum.getClient(); } catch (IllegalStateException ex) { // Note: Not available (quorum.start() not called). return; @@ -113,7 +198,8 @@ } /* - * TODO The hostname and port are RMIs. Use a smart proxy. + * TODO The hostname and port are RMIs. Use a smart proxy for HAGlue. Or + * consult a cache of existing ServiceScore objects. */ try { hostname = haGlue.getHostname(); @@ -124,7 +210,7 @@ } // The default URL for that host. - requestURL = "http://" + hostname + ":" + port + contextPath; + requestURI = "http://" + hostname + ":" + port + contextPath; } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/NOPLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/NOPLBSPolicy.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/NOPLBSPolicy.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -33,20 +33,13 @@ /** * This policy proxies all requests for update operations to the leader but - * forwards read requests to the local service. Thus, it does not provide a load - * balancing strategy, but it does allow update requests to be directed to any + * forwards read requests to the local service. Thus, it DOES NOT provide a load + * balancing strategy, but it DOES allow update requests to be directed to any * service in an non-HA aware manner. This policy can be combined with an * external round-robin strategy to load balance the read-requests over the * cluster. * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * - * TODO A service that is not joined with the met quorum can not answer - * a read-request. In order to be generally useful (and not just as a - * debugging policy), we need to proxy a read-request when this service - * is not joined with the met quorum. If there is no met quorum, then we - * can just forward the request to the local service and it will report - * the NoQuorum error. */ public class NOPLBSPolicy extends AbstractLBSPolicy { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -105,12 +105,12 @@ if (serviceScore == null) continue; - if (serviceScore.hostname == null) { + if (serviceScore.getHostname() == null) { // Can't use if no hostname. continue; } - if (serviceScore.requestURL == null) { + if (serviceScore.getRequestURI() == null) { // Can't use if no requestURL. continue; } @@ -127,7 +127,7 @@ } - return serviceScore.requestURL; + return serviceScore.getRequestURI(); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java 2014-05-02 14:59:01 UTC (rev 8165) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java 2014-05-02 16:52:45 UTC (rev 8166) @@ -573,7 +573,7 @@ for (ServiceScore serviceScore : serviceScores) { if (serviceScore == null) // should never be null. continue; - tmp.add(serviceScore.hostname); + tmp.add(serviceScore.getHostname()); } hosts = tmp.toArray(new String[tmp.size()]); } @@ -600,7 +600,7 @@ ServiceScore theServiceScore = serviceScores[j]; if (theHostReport.getHostName() - .equals(theServiceScore.hostname)) { + .equals(theServiceScore.getHostname())) { // Found service on this host. foundServiceOnHost = true; @@ -688,10 +688,10 @@ if (tmp == null) // should never happen. continue; - if (tmp.requestURL == null) // can't proxy. + if (tmp.getRequestURI() == null) // can't proxy. continue; - if (hostScore.hostname.equals(tmp.hostname)) { + if (hostScore.hostname.equals(tmp.getHostname())) { // Found a joined service on that host. foundServices.add(tmp); @@ -719,7 +719,7 @@ final ServiceScore serviceScore = foundServices.get(n); - return serviceScore.requestURL; + return serviceScore.getRequestURI(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-02 14:59:04
|
Revision: 8165 http://sourceforge.net/p/bigdata/code/8165 Author: thompsonbry Date: 2014-05-02 14:59:01 +0000 (Fri, 02 May 2014) Log Message: ----------- Branch to work on new deployment approaches. This branch requires code review before bringing it back to the main development branch. Added Paths: ----------- branches/DEPLOYMENT_BRANCH_1_3_1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dme...@us...> - 2014-05-02 14:50:29
|
Revision: 8164 http://sourceforge.net/p/bigdata/code/8164 Author: dmekonnen Date: 2014-05-02 14:50:26 +0000 (Fri, 02 May 2014) Log Message: ----------- Update to sync changes that occurred during the merger freeze. This version is identical with the version submitted to the Homebrew project on 4/30. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/resources/deployment/brew/bigdata.rb Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/resources/deployment/brew/bigdata.rb =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/resources/deployment/brew/bigdata.rb 2014-05-01 22:13:55 UTC (rev 8163) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/resources/deployment/brew/bigdata.rb 2014-05-02 14:50:26 UTC (rev 8164) @@ -1,44 +1,28 @@ -require 'formula' +require "formula" -# Documentation: https://github.com/mxcl/homebrew/wiki/Formula-Cookbook -# /usr/local/Library/Contributions/example-formula.rb -# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! - class Bigdata < Formula - homepage 'http://bigdata.com/blog/' - url 'http://bigdata.com/deploy/bigdata-1.3.0.tgz' - sha1 'a395a243a2746ce47cf8893f2207fd2e0de4a9c1' + homepage "http://bigdata.com/blog/" + url "http://bigdata.com/deploy/bigdata-1.3.0.tgz" + sha1 "c22fa05df965019b3132161507ce0e77a4a1f6e2" def install - prefix.install Dir['*'] - end + prefix.install "doc" + prefix.install "var" + prefix.install "bin" + libexec.install "lib" - def caveats; <<-EOS.undent - After launching, visit the Bigdata Workbench at: + # Set the installation path as the root for the bin scripts: + inreplace "#{bin}/bigdata", "<%= BD_HOME %>", prefix + inreplace "#{bin}/bigdata", "<%= INSTALL_TYPE %>", "BREW" - http://localhost:8080/bigdata + # Set the Jetty root as the resourceBase in the jetty.xml file: + inreplace "#{prefix}/var/jetty/etc/jetty.xml", "<%= JETTY_DIR %>", "#{prefix}/var/jetty" - "bigdata" command synopis: - ------------------------- + # Set the installation path as the root for bigdata.jnl file location (<bigdata_home>/data): + inreplace "#{prefix}/var/jetty/WEB-INF/RWStore.properties", "<%= BD_HOME %>", prefix - Start the server: - - % bigdata start - - Stop the server: - - % bigdata stop - - Restart the server: - - % bigdata restart - - To tune the server configuration, edit the "#{var}/jetty/WEB-INF/RWStore.properties" file. - - Further documentation: - - #{doc} - EOS + # Set the installation path as the root for log files (<bigdata_home>/log): + inreplace "#{prefix}/var/jetty/WEB-INF/classes/log4j.properties", "<%= BD_HOME %>", prefix end plist_options :startup => 'true', :manual => 'bigdata start' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-01 22:13:59
|
Revision: 8163 http://sourceforge.net/p/bigdata/code/8163 Author: thompsonbry Date: 2014-05-01 22:13:55 +0000 (Thu, 01 May 2014) Log Message: ----------- Branch for workbench features that will not make it into 1.3.1. Added Paths: ----------- branches/WORKBENCH_1_3_2_BRANCH/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-01 17:09:25
|
Revision: 8162 http://sourceforge.net/p/bigdata/code/8162 Author: thompsonbry Date: 2014-05-01 17:09:21 +0000 (Thu, 01 May 2014) Log Message: ----------- Elevated priority of the parallel IReducer evaluation issue for the GAS code. This is the main bottleneck in our testing performance tests of the GAS platform. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java 2014-05-01 17:08:29 UTC (rev 8161) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java 2014-05-01 17:09:21 UTC (rev 8162) @@ -356,6 +356,16 @@ * solution would be to drop them onto stripped lists at the same time that * they are first inserted into the CHM. I could then read over those * striped lists in parallel during the reduction. + * <p> + * The IReducer should run with parallel threads. This is a huge serial + * bottleneck right now. Fixing this will require a data structure with a + * parallel iterator, not the CHM. See + * http://stackoverflow.com/questions/20164690 + * /using-scalas-parhashmap-in-javas-project-instead-of-concurrenthashmap + * <p> + * It seems like the short term solution would be to drop them onto striped + * lists at the same time that they are first inserted into the CHM. I could + * then read over those striped lists in parallel during the reduction. */ @Override public <T> T reduce(final IReducer<VS, ES, ST, T> op) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-01 17:08:31
|
Revision: 8161 http://sourceforge.net/p/bigdata/code/8161 Author: thompsonbry Date: 2014-05-01 17:08:29 +0000 (Thu, 01 May 2014) Log Message: ----------- Elevated priority of the parallel IReducer evaluation issue for the GAS code. This is the main bottleneck in our testing performance tests of the GAS platform. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java 2014-05-01 16:21:25 UTC (rev 8160) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java 2014-05-01 17:08:29 UTC (rev 8161) @@ -344,7 +344,7 @@ /** * {@inheritDoc} * - * TODO REDUCE : parallelize with nthreads. The reduce operations are often + * FIXME REDUCE : parallelize with nthreads. The reduce operations are often * lightweight, so maybe a fork/join pool would work better? * <p> * Note: We can not do a parallel reduction right now because the backing This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2014-05-01 16:21:34
|
Revision: 8160 http://sourceforge.net/p/bigdata/code/8160 Author: thompsonbry Date: 2014-05-01 16:21:25 +0000 (Thu, 01 May 2014) Log Message: ----------- Committing merge of the RDR branch back into the 1.3.0 branch for CI. I have run the test suites for AST evaluation, the NSS, most of the HA CI test suite, and the quads mode test suite of the sail. That all looks pretty good. I have also checked the bigdata GAS test suite, but we still lack a SPARQL level test suite for the GASService. This commit brings in the new workbench, the RDR support, the HA load balancer, significant advances in the RDF GAS engine, etc. @see #526 (RDR). Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/.classpath branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/BigdataStatics.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/Depends.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpContext.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/IPredicate.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/ServiceCallJoin.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/BytesUtil.c branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/PageStats.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/counters/AbstractStatisticsCollector.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/journal/AbstractJournal.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/journal/Journal.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/ThreadLocalBufferFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/AbstractChunkedResolverator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/resources/logging/log4j-dev.properties branches/BIGDATA_RELEASE_1_3_0/bigdata/src/resources/logging/log4j.properties branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/btree/TestGetBitsFromByteArray.java branches/BIGDATA_RELEASE_1_3_0/bigdata-ganglia/src/java/com/bigdata/ganglia/GangliaService.java branches/BIGDATA_RELEASE_1_3_0/bigdata-ganglia/src/java/com/bigdata/ganglia/HostReport.java branches/BIGDATA_RELEASE_1_3_0/bigdata-ganglia/src/java/com/bigdata/ganglia/HostReportComparator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/EdgesEnum.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASContext.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASState.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IReducer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/CC.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/PR.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASContext.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/ram/RAMGASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/ram/RAMGraphLoader.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASRunnerBase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/AbstractGraphFixture.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GraphLoader.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/SailGraphLoader.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/data/smallGraph.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/ram/TestGather.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/samples/com/bigdata/gom/samples/Example1.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/samples/com/bigdata/gom/samples/Example2.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/test/com/bigdata/gom/Example1.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/test/com/bigdata/gom/LocalGOMTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/test/com/bigdata/gom/RemoteGOMTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/test/com/bigdata/gom/TestRemoteGOM.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/AbstractServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournal-A.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournal-B.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournal-C.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournal.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHA3JournalServerTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHAJournalServerTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/HAJournal-A.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/HAJournal-B.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/HAJournal-C.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/HAJournal-D.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/HAJournal-E.config branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/HAJournalTest.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestAll.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHANamespace.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/log4j-template-A.properties branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/chem2bio2rdf/src/test/com/bigdata/perf/chem2bio2rdf/TestQuery.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/join/ChunkedMaterializationOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/ServiceProviderHook.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/StatementWriter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASRunner.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASState.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGraphFixture.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/IVUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/LexiconConfiguration.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/impl/AbstractIV.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/impl/AbstractNonInlineIV.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/impl/bnode/SidIV.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/LexiconRelation.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BNodeContextFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataBNode.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataBNodeImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataStatementImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueFactoryImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/model/BigdataValueImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/BasicRioLoader.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/StatementBuffer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/ntriples/BigdataNTriplesParser.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/rdfxml/BigdataRDFXMLParser.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/turtle/BigdataTurtleParser.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryHints.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/StaticAnalysis.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/StaticAnalysisBase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/StaticOptimizer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/RemoteServiceCallImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/ServiceCall.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/ServiceRegistry.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/history/HistoryIndexTupleSerializer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/spo/ISPO.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPO.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOPredicate.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOTupleSerializer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataBindingSetResolverator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIteratorImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/resources/service-providers/META-INF/services/org.openrdf.rio.RDFParserFactory branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/resources/service-providers/META-INF/services/org.openrdf.rio.RDFWriterFactory branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/AbstractBigdataGraphTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestBFS.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestGather.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestSSSP.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeMixedIVs.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rio/TestAll.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rio/TestNTriplesWithSids.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rio/TestRDFXMLInterchangeWithStatementIdentifiers.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rio/TestStatementBuffer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rio/rdfxml/TestAll.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/TestStaticAnalysis.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/TestReificationDoneRightEval.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-01.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestALPPinTrac773.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTNamedSubqueryOptimizer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTUnionFiltersOptimizer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPO.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOTupleSerializer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOValueCoders.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/store/TestStatementIdentifiers.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/store/TestTripleStore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSail.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/remote/BigdataSailRemoteRepository.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/sparql/PrefixDeclProcessor.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFServletContextListener.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/DeleteServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HAStatusServletUtil.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/InsertServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/MultiTenancyServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/NanoSparqlServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/QueryServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/RESTServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/SD.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/UpdateServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/VoID.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/ConnectOptions.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/RemoteRepository.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/RemoteRepositoryManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/samples/com/bigdata/samples/NSSEmbeddedExample.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/ProxyBigdataSailTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestChangeSets.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestProvenanceQuery.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestSids.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sparql/TestReificationDoneRightParser.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractNanoSparqlServerTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractProtocolTest.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractTestNanoSparqlClient.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestAll.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestConneg.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestFederatedQuery.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient2.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/web.xml branches/BIGDATA_RELEASE_1_3_0/build.properties branches/BIGDATA_RELEASE_1_3_0/build.xml branches/BIGDATA_RELEASE_1_3_0/pom.xml branches/BIGDATA_RELEASE_1_3_0/src/resources/HAJournal/startHAServices.config branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/startHAServices Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/LEGAL/ branches/BIGDATA_RELEASE_1_3_0/LEGAL/apache-license-2_0.txt branches/BIGDATA_RELEASE_1_3_0/LEGAL/sesame2.x-license.txt branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/README.TXT branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-client-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-continuation-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-http-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-io-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-proxy-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-rewrite-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-security-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-server-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-servlet-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-util-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-webapp-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-xml-9.1.4.v20140401.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/servlet-api-3.1.0.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/LEGAL/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/LEGAL/blueprints-license.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/lib/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/lib/blueprints-core-2.4.0.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataBlueprintsGraph.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataEdge.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataElement.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataEventTransactionalGraph.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataVertex.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/QueryManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/BinderBase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IBinder.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IBindingExtractor.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IPredecessor.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/TraversalDirectionEnum.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/FuzzySSSP.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/PATHS.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/EdgeOnlyFilter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/data/smallWeightedGraph.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/data/weightedSmallGraph.png branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHA3LoadBalancerTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestAll_LBS.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3LoadBalancer_GangliaLBS.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3LoadBalancer_NOP.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3LoadBalancer_RoundRobin.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/log4j-template-B.properties branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/log4j-template-C.properties branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASService.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/Inet4Address.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/impl/uri/IPAddrIV.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONParser.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONParserFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONWriter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONWriterFactoryForConstruct.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONWriterFactoryForSelect.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/turtle/BigdataTurtleWriter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/turtle/BigdataTurtleWriterFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/IDoNotJoinService.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataTriplePattern.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataTriplePatternMaterializer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/resources/service-providers/META-INF/services/org.openrdf.query.resultio.TupleQueryResultWriterFactory branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.srx branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/apache-commons.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/httpclient-cache.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/httpclient.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/httpcore.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/httpmime.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/jackson-license.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/LEGAL/sesame2.x-license.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/lib/jackson-core-2.2.3.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HALoadBalancerServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/IHALoadBalancerPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/WorkbenchServlet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/HostScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/NOPLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/DefaultHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/HostTable.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/IHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/LoadOneHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/NOPHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/TestPaths.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/forward.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths1.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths1.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths2.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths3.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths3.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths4.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths4.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths5.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/reverse.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/sssp.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/sssp.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/provenance01.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sids.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/style.css branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/favicon.ico branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/images/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/images/logo.png branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/index.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/indexLBS.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/vendor/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/vendor/jquery.hotkeys.js branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/vendor/jquery.min.js branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/new.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/old.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/result-to-html.xsl branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/jetty.xml branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/RWStore.properties branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/classes/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/classes/log4j.properties branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/bin/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/bin/bigdata branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/bin/startNSS branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/etc/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/etc/jetty.xml Removed Paths: ------------- branches/BIGDATA_RELEASE_1_3_0/LEGAL/apache-license-2_0.txt branches/BIGDATA_RELEASE_1_3_0/LEGAL/sesame2.x-license.txt branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-continuation-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-http-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-io-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-security-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-server-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-servlet-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-util-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-webapp-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/jetty-xml-7.2.2.v20101205.jar branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/servlet-api-2.5.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/lib/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/lib/blueprints-core-2.4.0.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/ branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataBlueprintsGraph.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataEdge.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataElement.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataEventTransactionalGraph.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/BigdataVertex.java branches/BIGDATA_RELEASE_1_3_0/bigdata-blueprints/src/java/com/bigdata/blueprints/QueryManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/log4j-template-B.properties branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/log4j-template-C.properties branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONParser.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONParserFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONWriter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONWriterFactoryForConstruct.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/rio/json/BigdataSPARQLResultsJSONWriterFactoryForSelect.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/AbstractLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/HostScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/ServiceScore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/NOPLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/RoundRobinLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/DefaultHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/GangliaLBSPolicy.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/HostTable.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/IHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/LoadOneHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/lbs/policy/ganglia/NOPHostScoringRule.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/TestPaths.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/forward.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths1.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths1.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths2.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths3.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths3.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths4.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths4.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/paths5.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/reverse.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/sssp.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/graph/sssp.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/provenance01.rdf branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/sids.rdf branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/WEB-INF/jetty.xml branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/css/style.css branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/images/logo.png branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/vendor/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/vendor/jquery.hotkeys.js branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/vendor/jquery.min.js branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/html/js/workbench.js branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/images/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/index.html branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/jsp/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/resources/ branches/BIGDATA_RELEASE_1_3_0/bigdata-war/src/result-to-html.xsl branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/RWStore.properties branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/classes/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/WEB-INF/classes/log4j.properties branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/bin/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/bin/bigdata branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/bin/startNSS branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/etc/ branches/BIGDATA_RELEASE_1_3_0/src/resources/deployment/nss/etc/jetty.xml branches/BIGDATA_RELEASE_1_3_0/src/resources/etc/default/bigdata/ Property Changed: ---------------- branches/BIGDATA_RELEASE_1_3_0/ branches/BIGDATA_RELEASE_1_3_0/bigdata/lib/jetty/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/aggregate/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/joinGraph/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/util/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/htree/raba/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/jsr166/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/joinGraph/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/util/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/jsr166/ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/util/httpd/ branches/BIGDATA_RELEASE_1_3_0/bigdata-compatibility/ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/attr/ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/disco/ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/util/config/ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/btc/ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/btc/src/resources/ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/lubm/ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/uniprot/ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/uniprot/src/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/aggregate/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/error/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/relation/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/util/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/samples/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/bop/rdf/aggregate/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/internal/ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/relation/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/changesets/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/bench/ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/LEGAL/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/lib/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/java/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/java/it/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/java/it/unimi/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/test/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/test/it/unimi/ branches/BIGDATA_RELEASE_1_3_0/dsi-utils/src/test/it/unimi/dsi/ branches/BIGDATA_RELEASE_1_3_0/lgpl-utils/src/java/it/unimi/dsi/fastutil/bytes/custom/ branches/BIGDATA_RELEASE_1_3_0/lgpl-utils/src/test/it/unimi/dsi/fastutil/bytes/custom/ branches/BIGDATA_RELEASE_1_3_0/osgi/ branches/BIGDATA_RELEASE_1_3_0/src/resources/bin/config/ Index: branches/BIGDATA_RELEASE_1_3_0 =================================================================== --- branches/BIGDATA_RELEASE_1_3_0 2014-04-30 19:13:09 UTC (rev 8159) +++ branches/BIGDATA_RELEASE_1_3_0 2014-05-01 16:21:25 UTC (rev 8160) Property changes on: branches/BIGDATA_RELEASE_1_3_0 ___________________________________________________________________ Modified: svn:mergeinfo ## -9,6 +9,7 ## /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/MGC_1_3_0:7609-7752 /branches/QUADS_QUERY_BRANCH:4525-4531,4550-4584,4586-4609,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 +/branches/RDR:7665-8159 /branches/READ_CACHE:7215-7271 /branches/RWSTORE_1_1_0_DEBUG:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH:4814-4836 \ No newline at end of property Modified: branches/BIGDATA_RELEASE_1_3_0/.classpath =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/.classpath 2014-04-30 19:13:09 UTC (rev 8159) +++ branches/BIGDATA_RELEASE_1_3_0/.classpath 2014-05-01 16:21:25 UTC (rev 8160) @@ -32,21 +32,12 @@ <classpathentry kind="src" path="bigdata-gas/src/java"/> <classpathentry kind="src" path="bigdata-gas/src/test"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/dsi-utils-1.0.6-020610.jar"/> - <classpathentry kind="lib" path="bigdata/lib/lgpl-utils-1.0.7-270114.jar"/> - <classpathentry kind="lib" path="bigdata-jini/lib/apache/zookeeper-3.3.3.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-continuation-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-http-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-io-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-server-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-util-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/servlet-api-2.5.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-servlet-7.2.2.v20101205.jar" sourcepath="/Users/bryan/Downloads/jetty-hightide-7.2.2.v20101205-src"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-security-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-webapp-7.2.2.v20101205.jar"/> - <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-xml-7.2.2.v20101205.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/lgpl-utils-1.0.7-270114.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-jini/lib/apache/zookeeper-3.3.3.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/servlet-api-3.1.0.jar" sourcepath="/Users/bryan/Documents/workspace/org.eclipse.jetty.project-jetty-9.1-wsbatch"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/unimi/colt-1.2.0.jar"/> - <classpathentry kind="lib" path="bigdata/lib/icu/icu4j-4.8.jar"/> - <classpathentry kind="lib" path="bigdata/lib/icu/icu4j-charset-4.8.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/icu/icu4j-4.8.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/icu/icu4j-charset-4.8.jar"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/junit-3.8.1.jar" sourcepath="/root/.m2/repository/junit/junit/3.8.1/junit-3.8.1-sources.jar"/> <classpathentry exported="true" kind="lib" path="bigdata-jini/lib/jini/lib/browser.jar"/> <classpathentry exported="true" kind="lib" path="bigdata-jini/lib/jini/lib/classserver.jar"/> @@ -67,24 +58,37 @@ <classpathentry exported="true" kind="lib" path="bigdata/lib/unimi/fastutil-5.1.5.jar"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/lucene/lucene-analyzers-3.0.0.jar"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/lucene/lucene-core-3.0.0.jar"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/high-scale-lib-v1.1.2.jar"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/junit-ext-1.1-b3-dev.jar"/> <classpathentry exported="true" kind="lib" path="bigdata-rdf/lib/slf4j-api-1.6.1.jar"/> <classpathentry exported="true" kind="lib" path="bigdata-rdf/lib/slf4j-log4j12-1.6.1.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/commons-codec-1.4.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/commons-logging-1.1.1.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/httpclient-4.1.3.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/httpclient-cache-4.1.3.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/httpcore-4.1.4.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/httpmime-4.1.3.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/commons-fileupload-1.2.2.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/httpcomponents/commons-io-2.1.jar"/> - <classpathentry kind="lib" path="bigdata/lib/apache/log4j-1.2.17.jar"/> - <classpathentry kind="lib" path="bigdata-rdf/lib/openrdf-sesame-2.6.10-onejar.jar"/> - <classpathentry kind="lib" path="bigdata-rdf/lib/sesame-rio-testsuite-2.6.10.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/sesame-sparql-testsuite-2.6.10.jar"/> - <classpathentry kind="lib" path="bigdata-sails/lib/sesame-store-testsuite-2.6.10.jar"/> - <classpathentry kind="lib" path="bigdata-rdf/lib/nxparser-1.2.3.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/commons-codec-1.4.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/commons-logging-1.1.1.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/httpclient-4.1.3.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/httpclient-cache-4.1.3.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/httpcore-4.1.4.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/httpmime-4.1.3.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/commons-fileupload-1.2.2.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/httpcomponents/commons-io-2.1.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/apache/log4j-1.2.17.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-rdf/lib/openrdf-sesame-2.6.10-onejar.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-rdf/lib/sesame-rio-testsuite-2.6.10.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/sesame-sparql-testsuite-2.6.10.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/sesame-store-testsuite-2.6.10.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-rdf/lib/nxparser-1.2.3.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-client-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-continuation-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-http-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-io-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-proxy-9.1.4.v20140401.jar" sourcepath="/Users/bryan/Downloads/org.eclipse.jetty.project-jetty-9.1.4.v20140401"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-rewrite-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-security-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-server-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-servlet-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-util-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-webapp-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata/lib/jetty/jetty-xml-9.1.4.v20140401.jar"/> + <classpathentry exported="true" kind="lib" path="bigdata-sails/lib/jackson-core-2.2.3.jar"/> <classpathentry kind="output" path="bin"/> </classpath> Deleted: branches/BIGDATA_RELEASE_1_3_0/LEGAL/apache-license-2_0.txt =================================================================== --- branches/RDR/LEGAL/apache-license-2_0.txt 2014-04-30 19:13:09 UTC (rev 8159) +++ branches/BIGDATA_RELEASE_1_3_0/LEGAL/apache-license-2_0.txt 2014-05-01 16:21:25 UTC (rev 8160) @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contribu... [truncated message content] |