public ByteArrayProducerStage(GraphManager gm, byte[] rawData, int[] optionalChunkSizes, Pipe<RawDataSchema> output) { super(gm, NONE, output); this.rawData = rawData; this.rawDataLength = rawData.length; this.optionalChunkSizes = optionalChunkSizes; this.pos = 0; this.chunkSize =output.maxVarLen; this.output = (Pipe<RawDataSchema>)output; GraphManager.addNota(gm, GraphManager.PRODUCER, GraphManager.PRODUCER, this); }
public ServerSocketWriterStage(GraphManager graphManager, ServerCoordinator coordinator, Pipe<NetPayloadSchema>[] input, Pipe<ReleaseSchema> releasePipe) { super(graphManager, input, releasePipe); this.coordinator = coordinator; this.input = input; this.releasePipe = releasePipe; this.graphManager = graphManager; GraphManager.addNota(graphManager, GraphManager.DOT_BACKGROUND, "lemonchiffon3", this); GraphManager.addNota(graphManager, GraphManager.LOAD_MERGE, GraphManager.LOAD_MERGE, this); //for high volume this must be on its own GraphManager.addNota(graphManager, GraphManager.ISOLATE, GraphManager.ISOLATE, this); }
/** * * @param graphManager * @param output _out_ Does nothing. */ protected PipeNoOp(GraphManager graphManager, Pipe<T> output) { super(graphManager, NONE, output); GraphManager.addNota(graphManager, GraphManager.UNSCHEDULED, GraphManager.UNSCHEDULED, this); }
/** * * @param graphManager * @param input _in_ Pipe to be dumped */ public ConsoleJSONDumpStage(GraphManager graphManager, Pipe<T> input) { super(graphManager, input, NONE); this.input = input; GraphManager.addNota(graphManager, GraphManager.DOT_BACKGROUND, "cornsilk2", this); }
public ConsoleJSONDumpStage(GraphManager graphManager, Pipe<T> input, Appendable out, boolean showBytesAsUTF) { this(graphManager, input); this.out = out; this.showBytesAsUTF = showBytesAsUTF; GraphManager.addNota(graphManager, GraphManager.DOT_BACKGROUND, "cornsilk2", this); }
public static void addNota(GraphManager graphManager, Object key, Object value, PronghornStage ... stages) { int i = stages.length; if (0==i) { throw new UnsupportedOperationException("Must have at least 1 stage to assign this to"); } while (--i>=0) { addNota(graphManager, key, value, stages[i]); } }
@Override public void buildParser(GraphManager gm, ClientCoordinator ccm, Pipe<NetPayloadSchema>[] fromBroker, Pipe<ReleaseSchema>[] ackReleaseForResponseParser) { assert (ackReleaseForResponseParser.length==1) : "only support 1 at this time"; //parse the socket data, determine the message and write it to the out pipe MQTTClientResponseStage responseStage = new MQTTClientResponseStage(gm, ccm, fromBroker, ackReleaseForResponseParser[0], serverToClient); //releases Ids. GraphManager.addNota(gm, GraphManager.SCHEDULE_RATE, rate, responseStage); GraphManager.addNota(gm, GraphManager.DOT_BACKGROUND, BACKGROUND_COLOR, responseStage); } };
public LongDataGenStage(GraphManager gm, Pipe<PhastCodecSchema>[] outputPipe, int iterations) { super(gm, NONE, outputPipe); this.outputPipe = outputPipe; this.iterCountDown = iterations; GraphManager.addNota(gm, GraphManager.PRODUCER, GraphManager.PRODUCER, this); this.chunkCountDown = chunkSize; }
public ClientHTTPRequestDataGeneratorStage(GraphManager gm, Pipe<NetPayloadSchema> output, int iterations, CharSequence[] paths) { super(gm, NONE, output); this.output = output; this.iterations = iterations; this.count = iterations; this.pos = 0; this.paths = paths; GraphManager.addNota(gm, GraphManager.PRODUCER, GraphManager.PRODUCER, this); verb = "GET "; // .5M msg/sec //verb = "HEAD "; //1.3M msg/sec }
private SummaryModuleStage(GraphManager graphManager, Pipe<HTTPRequestSchema>[] inputs, Pipe<ServerResponseSchema>[] outputs, HTTPSpecification httpSpec, PipeMonitorCollectorStage monitor) { super(graphManager, inputs, outputs, httpSpec, estimate(graphManager)); this.monitor = monitor; if (inputs.length>1) { GraphManager.addNota(graphManager, GraphManager.LOAD_MERGE, GraphManager.LOAD_MERGE, this); } }
/** * Easy entry point for adding monitoring to the graph. This should be copied by all the other monitor consumers. TODO: build for JMX, SLF4J, Socket.io * @param gm * @param monitorRate * @param ringBufferMonitorConfig */ public static PipeMonitorCollectorStage attach(GraphManager gm, Long monitorRate, PipeConfig<PipeMonitorSchema> ringBufferMonitorConfig) { PipeMonitorCollectorStage stage = new PipeMonitorCollectorStage(gm, GraphManager.attachMonitorsToGraph(gm, monitorRate, ringBufferMonitorConfig)); GraphManager.addNota(gm, GraphManager.SCHEDULE_RATE, monitorRate>>5, stage); GraphManager.addNota(gm, GraphManager.MONITOR, "dummy", stage); return stage; }
protected PronghornStage(GraphManager graphManager, Pipe[] inputs, Pipe[] outputs) { assert(null!=inputs) : "Use NONE"; assert(null!=outputs) : "Use NONE"; //logger.trace("register new pronghorn stage started"); this.stageId = GraphManager.newStageId(graphManager); this.boxedStageId = this.stageId; this.hash = PronghornStage.class.hashCode() ^ stageId; this.graphManager = graphManager; GraphManager.register(graphManager, this, inputs, outputs); GraphManager.addNota(graphManager, GraphManager.THREAD_GROUP, null, this); //This provides room for assignment later //logger.trace("register new pronghorn stage done"); }
protected PronghornStage(GraphManager graphManager, Pipe input, Pipe output) { assert(input!=null) : "input must not be null"; assert(output!=null) : "output must not be null"; this.stageId = GraphManager.newStageId(graphManager); this.boxedStageId = this.stageId; this.hash = PronghornStage.class.hashCode() ^ stageId; this.graphManager = graphManager; GraphManager.register(graphManager, this, input, output); GraphManager.addNota(graphManager, GraphManager.THREAD_GROUP, null, this);//This provides room for assignment later }
protected PronghornStage(GraphManager graphManager, Pipe[] inputs, Pipe output) { assert(null!=inputs) : "Use NONE"; assert(null!=output) : "Use NONE"; assert(noContainedNull(inputs)) : "Null disovered in inputs array"; assert(output!=null); this.stageId = GraphManager.newStageId(graphManager); this.boxedStageId = this.stageId; this.hash = PronghornStage.class.hashCode() ^ stageId; this.graphManager = graphManager; GraphManager.register(graphManager, this, inputs, output); GraphManager.addNota(graphManager, GraphManager.THREAD_GROUP, null, this);//This provides room for assignment later }
private void configureStageRate() { //if we have a time event turn it on. long rate = builder.getTriggerRate(); if (rate>0 && listener instanceof TimeListener) { setTimeEventSchedule(rate, builder.getTriggerStart()); //Since we are using the time schedule we must set the stage to be faster long customRate = (rate*nsPerMS)/NonThreadScheduler.granularityMultiplier;// in ns and guanularityXfaster than clock trigger long appliedRate = Math.min(customRate,builder.getDefaultSleepRateNS()); GraphManager.addNota(graphManager, GraphManager.SCHEDULE_RATE, appliedRate, realStage); } }
private static void buildSocketWriters(GraphManager graphManager, ServerCoordinator coordinator, int socketWriters, Pipe<NetPayloadSchema>[] toWiterPipes) { /////////////// //all the writer stages /////////////// Pipe[][] req = Pipe.splitPipes(socketWriters, toWiterPipes); int w = socketWriters; while (--w>=0) { ServerSocketWriterStage writerStage = new ServerSocketWriterStage(graphManager, coordinator, req[w]); //pump bytes out GraphManager.addNota(graphManager, GraphManager.DOT_RANK_NAME, "SocketWriter", writerStage); coordinator.processNota(graphManager, writerStage); } }
public BlockingSupportStage(GraphManager graphManager, Pipe<T> input, Pipe<P> output, Pipe<Q> timeout, Pipe<BlockingWorkInProgressSchema> workload, long timeoutNS, Choosable<T> chooser, UnchosenMessage<T> unchosen, Blockable<T,P,Q> ... blockables) { super(graphManager, join(input, workload), join(output==timeout ? join(output) : join(output,timeout),workload)); this.input = input; this.output = output; this.timeout = timeout; this.chooser = chooser; this.blockables = blockables; this.timeoutNS = timeoutNS; this.inProgress = workload; this.unchosen = unchosen; GraphManager.addNota(graphManager, GraphManager.DOT_BACKGROUND, "lightcoral", this); }
private static void buildSocketReaderGroups(final GraphManager graphManager, final ServerCoordinator coordinator, final Pipe<NetPayloadSchema>[] encryptedIncomingGroup, Pipe<ReleaseSchema>[] acks, int groups) { Pipe[][] in = Pipe.splitPipes(groups, encryptedIncomingGroup); Pipe[][] out = Pipe.splitPipes(groups, acks); for(int x=0; x<groups; x++) { ServerSocketReaderStage readerStage = new ServerSocketReaderStage(graphManager, out[(groups-x)-1], in[x], coordinator); GraphManager.addNota(graphManager, GraphManager.DOT_RANK_NAME, "SocketReader", readerStage); coordinator.processNota(graphManager, readerStage); } }