Browse Source

GL, increase inflight updates to DB (#5127)

* [ci fw-only Java/greenlightning]

swap versions

* [ci fw-only Java/greenlightning]

go back to simple file

* [ci fw-only Java/greenlightning]

update version to add loging and track issue

* [ci fw-only Java/greenlightning]

use old update design

bump version number

* [ci fw-only Java/greenlightning]

reduce poll rate for greater volume

* [ci fw-only Java/greenlightning]

update comment

* [ci fw-only Java/greenlightning]

update for larger pipes

* [ci fw-only Java/greenlightning]

update memory limit

update to next version

better request read

* [ci fw-only Java/greenlightning]

next version and buffer size adjustments

cleaned up object creation for JSON request

* [ci fw-only Java/greenlightning]

update to next version

cache int values for epoll

* update launcher

* reduce to 28G

* reduce memory

* reduce memory usage 24G

* set new size

* back up to 28G

* reduce newSize

* update memory

* reduce size

* remove fixed pipe size, test server can not support this.

* bump up new sizes

* [ci fw-only Java/greenlightning]

update to next version with more socket readers

* [ci fw-only Java/greenlightning]

version upgrade

* remove comment

* [ci fw-only Java/greenlightning]

Update version

Clear input pipes

* [ci fw-only Java/greenlightning]

larger connection count for update test

* [ci fw-only Java/greenlightning]

DB driver changed management so we switched to new one with support

* [ci fw-only Java/greenlightning]

fix upate to match the document streaming appraoch from driver

* [ci fw-only Java/greenlightning]

Bump up DB in flight messages by 8x
Nathan Tippy 5 years ago
parent
commit
950b616383

+ 1 - 1
frameworks/Java/greenlightning/src/main/java/com/javanut/gl/benchmark/FrameworkTest.java

@@ -108,7 +108,7 @@ public class FrameworkTest implements GreenApp {
     	this.telemetryPort = telemetryPort;
     	this.pipelineBits = 15;//max concurrent in flight database requests 1<<pipelineBits
     	            
-    	this.dbCallMaxResponseCount = c;
+    	this.dbCallMaxResponseCount = c*8; //this will limit the in flight DB calls so make it larger
     	this.jsonMaxResponseCount = c*16*4;
     	
     	this.dbCallMaxResponseSize = 20_000; //for 500 mult db call in JSON format

+ 9 - 9
frameworks/Java/greenlightning/src/main/java/com/javanut/gl/benchmark/ProcessUpdate.java

@@ -24,7 +24,7 @@ import io.vertx.sqlclient.Tuple;
 
 public class ProcessUpdate {
 	
-	private transient ObjectPipe<ResultObject> DBUpdateInFlight;	
+	private transient ObjectPipe<ResultObject> dbUpdateInFlight;	
 	private final transient List<ResultObject> collectorDBUpdate = new ArrayList<ResultObject>();
 	private final transient ThreadLocalRandom localRandom = ThreadLocalRandom.current();
 	private final HTTPResponseService service;
@@ -36,7 +36,7 @@ public class ProcessUpdate {
 	private PreparedQuery updateQuery;
 		
 	public ProcessUpdate(int pipelineBits, HTTPResponseService service, PoolManager pm) {
-		this.DBUpdateInFlight = new ObjectPipe<ResultObject>(pipelineBits, ResultObject.class,	ResultObject::new);
+		this.dbUpdateInFlight = new ObjectPipe<ResultObject>(pipelineBits, ResultObject.class,	ResultObject::new);
 		this.service = service;
 		this.pm = pm;
 		selectableQuery();
@@ -46,10 +46,10 @@ public class ProcessUpdate {
 	
 	public void tickEvent() { 
 
-			ResultObject temp = DBUpdateInFlight.tailObject();
+			ResultObject temp = dbUpdateInFlight.tailObject();
 			while (null!=temp && temp.getStatus()>=0) {			
 				consumeResultObjectDBUpdate(temp);
-				temp = DBUpdateInFlight.tailObject();				
+				temp = dbUpdateInFlight.tailObject();				
 			}	   
 		
 	}
@@ -70,7 +70,7 @@ public class ProcessUpdate {
 		long seqCode = request.getSequenceCode();
 		int temp = requestsInFlight.incrementAndGet();
 		
-		if (DBUpdateInFlight.hasRoomFor(queries) && service.hasRoomFor(temp) ) {		
+		if (dbUpdateInFlight.hasRoomFor(queries) && service.hasRoomFor(temp) ) {		
 						
 			processConnection(queries, conId, seqCode);
 	
@@ -173,7 +173,7 @@ public class ProcessUpdate {
 			                         PreparedQuery query, PreparedQuery update) {
 		//testing one per query 
 
-		final ResultObject worldObject = DBUpdateInFlight.headObject();
+		final ResultObject worldObject = dbUpdateInFlight.headObject();
 		assert(null!=worldObject);
 							
 		worldObject.setConnectionId(conId);
@@ -226,7 +226,7 @@ public class ProcessUpdate {
 													
 				});	
 						
-			DBUpdateInFlight.moveHeadForward(); //always move to ensure this can be read.
+			dbUpdateInFlight.moveHeadForward(); //always move to ensure this can be read.
 		} catch (Throwable t) {
 			t.printStackTrace();
 			this.selectQuery = null;
@@ -282,7 +282,7 @@ public class ProcessUpdate {
 
 		//collect all the objects
 		collectorDBUpdate.add(t);
-		DBUpdateInFlight.moveTailForward();//only move forward when it is consumed.
+		dbUpdateInFlight.moveTailForward();//only move forward when it is consumed.
 		if (collectorDBUpdate.size() == t.getGroupSize()) {
 			//now ready to send, we have all the data						
 			publishMultiResponseDBUpdate(t.getConnectionId(), t.getSequenceId());
@@ -301,7 +301,7 @@ public class ProcessUpdate {
 					    						   collectorDBUpdate.get(c).setStatus(-1);
 					    					   }
 					    					   collectorDBUpdate.clear();
-					    					   DBUpdateInFlight.publishTailPosition();
+					    					   dbUpdateInFlight.publishTailPosition();
 					    				   });
 		assert(result) : "internal error, we should not pick up more work than we can send";
 		requestsInFlight.decrementAndGet();