You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2015/03/30 20:56:47 UTC
svn commit: r1670176 - in /lucene/dev/trunk/solr/solrj/src:
java/org/apache/solr/client/solrj/io/ParallelStream.java
java/org/apache/solr/client/solrj/io/Tuple.java
test/org/apache/solr/client/solrj/io/StreamingTest.java
Author: jbernste
Date: Mon Mar 30 18:56:47 2015
New Revision: 1670176
URL: http://svn.apache.org/r1670176
Log:
SOLR-7082: Syntactic sugar for metric gathering
Modified:
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/ParallelStream.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java
lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/StreamingTest.java
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/ParallelStream.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/ParallelStream.java?rev=1670176&r1=1670175&r2=1670176&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/ParallelStream.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/ParallelStream.java Mon Mar 30 18:56:47 2015
@@ -83,7 +83,9 @@ public class ParallelStream extends Clou
if(tuple.EOF) {
Map m = new HashMap();
m.put("EOF", true);
- return new Tuple(m);
+ Tuple t = new Tuple(m);
+ t.setMetrics(this.eofTuples);
+ return t;
}
return tuple;
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java?rev=1670176&r1=1670175&r2=1670176&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java Mon Mar 30 18:56:47 2015
@@ -81,10 +81,6 @@ public class Tuple implements Cloneable
return (List<Double>)this.fields.get(key);
}
- public Iterator<Map.Entry> getFields() {
- return fields.entrySet().iterator();
- }
-
public Map getMap() {
return this.fields;
}
@@ -95,9 +91,15 @@ public class Tuple implements Cloneable
public void setMaps(List<Map> maps) {
this.fields.put("_MAPS_", maps);
+ }
+ public Map<String,Tuple> getMetrics() {
+ return (Map<String,Tuple>)this.fields.get("_METRICS_");
}
+ public void setMetrics(Map<String, Tuple> metrics) {
+ this.fields.put("_METRICS_", metrics);
+ }
public Tuple clone() {
HashMap m = new HashMap();
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/StreamingTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/StreamingTest.java?rev=1670176&r1=1670175&r2=1670176&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/StreamingTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/io/StreamingTest.java Mon Mar 30 18:56:47 2015
@@ -163,7 +163,7 @@ public class StreamingTest extends Abstr
String zkHost = zkServer.getZkAddress();
- Map paramsA = mapParams("q","*:*","fl","id,a_s,a_i,a_f","sort", "a_s asc,a_f asc", "partitionKeys", "none");
+ Map paramsA = mapParams("q", "*:*", "fl", "id,a_s,a_i,a_f", "sort", "a_s asc,a_f asc", "partitionKeys", "none");
CloudSolrStream stream = new CloudSolrStream(zkHost, "collection1", paramsA);
ParallelStream pstream = new ParallelStream(zkHost, "collection1", stream, 2, new AscFieldComp("a_s"));
@@ -723,8 +723,17 @@ public class StreamingTest extends Abstr
protected List<Tuple> getTuples(TupleStream tupleStream) throws IOException {
tupleStream.open();
List<Tuple> tuples = new ArrayList();
- for(Tuple t = tupleStream.read(); !t.EOF; t = tupleStream.read()) {
- tuples.add(t);
+ for(;;) {
+ Tuple t = tupleStream.read();
+ if(t.EOF) {
+ if(tupleStream instanceof ParallelStream) {
+ ParallelStream p = (ParallelStream) tupleStream;
+ assert(t.getMetrics() == p.getEofTuples()); // Make sure the EOF tuples are properly set on the final EOF tuple
+ }
+ break;
+ } else {
+ tuples.add(t);
+ }
}
tupleStream.close();
return tuples;